hal: Add tri-mic device entries
Add following speaker tri-mic device entries
in msm8974 and msm8916 platform files -
SND_DEVICE_IN_VOICE_SPEAKER_TMIC, SND_DEVICE_IN_SPEAKER_TMIC_AEC,
SND_DEVICE_IN_SPEAKER_TMIC_NS, SND_DEVICE_IN_SPEAKER_TMIC_AEC_NS.
Change-Id: I1e8a6b63e39d4c55abe1098aef2c9bc76fcc5cc0
diff --git a/hal/msm8916/platform.c b/hal/msm8916/platform.c
index 1d80893..98fdef4 100644
--- a/hal/msm8916/platform.c
+++ b/hal/msm8916/platform.c
@@ -499,6 +499,7 @@
[SND_DEVICE_IN_CAMCORDER_MIC] = "camcorder-mic",
[SND_DEVICE_IN_VOICE_DMIC] = "voice-dmic-ef",
[SND_DEVICE_IN_VOICE_SPEAKER_DMIC] = "voice-speaker-dmic-ef",
+ [SND_DEVICE_IN_VOICE_SPEAKER_TMIC] = "voice-speaker-tmic",
[SND_DEVICE_IN_VOICE_SPEAKER_QMIC] = "voice-speaker-qmic",
[SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC] = "voice-tty-full-headset-mic",
[SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC] = "voice-tty-vco-handset-mic",
@@ -533,6 +534,9 @@
[SND_DEVICE_IN_SPEAKER_QMIC_AEC_NS] = "quad-mic",
[SND_DEVICE_IN_THREE_MIC] = "three-mic",
[SND_DEVICE_IN_HANDSET_TMIC] = "three-mic",
+ [SND_DEVICE_IN_SPEAKER_TMIC_AEC] = "speaker-tmic",
+ [SND_DEVICE_IN_SPEAKER_TMIC_NS] = "speaker-tmic",
+ [SND_DEVICE_IN_SPEAKER_TMIC_AEC_NS] = "speaker-tmic",
[SND_DEVICE_IN_VOICE_REC_TMIC] = "three-mic",
[SND_DEVICE_IN_UNPROCESSED_MIC] = "unprocessed-mic",
[SND_DEVICE_IN_UNPROCESSED_STEREO_MIC] = "voice-rec-dmic-ef",
@@ -663,6 +667,7 @@
[SND_DEVICE_IN_CAMCORDER_MIC] = 4,
[SND_DEVICE_IN_VOICE_DMIC] = 41,
[SND_DEVICE_IN_VOICE_SPEAKER_DMIC] = 43,
+ [SND_DEVICE_IN_VOICE_SPEAKER_TMIC] = 161,
[SND_DEVICE_IN_VOICE_SPEAKER_QMIC] = 19,
[SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC] = 16,
[SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC] = 36,
@@ -697,6 +702,9 @@
[SND_DEVICE_IN_SPEAKER_QMIC_AEC_NS] = 129,
[SND_DEVICE_IN_THREE_MIC] = 46, /* for APSS Surround Sound Recording */
[SND_DEVICE_IN_HANDSET_TMIC] = 125, /* for 3mic recording with fluence */
+ [SND_DEVICE_IN_SPEAKER_TMIC_AEC] = 158,
+ [SND_DEVICE_IN_SPEAKER_TMIC_NS] = 159,
+ [SND_DEVICE_IN_SPEAKER_TMIC_AEC_NS] = 160,
[SND_DEVICE_IN_VOICE_REC_TMIC] = 125,
[SND_DEVICE_IN_UNPROCESSED_MIC] = 143,
[SND_DEVICE_IN_UNPROCESSED_STEREO_MIC] = 144,
@@ -812,6 +820,7 @@
{TO_NAME_INDEX(SND_DEVICE_IN_CAMCORDER_MIC)},
{TO_NAME_INDEX(SND_DEVICE_IN_VOICE_DMIC)},
{TO_NAME_INDEX(SND_DEVICE_IN_VOICE_SPEAKER_DMIC)},
+ {TO_NAME_INDEX(SND_DEVICE_IN_VOICE_SPEAKER_TMIC)},
{TO_NAME_INDEX(SND_DEVICE_IN_VOICE_SPEAKER_QMIC)},
{TO_NAME_INDEX(SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC)},
{TO_NAME_INDEX(SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC)},
@@ -846,6 +855,9 @@
{TO_NAME_INDEX(SND_DEVICE_IN_SPEAKER_QMIC_AEC_NS)},
{TO_NAME_INDEX(SND_DEVICE_IN_THREE_MIC)},
{TO_NAME_INDEX(SND_DEVICE_IN_HANDSET_TMIC)},
+ {TO_NAME_INDEX(SND_DEVICE_IN_SPEAKER_TMIC_AEC)},
+ {TO_NAME_INDEX(SND_DEVICE_IN_SPEAKER_TMIC_NS)},
+ {TO_NAME_INDEX(SND_DEVICE_IN_SPEAKER_TMIC_AEC_NS)},
{TO_NAME_INDEX(SND_DEVICE_IN_VOICE_REC_TMIC)},
{TO_NAME_INDEX(SND_DEVICE_IN_UNPROCESSED_MIC)},
{TO_NAME_INDEX(SND_DEVICE_IN_UNPROCESSED_STEREO_MIC)},
@@ -1628,6 +1640,7 @@
hw_interface_table[SND_DEVICE_IN_CAMCORDER_MIC] = strdup("SLIMBUS_0_TX");
hw_interface_table[SND_DEVICE_IN_VOICE_DMIC] = strdup("SLIMBUS_0_TX");
hw_interface_table[SND_DEVICE_IN_VOICE_SPEAKER_DMIC] = strdup("SLIMBUS_0_TX");
+ hw_interface_table[SND_DEVICE_IN_VOICE_SPEAKER_TMIC] = strdup("SLIMBUS_0_TX");
hw_interface_table[SND_DEVICE_IN_VOICE_SPEAKER_QMIC] = strdup("SLIMBUS_0_TX");
hw_interface_table[SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC] = strdup("SLIMBUS_0_TX");
hw_interface_table[SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC] = strdup("SLIMBUS_0_TX");
@@ -1658,6 +1671,9 @@
hw_interface_table[SND_DEVICE_IN_SPEAKER_QMIC_AEC_NS] = strdup("SLIMBUS_0_TX");
hw_interface_table[SND_DEVICE_IN_THREE_MIC] = strdup("SLIMBUS_0_TX");
hw_interface_table[SND_DEVICE_IN_HANDSET_TMIC] = strdup("SLIMBUS_0_TX");
+ hw_interface_table[SND_DEVICE_IN_SPEAKER_TMIC_AEC] = strdup("SLIMBUS_0_TX");
+ hw_interface_table[SND_DEVICE_IN_SPEAKER_TMIC_NS] = strdup("SLIMBUS_0_TX");
+ hw_interface_table[SND_DEVICE_IN_SPEAKER_TMIC_AEC_NS] = strdup("SLIMBUS_0_TX");
hw_interface_table[SND_DEVICE_IN_VOICE_REC_TMIC] = strdup("SLIMBUS_0_TX");
hw_interface_table[SND_DEVICE_IN_UNPROCESSED_MIC] = strdup("SLIMBUS_0_TX");
hw_interface_table[SND_DEVICE_IN_UNPROCESSED_STEREO_MIC] = strdup("SLIMBUS_0_TX");
@@ -2949,6 +2965,8 @@
strlcpy(value, "hexmic", len);
} else if (my_data->fluence_type == FLUENCE_QUAD_MIC) {
strlcpy(value, "quadmic", len);
+ } else if (my_data->fluence_type == FLUENCE_TRI_MIC) {
+ strlcpy(value, "trimic", len);
} else if (my_data->fluence_type == FLUENCE_DUAL_MIC) {
strlcpy(value, "dualmic", len);
} else if (my_data->fluence_type == FLUENCE_NONE) {
@@ -4155,6 +4173,9 @@
if ((my_data->fluence_type & FLUENCE_QUAD_MIC) &&
(my_data->source_mic_type & SOURCE_QUAD_MIC)) {
snd_device = SND_DEVICE_IN_SPEAKER_QMIC_AEC_NS;
+ } else if ((my_data->fluence_type & FLUENCE_TRI_MIC) &&
+ (my_data->source_mic_type & SOURCE_THREE_MIC)) {
+ snd_device = SND_DEVICE_IN_SPEAKER_TMIC_AEC_NS;
} else if ((my_data->fluence_type & FLUENCE_DUAL_MIC) &&
(my_data->source_mic_type & SOURCE_DUAL_MIC)) {
if (my_data->fluence_mode == FLUENCE_BROADSIDE)
@@ -4195,6 +4216,9 @@
if ((my_data->fluence_type & FLUENCE_QUAD_MIC) &&
(my_data->source_mic_type & SOURCE_QUAD_MIC)) {
snd_device = SND_DEVICE_IN_SPEAKER_QMIC_AEC_NS;
+ } else if ((my_data->fluence_type & FLUENCE_TRI_MIC) &&
+ (my_data->source_mic_type & SOURCE_THREE_MIC)) {
+ snd_device = SND_DEVICE_IN_SPEAKER_TMIC_AEC_NS;
} else if ((my_data->fluence_type & FLUENCE_DUAL_MIC) &&
(my_data->source_mic_type & SOURCE_DUAL_MIC)) {
if (my_data->fluence_mode == FLUENCE_BROADSIDE)
@@ -4225,6 +4249,9 @@
if ((my_data->fluence_type & FLUENCE_QUAD_MIC) &&
(my_data->source_mic_type & SOURCE_QUAD_MIC)) {
snd_device = SND_DEVICE_IN_SPEAKER_QMIC_AEC;
+ } else if ((my_data->fluence_type & FLUENCE_TRI_MIC) &&
+ (my_data->source_mic_type & SOURCE_THREE_MIC)) {
+ snd_device = SND_DEVICE_IN_SPEAKER_TMIC_AEC;
} else if ((my_data->fluence_type & FLUENCE_DUAL_MIC) &&
(my_data->source_mic_type & SOURCE_DUAL_MIC)) {
if (my_data->fluence_mode == FLUENCE_BROADSIDE)
@@ -4255,6 +4282,9 @@
if ((my_data->fluence_type & FLUENCE_QUAD_MIC) &&
(my_data->source_mic_type & SOURCE_QUAD_MIC)) {
snd_device = SND_DEVICE_IN_SPEAKER_QMIC_NS;
+ } else if ((my_data->fluence_type & FLUENCE_TRI_MIC) &&
+ (my_data->source_mic_type & SOURCE_THREE_MIC)) {
+ snd_device = SND_DEVICE_IN_SPEAKER_TMIC_NS;
} else if ((my_data->fluence_type & FLUENCE_DUAL_MIC) &&
(my_data->source_mic_type & SOURCE_DUAL_MIC)) {
if (my_data->fluence_mode == FLUENCE_BROADSIDE)
@@ -4396,6 +4426,10 @@
(my_data->source_mic_type & SOURCE_QUAD_MIC)) {
adev->acdb_settings |= QMIC_FLAG;
snd_device = SND_DEVICE_IN_VOICE_SPEAKER_QMIC;
+ } else if ((my_data->fluence_type & FLUENCE_TRI_MIC) &&
+ (my_data->source_mic_type & SOURCE_THREE_MIC)) {
+ 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)
@@ -4564,7 +4598,7 @@
if (in_device & AUDIO_DEVICE_IN_BUILTIN_MIC) {
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)) &&
+ else if ((my_data->fluence_type & (FLUENCE_DUAL_MIC | FLUENCE_TRI_MIC | FLUENCE_QUAD_MIC)) &&
(channel_count == 2) && (my_data->source_mic_type & SOURCE_DUAL_MIC))
snd_device = SND_DEVICE_IN_HANDSET_STEREO_DMIC;
else
diff --git a/hal/msm8916/platform.h b/hal/msm8916/platform.h
index aeefcc2..1cf7a62 100644
--- a/hal/msm8916/platform.h
+++ b/hal/msm8916/platform.h
@@ -24,8 +24,9 @@
enum {
FLUENCE_NONE,
FLUENCE_DUAL_MIC = 0x1,
- FLUENCE_QUAD_MIC = 0x2,
- FLUENCE_HEX_MIC = 0x4,
+ FLUENCE_TRI_MIC = 0x2,
+ FLUENCE_QUAD_MIC = 0x4,
+ FLUENCE_HEX_MIC = 0x8,
};
enum {
@@ -184,6 +185,7 @@
SND_DEVICE_IN_CAMCORDER_MIC,
SND_DEVICE_IN_VOICE_DMIC,
SND_DEVICE_IN_VOICE_SPEAKER_DMIC,
+ SND_DEVICE_IN_VOICE_SPEAKER_TMIC,
SND_DEVICE_IN_VOICE_SPEAKER_QMIC,
SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC,
SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC,
@@ -218,6 +220,9 @@
SND_DEVICE_IN_SPEAKER_QMIC_AEC_NS,
SND_DEVICE_IN_THREE_MIC,
SND_DEVICE_IN_HANDSET_TMIC,
+ SND_DEVICE_IN_SPEAKER_TMIC_AEC,
+ SND_DEVICE_IN_SPEAKER_TMIC_NS,
+ SND_DEVICE_IN_SPEAKER_TMIC_AEC_NS,
SND_DEVICE_IN_VOICE_REC_TMIC,
SND_DEVICE_IN_UNPROCESSED_MIC,
SND_DEVICE_IN_UNPROCESSED_STEREO_MIC,
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index 269c648..7569cd6 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -479,6 +479,7 @@
[SND_DEVICE_IN_CAMCORDER_MIC] = "camcorder-mic",
[SND_DEVICE_IN_VOICE_DMIC] = "voice-dmic-ef",
[SND_DEVICE_IN_VOICE_SPEAKER_DMIC] = "voice-speaker-dmic-ef",
+ [SND_DEVICE_IN_VOICE_SPEAKER_TMIC] = "voice-speaker-tmic",
[SND_DEVICE_IN_VOICE_SPEAKER_QMIC] = "voice-speaker-qmic",
[SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC] = "voice-tty-full-headset-mic",
[SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC] = "voice-tty-vco-handset-mic",
@@ -521,6 +522,9 @@
[SND_DEVICE_IN_HANDSET_TMIC_AEC] = "three-mic",
[SND_DEVICE_IN_HANDSET_TMIC_NS] = "three-mic",
[SND_DEVICE_IN_HANDSET_TMIC_AEC_NS] = "three-mic",
+ [SND_DEVICE_IN_SPEAKER_TMIC_AEC] = "speaker-tmic",
+ [SND_DEVICE_IN_SPEAKER_TMIC_NS] = "speaker-tmic",
+ [SND_DEVICE_IN_SPEAKER_TMIC_AEC_NS] = "speaker-tmic",
[SND_DEVICE_IN_VOICE_REC_TMIC] = "three-mic",
[SND_DEVICE_IN_UNPROCESSED_MIC] = "unprocessed-mic",
[SND_DEVICE_IN_UNPROCESSED_STEREO_MIC] = "unprocessed-stereo-mic",
@@ -642,6 +646,7 @@
[SND_DEVICE_IN_CAMCORDER_MIC] = 4,
[SND_DEVICE_IN_VOICE_DMIC] = 41,
[SND_DEVICE_IN_VOICE_SPEAKER_DMIC] = 43,
+ [SND_DEVICE_IN_VOICE_SPEAKER_TMIC] = 161,
[SND_DEVICE_IN_VOICE_SPEAKER_QMIC] = 19,
[SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC] = 16,
[SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC] = 36,
@@ -684,6 +689,9 @@
[SND_DEVICE_IN_HANDSET_TMIC_AEC] = 154,
[SND_DEVICE_IN_HANDSET_TMIC_NS] = 155,
[SND_DEVICE_IN_HANDSET_TMIC_AEC_NS] = 156,
+ [SND_DEVICE_IN_SPEAKER_TMIC_AEC] = 158,
+ [SND_DEVICE_IN_SPEAKER_TMIC_NS] = 159,
+ [SND_DEVICE_IN_SPEAKER_TMIC_AEC_NS] = 160,
[SND_DEVICE_IN_VOICE_REC_TMIC] = 125,
[SND_DEVICE_IN_UNPROCESSED_MIC] = 143,
[SND_DEVICE_IN_UNPROCESSED_STEREO_MIC] = 144,
@@ -790,6 +798,7 @@
{TO_NAME_INDEX(SND_DEVICE_IN_CAMCORDER_MIC)},
{TO_NAME_INDEX(SND_DEVICE_IN_VOICE_DMIC)},
{TO_NAME_INDEX(SND_DEVICE_IN_VOICE_SPEAKER_DMIC)},
+ {TO_NAME_INDEX(SND_DEVICE_IN_VOICE_SPEAKER_TMIC)},
{TO_NAME_INDEX(SND_DEVICE_IN_VOICE_SPEAKER_QMIC)},
{TO_NAME_INDEX(SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC)},
{TO_NAME_INDEX(SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC)},
@@ -831,6 +840,9 @@
{TO_NAME_INDEX(SND_DEVICE_IN_HANDSET_TMIC_AEC)},
{TO_NAME_INDEX(SND_DEVICE_IN_HANDSET_TMIC_NS)},
{TO_NAME_INDEX(SND_DEVICE_IN_HANDSET_TMIC_AEC_NS)},
+ {TO_NAME_INDEX(SND_DEVICE_IN_SPEAKER_TMIC_AEC)},
+ {TO_NAME_INDEX(SND_DEVICE_IN_SPEAKER_TMIC_NS)},
+ {TO_NAME_INDEX(SND_DEVICE_IN_SPEAKER_TMIC_AEC_NS)},
{TO_NAME_INDEX(SND_DEVICE_IN_VOICE_REC_TMIC)},
{TO_NAME_INDEX(SND_DEVICE_IN_UNPROCESSED_MIC)},
{TO_NAME_INDEX(SND_DEVICE_IN_UNPROCESSED_STEREO_MIC)},
@@ -1483,6 +1495,7 @@
hw_interface_table[SND_DEVICE_IN_CAMCORDER_MIC] = strdup("SLIMBUS_0_TX");
hw_interface_table[SND_DEVICE_IN_VOICE_DMIC] = strdup("SLIMBUS_0_TX");
hw_interface_table[SND_DEVICE_IN_VOICE_SPEAKER_DMIC] = strdup("SLIMBUS_0_TX");
+ hw_interface_table[SND_DEVICE_IN_VOICE_SPEAKER_TMIC] = strdup("SLIMBUS_0_TX");
hw_interface_table[SND_DEVICE_IN_VOICE_SPEAKER_QMIC] = strdup("SLIMBUS_0_TX");
hw_interface_table[SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC] = strdup("SLIMBUS_0_TX");
hw_interface_table[SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC] = strdup("SLIMBUS_0_TX");
@@ -1520,6 +1533,9 @@
hw_interface_table[SND_DEVICE_IN_HANDSET_TMIC_AEC] = strdup("SLIMBUS_0_TX");
hw_interface_table[SND_DEVICE_IN_HANDSET_TMIC_NS] = strdup("SLIMBUS_0_TX");
hw_interface_table[SND_DEVICE_IN_HANDSET_TMIC_AEC_NS] = strdup("SLIMBUS_0_TX");
+ hw_interface_table[SND_DEVICE_IN_SPEAKER_TMIC_AEC] = strdup("SLIMBUS_0_TX");
+ hw_interface_table[SND_DEVICE_IN_SPEAKER_TMIC_NS] = strdup("SLIMBUS_0_TX");
+ hw_interface_table[SND_DEVICE_IN_SPEAKER_TMIC_AEC_NS] = strdup("SLIMBUS_0_TX");
hw_interface_table[SND_DEVICE_IN_VOICE_REC_TMIC] = strdup("SLIMBUS_0_TX");
hw_interface_table[SND_DEVICE_IN_UNPROCESSED_MIC] = strdup("SLIMBUS_0_TX");
hw_interface_table[SND_DEVICE_IN_UNPROCESSED_STEREO_MIC] = strdup("SLIMBUS_0_TX");
@@ -2765,6 +2781,8 @@
if (my_data->fluence_type == FLUENCE_QUAD_MIC) {
strlcpy(value, "quadmic", len);
+ } else if (my_data->fluence_type == FLUENCE_TRI_MIC) {
+ strlcpy(value, "trimic", len);
} else if (my_data->fluence_type == FLUENCE_DUAL_MIC) {
strlcpy(value, "dualmic", len);
} else if (my_data->fluence_type == FLUENCE_NONE) {
@@ -3952,6 +3970,9 @@
if ((my_data->fluence_type & FLUENCE_QUAD_MIC) &&
(my_data->source_mic_type & SOURCE_QUAD_MIC)) {
snd_device = SND_DEVICE_IN_SPEAKER_QMIC_AEC_NS;
+ } else if ((my_data->fluence_type & FLUENCE_TRI_MIC) &&
+ (my_data->source_mic_type & SOURCE_THREE_MIC)) {
+ snd_device = SND_DEVICE_IN_SPEAKER_TMIC_AEC_NS;
} else if ((my_data->fluence_type & FLUENCE_DUAL_MIC) &&
(my_data->source_mic_type & SOURCE_DUAL_MIC)) {
if (my_data->fluence_mode == FLUENCE_BROADSIDE)
@@ -3996,6 +4017,9 @@
if ((my_data->fluence_type & FLUENCE_QUAD_MIC) &&
(my_data->source_mic_type & SOURCE_QUAD_MIC)) {
snd_device = SND_DEVICE_IN_SPEAKER_QMIC_AEC_NS;
+ } else if ((my_data->fluence_type & FLUENCE_TRI_MIC) &&
+ (my_data->source_mic_type & SOURCE_THREE_MIC)) {
+ snd_device = SND_DEVICE_IN_SPEAKER_TMIC_AEC_NS;
} else if ((my_data->fluence_type & FLUENCE_DUAL_MIC) &&
(my_data->source_mic_type & SOURCE_DUAL_MIC)) {
if (my_data->fluence_mode == FLUENCE_BROADSIDE)
@@ -4030,6 +4054,9 @@
if ((my_data->fluence_type & FLUENCE_QUAD_MIC) &&
(my_data->source_mic_type & SOURCE_QUAD_MIC)) {
snd_device = SND_DEVICE_IN_SPEAKER_QMIC_AEC;
+ } else if ((my_data->fluence_type & FLUENCE_TRI_MIC) &&
+ (my_data->source_mic_type & SOURCE_THREE_MIC)) {
+ snd_device = SND_DEVICE_IN_SPEAKER_TMIC_AEC;
} else if ((my_data->fluence_type & FLUENCE_DUAL_MIC) &&
(my_data->source_mic_type & SOURCE_DUAL_MIC)) {
if (my_data->fluence_mode == FLUENCE_BROADSIDE)
@@ -4064,6 +4091,9 @@
if ((my_data->fluence_type & FLUENCE_QUAD_MIC) &&
(my_data->source_mic_type & SOURCE_QUAD_MIC)) {
snd_device = SND_DEVICE_IN_SPEAKER_QMIC_NS;
+ } else if ((my_data->fluence_type & FLUENCE_TRI_MIC) &&
+ (my_data->source_mic_type & SOURCE_THREE_MIC)) {
+ snd_device = SND_DEVICE_IN_SPEAKER_TMIC_NS;
} else if ((my_data->fluence_type & FLUENCE_DUAL_MIC) &&
(my_data->source_mic_type & SOURCE_DUAL_MIC)) {
if (my_data->fluence_mode == FLUENCE_BROADSIDE)
@@ -4240,6 +4270,10 @@
(my_data->source_mic_type & SOURCE_QUAD_MIC)) {
adev->acdb_settings |= QMIC_FLAG;
snd_device = SND_DEVICE_IN_VOICE_SPEAKER_QMIC;
+ } else if ((my_data->fluence_type & FLUENCE_TRI_MIC) &&
+ (my_data->source_mic_type & SOURCE_THREE_MIC)) {
+ 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)
@@ -4407,7 +4441,7 @@
if (in_device & AUDIO_DEVICE_IN_BUILTIN_MIC) {
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)) &&
+ else if ((my_data->fluence_type & (FLUENCE_DUAL_MIC | FLUENCE_TRI_MIC | FLUENCE_QUAD_MIC)) &&
(channel_count == 2) && (my_data->source_mic_type & SOURCE_DUAL_MIC))
snd_device = SND_DEVICE_IN_HANDSET_STEREO_DMIC;
else
diff --git a/hal/msm8974/platform.h b/hal/msm8974/platform.h
index 97119fc..f4c8ab6 100644
--- a/hal/msm8974/platform.h
+++ b/hal/msm8974/platform.h
@@ -182,6 +182,7 @@
SND_DEVICE_IN_CAMCORDER_MIC,
SND_DEVICE_IN_VOICE_DMIC,
SND_DEVICE_IN_VOICE_SPEAKER_DMIC,
+ SND_DEVICE_IN_VOICE_SPEAKER_TMIC,
SND_DEVICE_IN_VOICE_SPEAKER_QMIC,
SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC,
SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC,
@@ -223,6 +224,9 @@
SND_DEVICE_IN_HANDSET_TMIC_AEC,
SND_DEVICE_IN_HANDSET_TMIC_NS,
SND_DEVICE_IN_HANDSET_TMIC_AEC_NS,
+ SND_DEVICE_IN_SPEAKER_TMIC_AEC,
+ SND_DEVICE_IN_SPEAKER_TMIC_NS,
+ SND_DEVICE_IN_SPEAKER_TMIC_AEC_NS,
SND_DEVICE_IN_VOICE_REC_TMIC,
SND_DEVICE_IN_UNPROCESSED_MIC,
SND_DEVICE_IN_UNPROCESSED_STEREO_MIC,