summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorRahul Mittal <rmittal@nvidia.com>2013-01-16 15:07:40 +0530
committerRiham Haidar <rhaidar@nvidia.com>2013-01-16 19:16:02 -0800
commit3aff6d4257385efb7f1e783b738b9aa8eea01b88 (patch)
tree8141de94e8b9ad3f76faefef5da20214147c9942 /sound
parent24312e84e15f2ead4d372b8678b56349fab27988 (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.c12
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;