diff options
author | Scott Peterson <speterson@nvidia.com> | 2013-01-10 11:13:52 -0800 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2013-09-14 12:57:44 -0700 |
commit | f48d35b05181b5106c6f034b758d14dc67a0e663 (patch) | |
tree | 63321597d502e2354e8ddb8612275c330b519458 /sound | |
parent | c4832e46ca26091b0f0a64f7babdd71e75816f38 (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.c | 14 |
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 ; } |