diff --git a/asoc/lahaina-port-config.h b/asoc/lahaina-port-config.h index 9e9c2be047..10e69a907e 100644 --- a/asoc/lahaina-port-config.h +++ b/asoc/lahaina-port-config.h @@ -51,6 +51,13 @@ static struct port_params tx_frame_params_default[SWR_MSTR_PORT_LEN] = { {7, 1, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 0x00, 0x00}, /* TX3 */ }; +/* TX UC1: TX1: 1ch, TX2: 2chs, TX3: 1ch(MBHC) */ +static struct port_params tx_frame_params_shima[SWR_MSTR_PORT_LEN] = { + {3, 1, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 0x00, 0x00}, /* TX1 */ + {3, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 1, 0x00, 0x00}, /* TX2 */ + {7, 2, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 0x00, 0x00}, /* TX3 */ +}; + static struct swr_mstr_port_map sm_port_map[] = { {TX_MACRO, SWR_UC0, tx_frame_params_default}, {RX_MACRO, SWR_UC0, rx_frame_params_default}, @@ -58,4 +65,11 @@ static struct swr_mstr_port_map sm_port_map[] = { {WSA_MACRO, SWR_UC0, wsa_frame_params_default}, }; +static struct swr_mstr_port_map sm_port_map_shima[] = { + {TX_MACRO, SWR_UC0, tx_frame_params_shima}, + {RX_MACRO, SWR_UC0, rx_frame_params_default}, + {RX_MACRO, SWR_UC1, rx_frame_params_dsd}, + {WSA_MACRO, SWR_UC0, wsa_frame_params_default}, +}; + #endif /* _LAHAINA_PORT_CONFIG */ diff --git a/asoc/lahaina.c b/asoc/lahaina.c index 12292bbdea..7013f5839f 100644 --- a/asoc/lahaina.c +++ b/asoc/lahaina.c @@ -7594,9 +7594,15 @@ static int msm_int_audrx_init(struct snd_soc_pcm_runtime *rtd) snd_soc_dapm_sync(dapm); - bolero_set_port_map(component, ARRAY_SIZE(sm_port_map), sm_port_map); - card = rtd->card->snd_card; + + if (strnstr(rtd->card->name, "shima", 5) != NULL) + bolero_set_port_map(component, ARRAY_SIZE(sm_port_map_shima), + sm_port_map_shima); + else + bolero_set_port_map(component, ARRAY_SIZE(sm_port_map), + sm_port_map); + if (!pdata->codec_root) { entry = msm_snd_info_create_subdir(card->module, "codecs", card->proc_root); diff --git a/asoc/msm_dailink.h b/asoc/msm_dailink.h index e0ae2fe323..80fc16e84f 100644 --- a/asoc/msm_dailink.h +++ b/asoc/msm_dailink.h @@ -348,7 +348,7 @@ SND_SOC_DAILINK_DEFS(slimbus_7_tx, SND_SOC_DAILINK_DEFS(slimbus_8_tx, DAILINK_COMP_ARRAY(COMP_CPU("msm-dai-q6-dev.16401")), DAILINK_COMP_ARRAY(COMP_CODEC("btfmslim_slave", - "btfm_bt_sco_a2dp_slim_rx")), + "btfm_fm_slim_tx")), DAILINK_COMP_ARRAY(COMP_PLATFORM("msm-pcm-routing"))); SND_SOC_DAILINK_DEFS(display_port,