hal: Add support for 3-mic surround sound recording
Add support for stereo surround sound recording using 3 mics.
Change-Id: I741dd5507d72ac45dff8006d3875abe8dbdc2df2
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index d4cdf2e..2fb50c1 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -423,6 +423,7 @@
[SND_DEVICE_IN_SPEAKER_QMIC_AEC] = "quad-mic",
[SND_DEVICE_IN_SPEAKER_QMIC_NS] = "quad-mic",
[SND_DEVICE_IN_SPEAKER_QMIC_AEC_NS] = "quad-mic",
+ [SND_DEVICE_IN_THREE_MIC] = "three-mic",
};
// Platform specific backend bit width table
@@ -527,6 +528,7 @@
[SND_DEVICE_IN_SPEAKER_QMIC_AEC] = 126,
[SND_DEVICE_IN_SPEAKER_QMIC_NS] = 127,
[SND_DEVICE_IN_SPEAKER_QMIC_AEC_NS] = 129,
+ [SND_DEVICE_IN_THREE_MIC] = 46,
};
struct name_to_index {
@@ -2675,6 +2677,8 @@
goto exit;
}
+ if (adev->active_input && (audio_extn_ssr_get_stream() == adev->active_input))
+ snd_device = SND_DEVICE_IN_THREE_MIC;
if (snd_device != SND_DEVICE_NONE) {
goto exit;
@@ -2684,7 +2688,7 @@
!(in_device & AUDIO_DEVICE_IN_VOICE_CALL) &&
!(in_device & AUDIO_DEVICE_IN_COMMUNICATION)) {
if (in_device & AUDIO_DEVICE_IN_BUILTIN_MIC) {
- if (audio_extn_ssr_get_enabled() && channel_count == 6)
+ if (adev->active_input && (audio_extn_ssr_get_stream() == adev->active_input))
snd_device = SND_DEVICE_IN_QUAD_MIC;
else if (my_data->fluence_type & (FLUENCE_DUAL_MIC | FLUENCE_QUAD_MIC) &&
channel_count == 2)
diff --git a/hal/msm8974/platform.h b/hal/msm8974/platform.h
index c98d1af..9045562 100644
--- a/hal/msm8974/platform.h
+++ b/hal/msm8974/platform.h
@@ -169,6 +169,7 @@
SND_DEVICE_IN_SPEAKER_QMIC_AEC,
SND_DEVICE_IN_SPEAKER_QMIC_NS,
SND_DEVICE_IN_SPEAKER_QMIC_AEC_NS,
+ SND_DEVICE_IN_THREE_MIC,
SND_DEVICE_IN_END,
SND_DEVICE_MAX = SND_DEVICE_IN_END,