HAL: Add synth enablement control
Add synth enablement control, create hostless loopback for synth playback case
Change-Id: I0d4da24975e2fe7f28f30adba1a604c85451eeaa
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
old mode 100644
new mode 100755
index 7f4e2b4..041d1aa
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -528,6 +528,7 @@
[USECASE_AUDIO_RECORD_BUS] = {AUDIO_RECORD_PCM_DEVICE, AUDIO_RECORD_PCM_DEVICE},
[USECASE_AUDIO_RECORD_BUS_FRONT_PASSENGER] = {FRONT_PASSENGER_PCM_DEVICE, FRONT_PASSENGER_PCM_DEVICE},
[USECASE_AUDIO_RECORD_BUS_REAR_SEAT] = {REAR_SEAT_PCM_DEVICE, REAR_SEAT_PCM_DEVICE},
+ [USECASE_AUDIO_PLAYBACK_SYNTHESIZER] = {-1, -1},
};
/* Array to store sound devices */
@@ -640,6 +641,7 @@
[SND_DEVICE_OUT_CALL_PROXY] = "call-proxy",
[SND_DEVICE_OUT_HAPTICS] = "haptics",
[SND_DEVICE_OUT_ICC] = "bus-speaker",
+ [SND_DEVICE_OUT_SYNTH_SPKR] = "bus-speaker",
/* Capture sound devices */
[SND_DEVICE_IN_HANDSET_MIC] = "handset-mic",
@@ -792,6 +794,7 @@
[SND_DEVICE_IN_HANDSET_8MIC_AND_EC_REF_LOOPBACK] = "handset-8mic-and-ec-ref-loopback",
[SND_DEVICE_IN_CALL_PROXY] = "call-proxy-in",
[SND_DEVICE_IN_ICC] = "speaker-mic",
+ [SND_DEVICE_IN_SYNTH_MIC] = "speaker-mic",
};
// Platform specific backend bit width table
@@ -938,6 +941,7 @@
[SND_DEVICE_OUT_CALL_PROXY] = 32,
[SND_DEVICE_OUT_HAPTICS] = 200,
[SND_DEVICE_OUT_ICC] = 16,
+ [SND_DEVICE_OUT_SYNTH_SPKR] = 134,
[SND_DEVICE_IN_HANDSET_MIC] = 4,
[SND_DEVICE_IN_HANDSET_MIC_SB] = 163,
[SND_DEVICE_IN_HANDSET_MIC_NN] = 183,
@@ -1080,6 +1084,7 @@
[SND_DEVICE_IN_BUS_RSE] = 11,
[SND_DEVICE_IN_CALL_PROXY] = 33,
[SND_DEVICE_IN_ICC] = 46,
+ [SND_DEVICE_IN_SYNTH_MIC] = 11,
};
struct name_to_index {
@@ -1342,6 +1347,8 @@
/* ICC */
{TO_NAME_INDEX(SND_DEVICE_IN_ICC)},
{TO_NAME_INDEX(SND_DEVICE_OUT_ICC)},
+ {TO_NAME_INDEX(SND_DEVICE_OUT_SYNTH_SPKR)},
+ {TO_NAME_INDEX(SND_DEVICE_IN_SYNTH_MIC)},
};
static char * backend_tag_table[SND_DEVICE_MAX] = {0};
@@ -1417,6 +1424,7 @@
{TO_NAME_INDEX(USECASE_AUDIO_RECORD_BUS)},
{TO_NAME_INDEX(USECASE_AUDIO_RECORD_BUS_FRONT_PASSENGER)},
{TO_NAME_INDEX(USECASE_AUDIO_RECORD_BUS_REAR_SEAT)},
+ {TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_SYNTHESIZER)},
};
static const struct name_to_index usecase_type_index[USECASE_TYPE_MAX] = {
@@ -2637,6 +2645,8 @@
hw_interface_table[SND_DEVICE_IN_CALL_PROXY] = strdup("CALL_PROXY_TX");
hw_interface_table[SND_DEVICE_IN_ICC] = strdup("TERT_TDM_TX_0");
hw_interface_table[SND_DEVICE_OUT_ICC] = strdup("TERT_TDM_RX_0");
+ hw_interface_table[SND_DEVICE_OUT_SYNTH_SPKR] = strdup("TERT_TDM_RX_0");
+ hw_interface_table[SND_DEVICE_IN_SYNTH_MIC] = strdup("TERT_TDM_TX_0");
my_data->max_mic_count = PLATFORM_DEFAULT_MIC_COUNT;
/*remove ALAC & APE from DSP decoder list based on software decoder availability*/
@@ -5426,7 +5436,7 @@
else if ((usecase->type == PCM_CAPTURE) && is_incall_rec_usecase)
snd_device = voice_get_incall_rec_snd_device(usecase->in_snd_device);
else if ((usecase->type == PCM_HFP_CALL) || (usecase->type == PCM_CAPTURE)||
- (usecase->type == ICC_CALL))
+ (usecase->type == ICC_CALL) || (usecase->type == SYNTH_LOOPBACK))
snd_device = usecase->in_snd_device;
else if (usecase->type == TRANSCODE_LOOPBACK_RX)
snd_device = usecase->out_snd_device;
@@ -5450,7 +5460,8 @@
new_snd_device[0] = snd_device;
}
}
- if (((usecase->type == PCM_HFP_CALL) || (usecase->type == ICC_CALL)) &&
+ if (((usecase->type == PCM_HFP_CALL) || (usecase->type == ICC_CALL) ||
+ (usecase->type == SYNTH_LOOPBACK)) &&
is_bus_dev_usecase) {
num_devices = 2;
new_snd_device[0] = usecase->in_snd_device;
@@ -5475,7 +5486,8 @@
if ((usecase->type == PCM_CAPTURE) && (app_type == DEFAULT_APP_TYPE_RX_PATH)) {
ALOGD("Resetting app type for Tx path to default");
app_type = DEFAULT_APP_TYPE_TX_PATH;
- } else if (((usecase->type == PCM_HFP_CALL) || (usecase->type == ICC_CALL)) &&
+ } else if (((usecase->type == PCM_HFP_CALL) || (usecase->type == ICC_CALL) ||
+ (usecase->type == SYNTH_LOOPBACK)) &&
is_bus_dev_usecase) {
if (new_snd_device[i] >= SND_DEVICE_OUT_BEGIN &&
new_snd_device[i] < SND_DEVICE_OUT_END) {
diff --git a/hal/msm8974/platform.h b/hal/msm8974/platform.h
old mode 100644
new mode 100755
index 97f112f..5f67510
--- a/hal/msm8974/platform.h
+++ b/hal/msm8974/platform.h
@@ -206,6 +206,7 @@
SND_DEVICE_OUT_CALL_PROXY,
SND_DEVICE_OUT_HAPTICS,
SND_DEVICE_OUT_ICC,
+ SND_DEVICE_OUT_SYNTH_SPKR,
SND_DEVICE_OUT_END,
/*
@@ -362,6 +363,7 @@
SND_DEVICE_IN_HANDSET_8MIC_AND_EC_REF_LOOPBACK,
SND_DEVICE_IN_CALL_PROXY,
SND_DEVICE_IN_ICC,
+ SND_DEVICE_IN_SYNTH_MIC,
SND_DEVICE_IN_END,
SND_DEVICE_MAX = SND_DEVICE_IN_END,