hal: Bringup for sm6150
- Add soundcard support for sm6150
Add CDC_DMA interface support for sm6150
Change-Id: I9eca205a73dea2733e0d55c1e3891ee2f80df4b9
diff --git a/hal/msm8974/hw_info.c b/hal/msm8974/hw_info.c
index b18c4f8..142cec5 100644
--- a/hal/msm8974/hw_info.c
+++ b/hal/msm8974/hw_info.c
@@ -615,6 +615,13 @@
hw_info->num_snd_devices = ARRAY_SIZE(tavil_qrd_variant_devices);
hw_info->is_stereo_spkr = false;
strlcpy(hw_info->dev_extn, "-hdk", sizeof(hw_info->dev_extn));
+ } else if (!strncmp(snd_card_name, "sm6150-idp-snd-card",
+ sizeof("sm6150-idp-snd-card"))) {
+ strlcpy(hw_info->name, "sm6150", sizeof(hw_info->name));
+ } else if (!strncmp(snd_card_name, "sm6150-tavil-snd-card",
+ sizeof("sm6150-tavil-snd-card"))) {
+ strlcpy(hw_info->name, "sm6150", sizeof(hw_info->name));
+
} else {
ALOGW("%s: Not an SDM device", __func__);
}
@@ -665,7 +672,8 @@
} else if(strstr(snd_card_name, "sdm845")) {
ALOGV("SDM845 - variant soundcard");
update_hardware_info_sdm845(hw_info, snd_card_name);
- } else if (strstr(snd_card_name, "sdm660") || strstr(snd_card_name, "sdm670")) {
+ } else if (strstr(snd_card_name, "sdm660") || strstr(snd_card_name, "sdm670")
+ || strstr(snd_card_name, "sm6150")) {
ALOGV("Bear - variant soundcard");
update_hardware_info_bear(hw_info, snd_card_name);
} else if (strstr(snd_card_name, "sdx")) {
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index 6f80d1c..a69e5bf 100755
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -1062,7 +1062,9 @@
!strncmp(snd_card_name, "sdm660-snd-card-mtp",
sizeof("sdm660-snd-card-mtp")) ||
!strncmp(snd_card_name, "sdm670-mtp-snd-card",
- sizeof("sdm670-mtp-snd-card"))) {
+ sizeof("sdm670-mtp-snd-card")) ||
+ !strncmp(snd_card_name, "sm6150-idp-snd-card",
+ sizeof("sm6150-idp-snd-card")) ) {
ALOGI("%s: snd_card_name: %s",__func__,snd_card_name);
my_data->is_internal_codec = true;
my_data->is_slimbus_interface = false;
@@ -2409,7 +2411,27 @@
strdup("SLIM_5_RX SampleRate");
if (!my_data->is_slimbus_interface) {
- if (!strncmp(snd_card_name, "sdm660", strlen("sdm660")) ||
+ //TODO:: make generic interfaceface to check Slimbus/I2S/CDC_DMA
+ if (!strncmp(snd_card_name, "sm6150", strlen("sm6150"))) {
+ my_data->current_backend_cfg[DEFAULT_CODEC_BACKEND].bitwidth_mixer_ctl =
+ strdup("WSA_CDC_DMA_RX_0 Format");
+ my_data->current_backend_cfg[DEFAULT_CODEC_BACKEND].samplerate_mixer_ctl =
+ strdup("WSA_CDC_DMA_RX_0 SampleRate");
+ my_data->current_backend_cfg[DEFAULT_CODEC_BACKEND].channels_mixer_ctl =
+ strdup("WSA_CDC_DMA_RX_0 Channels");
+ my_data->current_backend_cfg[DEFAULT_CODEC_TX_BACKEND].bitwidth_mixer_ctl =
+ strdup("TX_CDC_DMA_TX_3 Format");
+ my_data->current_backend_cfg[DEFAULT_CODEC_TX_BACKEND].samplerate_mixer_ctl =
+ strdup("TX_CDC_DMA_TX_3 SampleRate");
+ my_data->current_backend_cfg[HEADPHONE_BACKEND].bitwidth_mixer_ctl =
+ strdup("RX_CDC_DMA_RX_0 Format");
+ my_data->current_backend_cfg[HEADPHONE_BACKEND].samplerate_mixer_ctl =
+ strdup("RX_CDC_DMA_RX_0 SampleRate");
+
+ if (default_rx_backend)
+ free(default_rx_backend);
+ default_rx_backend = strdup("WSA_CDC_DMA_RX_0");
+ } else if (!strncmp(snd_card_name, "sdm660", strlen("sdm660")) ||
!strncmp(snd_card_name, "sdm670", strlen("sdm670"))) {
my_data->current_backend_cfg[DEFAULT_CODEC_BACKEND].bitwidth_mixer_ctl =
@@ -2421,11 +2443,14 @@
strdup("INT3_MI2S_TX Format");
my_data->current_backend_cfg[DEFAULT_CODEC_TX_BACKEND].samplerate_mixer_ctl =
strdup("INT3_MI2S_TX SampleRate");
+ my_data->current_backend_cfg[HEADPHONE_BACKEND].bitwidth_mixer_ctl =
+ strdup("INT0_MI2S_RX Format");
+ my_data->current_backend_cfg[HEADPHONE_BACKEND].samplerate_mixer_ctl =
+ strdup("INT0_MI2S_RX SampleRate");
if (default_rx_backend)
free(default_rx_backend);
default_rx_backend = strdup("INT4_MI2S_RX");
-
} else {
my_data->current_backend_cfg[DEFAULT_CODEC_BACKEND].bitwidth_mixer_ctl =
strdup("MI2S_RX Format");
@@ -2433,17 +2458,15 @@
strdup("MI2S_RX SampleRate");
my_data->current_backend_cfg[DEFAULT_CODEC_BACKEND].channels_mixer_ctl =
strdup("MI2S_RX Channels");
-
my_data->current_backend_cfg[DEFAULT_CODEC_TX_BACKEND].bitwidth_mixer_ctl =
strdup("MI2S_TX Format");
my_data->current_backend_cfg[DEFAULT_CODEC_TX_BACKEND].samplerate_mixer_ctl =
strdup("MI2S_TX SampleRate");
+ my_data->current_backend_cfg[HEADPHONE_BACKEND].bitwidth_mixer_ctl =
+ strdup("INT0_MI2S_RX Format");
+ my_data->current_backend_cfg[HEADPHONE_BACKEND].samplerate_mixer_ctl =
+ strdup("INT0_MI2S_RX SampleRate");
}
- my_data->current_backend_cfg[HEADPHONE_BACKEND].bitwidth_mixer_ctl =
- strdup("INT0_MI2S_RX Format");
- my_data->current_backend_cfg[HEADPHONE_BACKEND].samplerate_mixer_ctl =
- strdup("INT0_MI2S_RX SampleRate");
-
} else {
my_data->current_backend_cfg[DEFAULT_CODEC_TX_BACKEND].bitwidth_mixer_ctl =