summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorScott Peterson <speterson@nvidia.com>2013-01-10 11:13:52 -0800
committerDan Willemsen <dwillemsen@nvidia.com>2013-09-14 12:57:44 -0700
commitf48d35b05181b5106c6f034b758d14dc67a0e663 (patch)
tree63321597d502e2354e8ddb8612275c330b519458 /sound
parentc4832e46ca26091b0f0a64f7babdd71e75816f38 (diff)
asoc: tegra: Enable voice call in LP1
Enable support in audio driver for voice call while in LP1 power state. Bug 1211157 Change-Id: If63d3ad89ebc09abc3b4d306a4ca35668ca245fc (cherry picked from commit 04dd8631fed1b90dfa2a57138c21fe7fc73deacd) Signed-off-by: Scott Peterson <speterson@nvidia.com> Change-Id: I14fdcd3a0814f5adbc1853daefaff626419108b4 Reviewed-on: http://git-master/r/192904 Reviewed-by: Mrutyunjay Sawant <msawant@nvidia.com> Tested-by: Mrutyunjay Sawant <msawant@nvidia.com>
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/tegra/tegra_cs42l73.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/sound/soc/tegra/tegra_cs42l73.c b/sound/soc/tegra/tegra_cs42l73.c
index db0e4b975847..6f8927f4362a 100644
--- a/sound/soc/tegra/tegra_cs42l73.c
+++ b/sound/soc/tegra/tegra_cs42l73.c
@@ -1171,10 +1171,8 @@ static int tegra_cs42l73_suspend_post(struct snd_soc_card *card)
if (gpio_is_valid(gpio->gpio))
disable_irq(gpio_to_irq(gpio->gpio));
- if (machine->clock_enabled) {
- machine->clock_enabled = 0;
+ if (machine->clock_enabled && !machine->is_call_mode)
tegra_asoc_utils_clk_disable(&machine->util_data);
- }
return 0;
}
@@ -1185,6 +1183,9 @@ static int tegra_cs42l73_resume_pre(struct snd_soc_card *card)
struct snd_soc_jack_gpio *gpio = &tegra_cs42l73_hp_jack_gpio;
struct tegra_cs42l73 *machine = snd_soc_card_get_drvdata(card);
+ if (machine->clock_enabled && !machine->is_call_mode)
+ tegra_asoc_utils_clk_enable(&machine->util_data);
+
if (gpio_is_valid(gpio->gpio)) {
val = gpio_get_value(gpio->gpio);
val = gpio->invert ? !val : val;
@@ -1192,11 +1193,6 @@ static int tegra_cs42l73_resume_pre(struct snd_soc_card *card)
enable_irq(gpio_to_irq(gpio->gpio));
}
- if (!machine->clock_enabled) {
- machine->clock_enabled = 1;
- tegra_asoc_utils_clk_enable(&machine->util_data);
- }
-
return 0;
}
@@ -1224,9 +1220,9 @@ static int tegra_cs42l73_set_bias_level_post(struct snd_soc_card *card,
level == SND_SOC_BIAS_OFF && machine->clock_enabled) {
machine->clock_enabled = 0;
tegra_asoc_utils_clk_disable(&machine->util_data);
+ machine->bias_level = level;
}
- machine->bias_level = level;
return 0 ;
}