diff options
author | Rahul Mittal <rmittal@nvidia.com> | 2013-01-16 15:07:40 +0530 |
---|---|---|
committer | Riham Haidar <rhaidar@nvidia.com> | 2013-01-16 19:16:02 -0800 |
commit | 3aff6d4257385efb7f1e783b738b9aa8eea01b88 (patch) | |
tree | 8141de94e8b9ad3f76faefef5da20214147c9942 /sound | |
parent | 24312e84e15f2ead4d372b8678b56349fab27988 (diff) |
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 <rmittal@nvidia.com>
Reviewed-on: http://git-master/r/191633
Reviewed-by: Vijay Mali <vmali@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Scott Peterson <speterson@nvidia.com>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/soc/tegra/tegra_aic326x.c | 12 |
1 files changed, 8 insertions, 4 deletions
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; |