A2dp: Send default channel mapping for TWS+ mono.
Audio loss observed when encoder configured with mono mode.
This occurs because when configuration of encoder with mono mode
happens 0 channel mapping is sent to ADSP which rejects it as invalid
channel mapping.
To avoid this send default stereo channel mapping for both mono and dual
mono case.
CRs-Fixed: 2528391
Change-Id: Ie8d04965fb43f1beea747b23ae86464f943afdae
diff --git a/hal/audio_extn/a2dp.c b/hal/audio_extn/a2dp.c
index bcdcb1c..534abb3 100644
--- a/hal/audio_extn/a2dp.c
+++ b/hal/audio_extn/a2dp.c
@@ -1807,10 +1807,14 @@
{
char* channel_mode;
struct mixer_ctl *ctl_channel_mode;
+
+ ALOGD("Update tws for mono_mode on=%d",a2dp.is_tws_mono_mode_on);
+
if (a2dp.is_tws_mono_mode_on)
channel_mode = "One";
else
channel_mode = "Two";
+
ctl_channel_mode = mixer_get_ctl_by_name(a2dp.adev->mixer,MIXER_FMT_TWS_CHANNEL_MODE);
if (!ctl_channel_mode) {
ALOGE("failed to get tws mixer ctl");
@@ -1851,14 +1855,8 @@
break;
case 2:
default:
- if (!a2dp.is_tws_mono_mode_on) {
aptx_dsp_cfg->custom_cfg.channel_mapping[0] = PCM_CHANNEL_L;
aptx_dsp_cfg->custom_cfg.channel_mapping[1] = PCM_CHANNEL_R;
- }
- else {
- a2dp.is_tws_mono_mode_on = true;
- ALOGD("Update tws for mono_mode_on: %d",a2dp.is_tws_mono_mode_on);
- }
break;
}
a2dp.enc_channels = aptx_dsp_cfg->custom_cfg.num_channels;