Merge "hal: update acdb loader init logic" into mnc-dev
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 46c01ef..8fc7764 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -107,6 +107,8 @@
.channels = 2,
.period_count = AUDIO_CAPTURE_PERIOD_COUNT,
.format = PCM_FORMAT_S16_LE,
+ .stop_threshold = INT_MAX,
+ .avail_min = 0,
};
#define AFE_PROXY_CHANNEL_COUNT 2
@@ -2280,9 +2282,7 @@
ret = str_parms_get_str(parms, AUDIO_PARAMETER_KEY_BT_NREC, value, sizeof(value));
if (ret >= 0) {
- /* When set to false, HAL should disable EC and NS
- * But it is currently not supported.
- */
+ /* When set to false, HAL should disable EC and NS */
if (strcmp(value, AUDIO_PARAMETER_VALUE_ON) == 0)
adev->bluetooth_nrec = true;
else
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index 6d2fab4..0d68394 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -201,8 +201,9 @@
[SND_DEVICE_IN_HDMI_MIC] = "hdmi-mic",
[SND_DEVICE_IN_BT_SCO_MIC] = "bt-sco-mic",
+ [SND_DEVICE_IN_BT_SCO_MIC_NREC] = "bt-sco-mic",
[SND_DEVICE_IN_BT_SCO_MIC_WB] = "bt-sco-mic-wb",
-
+ [SND_DEVICE_IN_BT_SCO_MIC_WB_NREC] = "bt-sco-mic-wb",
[SND_DEVICE_IN_CAMCORDER_MIC] = "camcorder-mic",
[SND_DEVICE_IN_VOICE_DMIC] = "voice-dmic-ef",
@@ -277,8 +278,9 @@
[SND_DEVICE_IN_HDMI_MIC] = 4,
[SND_DEVICE_IN_BT_SCO_MIC] = 21,
+ [SND_DEVICE_IN_BT_SCO_MIC_NREC] = 21,
[SND_DEVICE_IN_BT_SCO_MIC_WB] = 38,
-
+ [SND_DEVICE_IN_BT_SCO_MIC_WB_NREC] = 38,
[SND_DEVICE_IN_CAMCORDER_MIC] = 61,
[SND_DEVICE_IN_VOICE_DMIC] = 41,
@@ -360,8 +362,9 @@
{TO_NAME_INDEX(SND_DEVICE_IN_HDMI_MIC)},
{TO_NAME_INDEX(SND_DEVICE_IN_BT_SCO_MIC)},
+ {TO_NAME_INDEX(SND_DEVICE_IN_BT_SCO_MIC_NREC)},
{TO_NAME_INDEX(SND_DEVICE_IN_BT_SCO_MIC_WB)},
-
+ {TO_NAME_INDEX(SND_DEVICE_IN_BT_SCO_MIC_WB_NREC)},
{TO_NAME_INDEX(SND_DEVICE_IN_CAMCORDER_MIC)},
{TO_NAME_INDEX(SND_DEVICE_IN_VOICE_DMIC)},
@@ -710,11 +713,13 @@
// To overwrite these go to the audio_platform_info.xml file.
backend_tag_table[SND_DEVICE_IN_BT_SCO_MIC] = strdup("bt-sco");
+ backend_tag_table[SND_DEVICE_IN_BT_SCO_MIC_NREC] = strdup("bt-sco");
backend_tag_table[SND_DEVICE_OUT_BT_SCO] = strdup("bt-sco");
backend_tag_table[SND_DEVICE_OUT_HDMI] = strdup("hdmi");
backend_tag_table[SND_DEVICE_OUT_SPEAKER_AND_HDMI] = strdup("speaker-and-hdmi");
backend_tag_table[SND_DEVICE_OUT_BT_SCO_WB] = strdup("bt-sco-wb");
backend_tag_table[SND_DEVICE_IN_BT_SCO_MIC_WB] = strdup("bt-sco-wb");
+ backend_tag_table[SND_DEVICE_IN_BT_SCO_MIC_WB_NREC] = strdup("bt-sco-wb");
backend_tag_table[SND_DEVICE_OUT_VOICE_TX] = strdup("afe-proxy");
backend_tag_table[SND_DEVICE_IN_VOICE_RX] = strdup("afe-proxy");
@@ -1595,9 +1600,15 @@
snd_device = SND_DEVICE_IN_VOICE_HEADSET_MIC;
} else if (out_device & AUDIO_DEVICE_OUT_ALL_SCO) {
if (adev->bt_wb_speech_enabled) {
- snd_device = SND_DEVICE_IN_BT_SCO_MIC_WB;
+ if (adev->bluetooth_nrec)
+ snd_device = SND_DEVICE_IN_BT_SCO_MIC_WB_NREC;
+ else
+ snd_device = SND_DEVICE_IN_BT_SCO_MIC_WB;
} else {
- snd_device = SND_DEVICE_IN_BT_SCO_MIC;
+ if (adev->bluetooth_nrec)
+ snd_device = SND_DEVICE_IN_BT_SCO_MIC_NREC;
+ else
+ snd_device = SND_DEVICE_IN_BT_SCO_MIC;
}
} else if (out_device & AUDIO_DEVICE_OUT_SPEAKER ||
out_device & AUDIO_DEVICE_OUT_SPEAKER_SAFE ||
@@ -1719,9 +1730,15 @@
snd_device = SND_DEVICE_IN_HEADSET_MIC;
} else if (in_device & AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET) {
if (adev->bt_wb_speech_enabled) {
- snd_device = SND_DEVICE_IN_BT_SCO_MIC_WB;
+ if (adev->bluetooth_nrec)
+ snd_device = SND_DEVICE_IN_BT_SCO_MIC_WB_NREC;
+ else
+ snd_device = SND_DEVICE_IN_BT_SCO_MIC_WB;
} else {
- snd_device = SND_DEVICE_IN_BT_SCO_MIC;
+ if (adev->bluetooth_nrec)
+ snd_device = SND_DEVICE_IN_BT_SCO_MIC_NREC;
+ else
+ snd_device = SND_DEVICE_IN_BT_SCO_MIC;
}
} else if (in_device & AUDIO_DEVICE_IN_AUX_DIGITAL) {
snd_device = SND_DEVICE_IN_HDMI_MIC;
@@ -1745,9 +1762,15 @@
snd_device = SND_DEVICE_IN_SPEAKER_MIC;
} else if (out_device & AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET) {
if (adev->bt_wb_speech_enabled) {
- snd_device = SND_DEVICE_IN_BT_SCO_MIC_WB;
+ if (adev->bluetooth_nrec)
+ snd_device = SND_DEVICE_IN_BT_SCO_MIC_WB_NREC;
+ else
+ snd_device = SND_DEVICE_IN_BT_SCO_MIC_WB;
} else {
- snd_device = SND_DEVICE_IN_BT_SCO_MIC;
+ if (adev->bluetooth_nrec)
+ snd_device = SND_DEVICE_IN_BT_SCO_MIC_NREC;
+ else
+ snd_device = SND_DEVICE_IN_BT_SCO_MIC;
}
} else if (out_device & AUDIO_DEVICE_OUT_AUX_DIGITAL) {
snd_device = SND_DEVICE_IN_HDMI_MIC;
diff --git a/hal/msm8974/platform.h b/hal/msm8974/platform.h
index 63c1357..43e6be3 100644
--- a/hal/msm8974/platform.h
+++ b/hal/msm8974/platform.h
@@ -95,8 +95,9 @@
SND_DEVICE_IN_HDMI_MIC,
SND_DEVICE_IN_BT_SCO_MIC,
+ SND_DEVICE_IN_BT_SCO_MIC_NREC,
SND_DEVICE_IN_BT_SCO_MIC_WB,
-
+ SND_DEVICE_IN_BT_SCO_MIC_WB_NREC,
SND_DEVICE_IN_CAMCORDER_MIC,
SND_DEVICE_IN_VOICE_DMIC,