From 3aff6d4257385efb7f1e783b738b9aa8eea01b88 Mon Sep 17 00:00:00 2001 From: Rahul Mittal Date: Wed, 16 Jan 2013 15:07:40 +0530 Subject: asoc: tegra: aic326x: Fix BT and normal voice call switching DAM was getting configured in passthrough mode in normal voice call path DAM not required in normal voice call, as BB and codec both operate at 16khz Disabled the DAM from voice path for aic3262 codec, which fixed the switching Bug 1179798 Change-Id: I65fbcefa157eaa7f507a1352c3cfe7abc3661bb3 Signed-off-by: Rahul Mittal Reviewed-on: http://git-master/r/191633 Reviewed-by: Vijay Mali GVS: Gerrit_Virtual_Submit Reviewed-by: Scott Peterson --- sound/soc/tegra/tegra_aic326x.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'sound') diff --git a/sound/soc/tegra/tegra_aic326x.c b/sound/soc/tegra/tegra_aic326x.c index 6eefc6fcbd36..bb7e8e34a7be 100644 --- a/sound/soc/tegra/tegra_aic326x.c +++ b/sound/soc/tegra/tegra_aic326x.c @@ -130,6 +130,7 @@ static int tegra_aic326x_call_mode_put(struct snd_kcontrol *kcontrol, #else /*assumes tegra3*/ int codec_index; unsigned int i; + int uses_voice_codec; #endif if (machine->is_call_mode == is_call_mode_new) @@ -148,10 +149,13 @@ static int tegra_aic326x_call_mode_put(struct snd_kcontrol *kcontrol, codec_dap_sel = TEGRA20_DAS_DAP_SEL_DAP2; } #else /*assumes tegra3*/ - if (machine->is_device_bt) + if (machine->is_device_bt) { codec_index = BT_SCO; - else + uses_voice_codec = 0; + } else { codec_index = VOICE_CODEC; + uses_voice_codec = 1; + } #endif if (is_call_mode_new) { @@ -174,7 +178,7 @@ static int tegra_aic326x_call_mode_put(struct snd_kcontrol *kcontrol, tegra30_make_voice_call_connections( &machine->codec_info[codec_index], - &machine->codec_info[BASEBAND], 0); + &machine->codec_info[BASEBAND], uses_voice_codec); #endif } else { #ifdef CONFIG_ARCH_TEGRA_2x_SOC @@ -189,7 +193,7 @@ static int tegra_aic326x_call_mode_put(struct snd_kcontrol *kcontrol, #else /*assumes tegra3*/ tegra30_break_voice_call_connections( &machine->codec_info[codec_index], - &machine->codec_info[BASEBAND], 0); + &machine->codec_info[BASEBAND], uses_voice_codec); for (i = 0; i < machine->pcard->num_links; i++) machine->pcard->dai_link[i].ignore_suspend = 0; -- cgit v1.2.3