From 167979de013f064b30c78daf760b2a24eda8c526 Mon Sep 17 00:00:00 2001 From: Daniel Jacob Chittoor Date: Mon, 31 Jul 2023 10:32:14 +0530 Subject: [PATCH 1/4] hal: Force usage of SND_DEVICE_IN_VOICE_SPEAKER_MIC in DMIC cases DMIC implementations remain partially broken, until this is fixed by the OEM force offload the usecase to utilise SND_DEVICE_IN_VOICE_SPEAKER_MIC as the input device. --- hal/msm8974/platform.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c index 2a12341d3..8dfe98d00 100644 --- a/hal/msm8974/platform.c +++ b/hal/msm8974/platform.c @@ -7173,13 +7173,11 @@ snd_device_t platform_get_input_snd_device(void *platform, adev->acdb_settings |= TMIC_FLAG; snd_device = SND_DEVICE_IN_VOICE_SPEAKER_TMIC; } else { - adev->acdb_settings |= DMIC_FLAG; - if (my_data->fluence_mode == FLUENCE_BROADSIDE) + if (my_data->fluence_mode == FLUENCE_BROADSIDE) { + adev->acdb_settings |= DMIC_FLAG; snd_device = SND_DEVICE_IN_VOICE_SPEAKER_DMIC_BROADSIDE; - else - snd_device = my_data->fluence_sb_enabled ? - SND_DEVICE_IN_VOICE_SPEAKER_DMIC_SB - : SND_DEVICE_IN_VOICE_SPEAKER_DMIC; + } else + snd_device = SND_DEVICE_IN_VOICE_SPEAKER_MIC; } if (audio_extn_hfp_is_active(adev)) platform_set_echo_reference(adev, true, out_devices); -- GitLab From 1fac54d4571b4c1111df7f84705b7a045fd68dd2 Mon Sep 17 00:00:00 2001 From: Daniel Jacob Chittoor Date: Mon, 31 Jul 2023 10:37:18 +0530 Subject: [PATCH 2/4] hal: Force usage of SND_DEVICE_IN_HANDSET_MIC in DMIC cases DMIC implementations remain partially broken, until this is fixed by the OEM force offload the usecase to utilise SND_DEVICE_IN_HANDSET_MIC as the input device. --- hal/msm8974/platform.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c index 8dfe98d00..93e964b5a 100644 --- a/hal/msm8974/platform.c +++ b/hal/msm8974/platform.c @@ -7118,10 +7118,7 @@ snd_device_t platform_get_input_snd_device(void *platform, } else if (is_operator_tmus()) snd_device = SND_DEVICE_IN_VOICE_DMIC_TMUS; else { /* for FLUENCE_DUAL_MIC and SOURCE_DUAL_MIC */ - snd_device = my_data->fluence_sb_enabled ? - SND_DEVICE_IN_VOICE_DMIC_SB - : SND_DEVICE_IN_VOICE_DMIC; - adev->acdb_settings |= DMIC_FLAG; + snd_device = SND_DEVICE_IN_HANDSET_MIC; } } } else if (compare_device_type(out_devices, AUDIO_DEVICE_OUT_WIRED_HEADSET)) { -- GitLab From 9965ec0858b16084892ffe8f0477fbe5ee07fd69 Mon Sep 17 00:00:00 2001 From: Daniel Jacob Chittoor Date: Tue, 25 Jul 2023 15:59:09 +0530 Subject: [PATCH 3/4] hal: Attain audio path parity for microphone devices Fairphone 4 uses a special microphone setup and does not use the same microphone for TX sub-band or external device usecases. --- hal/msm8974/platform.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c index 93e964b5a..e386ba7f4 100644 --- a/hal/msm8974/platform.c +++ b/hal/msm8974/platform.c @@ -643,9 +643,9 @@ static const char * const device_table[SND_DEVICE_MAX] = { /* Capture sound devices */ [SND_DEVICE_IN_HANDSET_MIC] = "handset-mic", - [SND_DEVICE_IN_HANDSET_MIC_SB] = "handset-mic", - [SND_DEVICE_IN_HANDSET_MIC_NN] = "handset-mic", - [SND_DEVICE_IN_HANDSET_MIC_EXTERNAL] = "handset-mic-ext", + [SND_DEVICE_IN_HANDSET_MIC_SB] = "handset-mic2", + [SND_DEVICE_IN_HANDSET_MIC_NN] = "handset-mic3", + [SND_DEVICE_IN_HANDSET_MIC_EXTERNAL] = "handset-mic4", [SND_DEVICE_IN_HANDSET_MIC_AEC] = "handset-mic", [SND_DEVICE_IN_HANDSET_MIC_AEC_SB] = "handset-mic", [SND_DEVICE_IN_HANDSET_MIC_AEC_NN] = "handset-mic", -- GitLab From 921a7f1122370fed69dddc2370b13bf2ad9b01e7 Mon Sep 17 00:00:00 2001 From: Daniel Jacob Chittoor Date: Tue, 25 Jul 2023 16:08:47 +0530 Subject: [PATCH 4/4] hal: Correct ACDB IDs for SND_DEVICE_IN_HANDSET_MIC_* --- hal/msm8974/platform.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c index e386ba7f4..f66cb06a6 100644 --- a/hal/msm8974/platform.c +++ b/hal/msm8974/platform.c @@ -945,8 +945,8 @@ static int acdb_device_table[SND_DEVICE_MAX] = { [SND_DEVICE_OUT_BUS_RSE] = 60, [SND_DEVICE_OUT_CALL_PROXY] = 32, [SND_DEVICE_IN_HANDSET_MIC] = 4, - [SND_DEVICE_IN_HANDSET_MIC_SB] = 163, - [SND_DEVICE_IN_HANDSET_MIC_NN] = 183, + [SND_DEVICE_IN_HANDSET_MIC_SB] = 4, + [SND_DEVICE_IN_HANDSET_MIC_NN] = 4, [SND_DEVICE_IN_HANDSET_MIC_EXTERNAL] = 4, [SND_DEVICE_IN_HANDSET_MIC_AEC] = 106, [SND_DEVICE_IN_HANDSET_MIC_AEC_SB] = 164, -- GitLab