asoc: Add separate array for TDM BE dai links
Create a separate array for TDM BE dai links and add only when the interface support is required. Also, add sound controls of MI2S, TDM and AUXPCM interfaces only when supported. Change-Id: I0ff092426d4ff81df44a15ad8c5d6cc438cba2ae Signed-off-by: Aditya Bavanari <abavanar@codeaurora.org>
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

parent
d155d7f509
commit
6bfb912a75
387
asoc/kona.c
387
asoc/kona.c
@@ -3693,6 +3693,46 @@ static const struct snd_kcontrol_new msm_common_snd_controls[] = {
|
|||||||
SOC_ENUM_EXT("USB_AUDIO_TX SampleRate", usb_tx_sample_rate,
|
SOC_ENUM_EXT("USB_AUDIO_TX SampleRate", usb_tx_sample_rate,
|
||||||
usb_audio_tx_sample_rate_get,
|
usb_audio_tx_sample_rate_get,
|
||||||
usb_audio_tx_sample_rate_put),
|
usb_audio_tx_sample_rate_put),
|
||||||
|
SOC_ENUM_EXT("USB_AUDIO_RX Format", usb_rx_format,
|
||||||
|
usb_audio_rx_format_get, usb_audio_rx_format_put),
|
||||||
|
SOC_ENUM_EXT("USB_AUDIO_TX Format", usb_tx_format,
|
||||||
|
usb_audio_tx_format_get, usb_audio_tx_format_put),
|
||||||
|
SOC_ENUM_EXT("USB_AUDIO_RX Channels", usb_rx_chs,
|
||||||
|
usb_audio_rx_ch_get, usb_audio_rx_ch_put),
|
||||||
|
SOC_ENUM_EXT("USB_AUDIO_TX Channels", usb_tx_chs,
|
||||||
|
usb_audio_tx_ch_get, usb_audio_tx_ch_put),
|
||||||
|
SOC_ENUM_EXT("PROXY_RX Channels", proxy_rx_chs,
|
||||||
|
proxy_rx_ch_get, proxy_rx_ch_put),
|
||||||
|
SOC_ENUM_EXT("Display Port RX Channels", ext_disp_rx_chs,
|
||||||
|
ext_disp_rx_ch_get, ext_disp_rx_ch_put),
|
||||||
|
SOC_ENUM_EXT("Display Port RX Bit Format", ext_disp_rx_format,
|
||||||
|
ext_disp_rx_format_get, ext_disp_rx_format_put),
|
||||||
|
SOC_ENUM_EXT("Display Port RX SampleRate", ext_disp_rx_sample_rate,
|
||||||
|
ext_disp_rx_sample_rate_get,
|
||||||
|
ext_disp_rx_sample_rate_put),
|
||||||
|
SOC_ENUM_EXT("Display Port1 RX Channels", ext_disp_rx_chs,
|
||||||
|
ext_disp_rx_ch_get, ext_disp_rx_ch_put),
|
||||||
|
SOC_ENUM_EXT("Display Port1 RX Bit Format", ext_disp_rx_format,
|
||||||
|
ext_disp_rx_format_get, ext_disp_rx_format_put),
|
||||||
|
SOC_ENUM_EXT("Display Port1 RX SampleRate", ext_disp_rx_sample_rate,
|
||||||
|
ext_disp_rx_sample_rate_get,
|
||||||
|
ext_disp_rx_sample_rate_put),
|
||||||
|
SOC_ENUM_EXT("BT SampleRate", bt_sample_rate,
|
||||||
|
msm_bt_sample_rate_get,
|
||||||
|
msm_bt_sample_rate_put),
|
||||||
|
SOC_ENUM_EXT("BT SampleRate RX", bt_sample_rate_rx,
|
||||||
|
msm_bt_sample_rate_rx_get,
|
||||||
|
msm_bt_sample_rate_rx_put),
|
||||||
|
SOC_ENUM_EXT("BT SampleRate TX", bt_sample_rate_tx,
|
||||||
|
msm_bt_sample_rate_tx_get,
|
||||||
|
msm_bt_sample_rate_tx_put),
|
||||||
|
SOC_ENUM_EXT("AFE_LOOPBACK_TX Channels", afe_loopback_tx_chs,
|
||||||
|
afe_loopback_tx_ch_get, afe_loopback_tx_ch_put),
|
||||||
|
SOC_ENUM_EXT("VI_FEED_TX Channels", vi_feed_tx_chs,
|
||||||
|
msm_vi_feed_tx_ch_get, msm_vi_feed_tx_ch_put),
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct snd_kcontrol_new msm_tdm_snd_controls[] = {
|
||||||
SOC_ENUM_EXT("PRI_TDM_RX_0 SampleRate", tdm_rx_sample_rate,
|
SOC_ENUM_EXT("PRI_TDM_RX_0 SampleRate", tdm_rx_sample_rate,
|
||||||
tdm_rx_sample_rate_get,
|
tdm_rx_sample_rate_get,
|
||||||
tdm_rx_sample_rate_put),
|
tdm_rx_sample_rate_put),
|
||||||
@@ -3729,82 +3769,6 @@ static const struct snd_kcontrol_new msm_common_snd_controls[] = {
|
|||||||
SOC_ENUM_EXT("SEN_TDM_TX_0 SampleRate", tdm_tx_sample_rate,
|
SOC_ENUM_EXT("SEN_TDM_TX_0 SampleRate", tdm_tx_sample_rate,
|
||||||
tdm_tx_sample_rate_get,
|
tdm_tx_sample_rate_get,
|
||||||
tdm_tx_sample_rate_put),
|
tdm_tx_sample_rate_put),
|
||||||
SOC_ENUM_EXT("PRIM_AUX_PCM_RX SampleRate", prim_aux_pcm_rx_sample_rate,
|
|
||||||
aux_pcm_rx_sample_rate_get,
|
|
||||||
aux_pcm_rx_sample_rate_put),
|
|
||||||
SOC_ENUM_EXT("SEC_AUX_PCM_RX SampleRate", sec_aux_pcm_rx_sample_rate,
|
|
||||||
aux_pcm_rx_sample_rate_get,
|
|
||||||
aux_pcm_rx_sample_rate_put),
|
|
||||||
SOC_ENUM_EXT("TERT_AUX_PCM_RX SampleRate", tert_aux_pcm_rx_sample_rate,
|
|
||||||
aux_pcm_rx_sample_rate_get,
|
|
||||||
aux_pcm_rx_sample_rate_put),
|
|
||||||
SOC_ENUM_EXT("QUAT_AUX_PCM_RX SampleRate", quat_aux_pcm_rx_sample_rate,
|
|
||||||
aux_pcm_rx_sample_rate_get,
|
|
||||||
aux_pcm_rx_sample_rate_put),
|
|
||||||
SOC_ENUM_EXT("QUIN_AUX_PCM_RX SampleRate", quin_aux_pcm_rx_sample_rate,
|
|
||||||
aux_pcm_rx_sample_rate_get,
|
|
||||||
aux_pcm_rx_sample_rate_put),
|
|
||||||
SOC_ENUM_EXT("SEN_AUX_PCM_RX SampleRate", sen_aux_pcm_rx_sample_rate,
|
|
||||||
aux_pcm_rx_sample_rate_get,
|
|
||||||
aux_pcm_rx_sample_rate_put),
|
|
||||||
SOC_ENUM_EXT("PRIM_AUX_PCM_TX SampleRate", prim_aux_pcm_tx_sample_rate,
|
|
||||||
aux_pcm_tx_sample_rate_get,
|
|
||||||
aux_pcm_tx_sample_rate_put),
|
|
||||||
SOC_ENUM_EXT("SEC_AUX_PCM_TX SampleRate", sec_aux_pcm_tx_sample_rate,
|
|
||||||
aux_pcm_tx_sample_rate_get,
|
|
||||||
aux_pcm_tx_sample_rate_put),
|
|
||||||
SOC_ENUM_EXT("TERT_AUX_PCM_TX SampleRate", tert_aux_pcm_tx_sample_rate,
|
|
||||||
aux_pcm_tx_sample_rate_get,
|
|
||||||
aux_pcm_tx_sample_rate_put),
|
|
||||||
SOC_ENUM_EXT("QUAT_AUX_PCM_TX SampleRate", quat_aux_pcm_tx_sample_rate,
|
|
||||||
aux_pcm_tx_sample_rate_get,
|
|
||||||
aux_pcm_tx_sample_rate_put),
|
|
||||||
SOC_ENUM_EXT("QUIN_AUX_PCM_TX SampleRate", quin_aux_pcm_tx_sample_rate,
|
|
||||||
aux_pcm_tx_sample_rate_get,
|
|
||||||
aux_pcm_tx_sample_rate_put),
|
|
||||||
SOC_ENUM_EXT("SEN_AUX_PCM_TX SampleRate", sen_aux_pcm_tx_sample_rate,
|
|
||||||
aux_pcm_tx_sample_rate_get,
|
|
||||||
aux_pcm_tx_sample_rate_put),
|
|
||||||
SOC_ENUM_EXT("PRIM_MI2S_RX SampleRate", prim_mi2s_rx_sample_rate,
|
|
||||||
mi2s_rx_sample_rate_get,
|
|
||||||
mi2s_rx_sample_rate_put),
|
|
||||||
SOC_ENUM_EXT("SEC_MI2S_RX SampleRate", sec_mi2s_rx_sample_rate,
|
|
||||||
mi2s_rx_sample_rate_get,
|
|
||||||
mi2s_rx_sample_rate_put),
|
|
||||||
SOC_ENUM_EXT("TERT_MI2S_RX SampleRate", tert_mi2s_rx_sample_rate,
|
|
||||||
mi2s_rx_sample_rate_get,
|
|
||||||
mi2s_rx_sample_rate_put),
|
|
||||||
SOC_ENUM_EXT("QUAT_MI2S_RX SampleRate", quat_mi2s_rx_sample_rate,
|
|
||||||
mi2s_rx_sample_rate_get,
|
|
||||||
mi2s_rx_sample_rate_put),
|
|
||||||
SOC_ENUM_EXT("QUIN_MI2S_RX SampleRate", quin_mi2s_rx_sample_rate,
|
|
||||||
mi2s_rx_sample_rate_get,
|
|
||||||
mi2s_rx_sample_rate_put),
|
|
||||||
SOC_ENUM_EXT("SEN_MI2S_RX SampleRate", sen_mi2s_rx_sample_rate,
|
|
||||||
mi2s_rx_sample_rate_get,
|
|
||||||
mi2s_rx_sample_rate_put),
|
|
||||||
SOC_ENUM_EXT("PRIM_MI2S_TX SampleRate", prim_mi2s_tx_sample_rate,
|
|
||||||
mi2s_tx_sample_rate_get,
|
|
||||||
mi2s_tx_sample_rate_put),
|
|
||||||
SOC_ENUM_EXT("SEC_MI2S_TX SampleRate", sec_mi2s_tx_sample_rate,
|
|
||||||
mi2s_tx_sample_rate_get,
|
|
||||||
mi2s_tx_sample_rate_put),
|
|
||||||
SOC_ENUM_EXT("TERT_MI2S_TX SampleRate", tert_mi2s_tx_sample_rate,
|
|
||||||
mi2s_tx_sample_rate_get,
|
|
||||||
mi2s_tx_sample_rate_put),
|
|
||||||
SOC_ENUM_EXT("QUAT_MI2S_TX SampleRate", quat_mi2s_tx_sample_rate,
|
|
||||||
mi2s_tx_sample_rate_get,
|
|
||||||
mi2s_tx_sample_rate_put),
|
|
||||||
SOC_ENUM_EXT("QUIN_MI2S_TX SampleRate", quin_mi2s_tx_sample_rate,
|
|
||||||
mi2s_tx_sample_rate_get,
|
|
||||||
mi2s_tx_sample_rate_put),
|
|
||||||
SOC_ENUM_EXT("SEN_MI2S_TX SampleRate", sen_mi2s_tx_sample_rate,
|
|
||||||
mi2s_tx_sample_rate_get,
|
|
||||||
mi2s_tx_sample_rate_put),
|
|
||||||
SOC_ENUM_EXT("USB_AUDIO_RX Format", usb_rx_format,
|
|
||||||
usb_audio_rx_format_get, usb_audio_rx_format_put),
|
|
||||||
SOC_ENUM_EXT("USB_AUDIO_TX Format", usb_tx_format,
|
|
||||||
usb_audio_tx_format_get, usb_audio_tx_format_put),
|
|
||||||
SOC_ENUM_EXT("PRI_TDM_RX_0 Format", tdm_rx_format,
|
SOC_ENUM_EXT("PRI_TDM_RX_0 Format", tdm_rx_format,
|
||||||
tdm_rx_format_get,
|
tdm_rx_format_get,
|
||||||
tdm_rx_format_put),
|
tdm_rx_format_put),
|
||||||
@@ -3841,60 +3805,6 @@ static const struct snd_kcontrol_new msm_common_snd_controls[] = {
|
|||||||
SOC_ENUM_EXT("SEN_TDM_TX_0 Format", tdm_tx_format,
|
SOC_ENUM_EXT("SEN_TDM_TX_0 Format", tdm_tx_format,
|
||||||
tdm_tx_format_get,
|
tdm_tx_format_get,
|
||||||
tdm_tx_format_put),
|
tdm_tx_format_put),
|
||||||
SOC_ENUM_EXT("PRIM_AUX_PCM_RX Format", aux_pcm_rx_format,
|
|
||||||
msm_aux_pcm_rx_format_get, msm_aux_pcm_rx_format_put),
|
|
||||||
SOC_ENUM_EXT("SEC_AUX_PCM_RX Format", aux_pcm_rx_format,
|
|
||||||
msm_aux_pcm_rx_format_get, msm_aux_pcm_rx_format_put),
|
|
||||||
SOC_ENUM_EXT("TERT_AUX_PCM_RX Format", aux_pcm_rx_format,
|
|
||||||
msm_aux_pcm_rx_format_get, msm_aux_pcm_rx_format_put),
|
|
||||||
SOC_ENUM_EXT("QUAT_AUX_PCM_RX Format", aux_pcm_rx_format,
|
|
||||||
msm_aux_pcm_rx_format_get, msm_aux_pcm_rx_format_put),
|
|
||||||
SOC_ENUM_EXT("QUIN_AUX_PCM_RX Format", aux_pcm_rx_format,
|
|
||||||
msm_aux_pcm_rx_format_get, msm_aux_pcm_rx_format_put),
|
|
||||||
SOC_ENUM_EXT("SEN_AUX_PCM_RX Format", aux_pcm_rx_format,
|
|
||||||
msm_aux_pcm_rx_format_get, msm_aux_pcm_rx_format_put),
|
|
||||||
SOC_ENUM_EXT("PRIM_AUX_PCM_TX Format", aux_pcm_tx_format,
|
|
||||||
msm_aux_pcm_tx_format_get, msm_aux_pcm_tx_format_put),
|
|
||||||
SOC_ENUM_EXT("SEC_AUX_PCM_TX Format", aux_pcm_tx_format,
|
|
||||||
msm_aux_pcm_tx_format_get, msm_aux_pcm_tx_format_put),
|
|
||||||
SOC_ENUM_EXT("TERT_AUX_PCM_TX Format", aux_pcm_tx_format,
|
|
||||||
msm_aux_pcm_tx_format_get, msm_aux_pcm_tx_format_put),
|
|
||||||
SOC_ENUM_EXT("QUAT_AUX_PCM_TX Format", aux_pcm_tx_format,
|
|
||||||
msm_aux_pcm_tx_format_get, msm_aux_pcm_tx_format_put),
|
|
||||||
SOC_ENUM_EXT("QUIN_AUX_PCM_TX Format", aux_pcm_tx_format,
|
|
||||||
msm_aux_pcm_tx_format_get, msm_aux_pcm_tx_format_put),
|
|
||||||
SOC_ENUM_EXT("SEN_AUX_PCM_TX Format", aux_pcm_tx_format,
|
|
||||||
msm_aux_pcm_tx_format_get, msm_aux_pcm_tx_format_put),
|
|
||||||
SOC_ENUM_EXT("PRIM_MI2S_RX Format", mi2s_rx_format,
|
|
||||||
msm_mi2s_rx_format_get, msm_mi2s_rx_format_put),
|
|
||||||
SOC_ENUM_EXT("SEC_MI2S_RX Format", mi2s_rx_format,
|
|
||||||
msm_mi2s_rx_format_get, msm_mi2s_rx_format_put),
|
|
||||||
SOC_ENUM_EXT("TERT_MI2S_RX Format", mi2s_rx_format,
|
|
||||||
msm_mi2s_rx_format_get, msm_mi2s_rx_format_put),
|
|
||||||
SOC_ENUM_EXT("QUAT_MI2S_RX Format", mi2s_rx_format,
|
|
||||||
msm_mi2s_rx_format_get, msm_mi2s_rx_format_put),
|
|
||||||
SOC_ENUM_EXT("QUIN_MI2S_RX Format", mi2s_rx_format,
|
|
||||||
msm_mi2s_rx_format_get, msm_mi2s_rx_format_put),
|
|
||||||
SOC_ENUM_EXT("SEN_MI2S_RX Format", mi2s_rx_format,
|
|
||||||
msm_mi2s_rx_format_get, msm_mi2s_rx_format_put),
|
|
||||||
SOC_ENUM_EXT("PRIM_MI2S_TX Format", mi2s_tx_format,
|
|
||||||
msm_mi2s_tx_format_get, msm_mi2s_tx_format_put),
|
|
||||||
SOC_ENUM_EXT("SEC_MI2S_TX Format", mi2s_tx_format,
|
|
||||||
msm_mi2s_tx_format_get, msm_mi2s_tx_format_put),
|
|
||||||
SOC_ENUM_EXT("TERT_MI2S_TX Format", mi2s_tx_format,
|
|
||||||
msm_mi2s_tx_format_get, msm_mi2s_tx_format_put),
|
|
||||||
SOC_ENUM_EXT("QUAT_MI2S_TX Format", mi2s_tx_format,
|
|
||||||
msm_mi2s_tx_format_get, msm_mi2s_tx_format_put),
|
|
||||||
SOC_ENUM_EXT("QUIN_MI2S_TX Format", mi2s_tx_format,
|
|
||||||
msm_mi2s_tx_format_get, msm_mi2s_tx_format_put),
|
|
||||||
SOC_ENUM_EXT("SEN_MI2S_TX Format", mi2s_tx_format,
|
|
||||||
msm_mi2s_tx_format_get, msm_mi2s_tx_format_put),
|
|
||||||
SOC_ENUM_EXT("USB_AUDIO_RX Channels", usb_rx_chs,
|
|
||||||
usb_audio_rx_ch_get, usb_audio_rx_ch_put),
|
|
||||||
SOC_ENUM_EXT("USB_AUDIO_TX Channels", usb_tx_chs,
|
|
||||||
usb_audio_tx_ch_get, usb_audio_tx_ch_put),
|
|
||||||
SOC_ENUM_EXT("PROXY_RX Channels", proxy_rx_chs,
|
|
||||||
proxy_rx_ch_get, proxy_rx_ch_put),
|
|
||||||
SOC_ENUM_EXT("PRI_TDM_RX_0 Channels", tdm_rx_chs,
|
SOC_ENUM_EXT("PRI_TDM_RX_0 Channels", tdm_rx_chs,
|
||||||
tdm_rx_ch_get,
|
tdm_rx_ch_get,
|
||||||
tdm_rx_ch_put),
|
tdm_rx_ch_put),
|
||||||
@@ -3931,6 +3841,134 @@ static const struct snd_kcontrol_new msm_common_snd_controls[] = {
|
|||||||
SOC_ENUM_EXT("SEN_TDM_TX_0 Channels", tdm_tx_chs,
|
SOC_ENUM_EXT("SEN_TDM_TX_0 Channels", tdm_tx_chs,
|
||||||
tdm_tx_ch_get,
|
tdm_tx_ch_get,
|
||||||
tdm_tx_ch_put),
|
tdm_tx_ch_put),
|
||||||
|
SOC_SINGLE_MULTI_EXT("TDM Slot Map", SND_SOC_NOPM, 0, 255, 0,
|
||||||
|
TDM_MAX_SLOTS + MAX_PATH, NULL, tdm_slot_map_put),
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct snd_kcontrol_new msm_auxpcm_snd_controls[] = {
|
||||||
|
SOC_ENUM_EXT("PRIM_AUX_PCM_RX SampleRate", prim_aux_pcm_rx_sample_rate,
|
||||||
|
aux_pcm_rx_sample_rate_get,
|
||||||
|
aux_pcm_rx_sample_rate_put),
|
||||||
|
SOC_ENUM_EXT("SEC_AUX_PCM_RX SampleRate", sec_aux_pcm_rx_sample_rate,
|
||||||
|
aux_pcm_rx_sample_rate_get,
|
||||||
|
aux_pcm_rx_sample_rate_put),
|
||||||
|
SOC_ENUM_EXT("TERT_AUX_PCM_RX SampleRate", tert_aux_pcm_rx_sample_rate,
|
||||||
|
aux_pcm_rx_sample_rate_get,
|
||||||
|
aux_pcm_rx_sample_rate_put),
|
||||||
|
SOC_ENUM_EXT("QUAT_AUX_PCM_RX SampleRate", quat_aux_pcm_rx_sample_rate,
|
||||||
|
aux_pcm_rx_sample_rate_get,
|
||||||
|
aux_pcm_rx_sample_rate_put),
|
||||||
|
SOC_ENUM_EXT("QUIN_AUX_PCM_RX SampleRate", quin_aux_pcm_rx_sample_rate,
|
||||||
|
aux_pcm_rx_sample_rate_get,
|
||||||
|
aux_pcm_rx_sample_rate_put),
|
||||||
|
SOC_ENUM_EXT("SEN_AUX_PCM_RX SampleRate", sen_aux_pcm_rx_sample_rate,
|
||||||
|
aux_pcm_rx_sample_rate_get,
|
||||||
|
aux_pcm_rx_sample_rate_put),
|
||||||
|
SOC_ENUM_EXT("PRIM_AUX_PCM_TX SampleRate", prim_aux_pcm_tx_sample_rate,
|
||||||
|
aux_pcm_tx_sample_rate_get,
|
||||||
|
aux_pcm_tx_sample_rate_put),
|
||||||
|
SOC_ENUM_EXT("SEC_AUX_PCM_TX SampleRate", sec_aux_pcm_tx_sample_rate,
|
||||||
|
aux_pcm_tx_sample_rate_get,
|
||||||
|
aux_pcm_tx_sample_rate_put),
|
||||||
|
SOC_ENUM_EXT("TERT_AUX_PCM_TX SampleRate", tert_aux_pcm_tx_sample_rate,
|
||||||
|
aux_pcm_tx_sample_rate_get,
|
||||||
|
aux_pcm_tx_sample_rate_put),
|
||||||
|
SOC_ENUM_EXT("QUAT_AUX_PCM_TX SampleRate", quat_aux_pcm_tx_sample_rate,
|
||||||
|
aux_pcm_tx_sample_rate_get,
|
||||||
|
aux_pcm_tx_sample_rate_put),
|
||||||
|
SOC_ENUM_EXT("QUIN_AUX_PCM_TX SampleRate", quin_aux_pcm_tx_sample_rate,
|
||||||
|
aux_pcm_tx_sample_rate_get,
|
||||||
|
aux_pcm_tx_sample_rate_put),
|
||||||
|
SOC_ENUM_EXT("SEN_AUX_PCM_TX SampleRate", sen_aux_pcm_tx_sample_rate,
|
||||||
|
aux_pcm_tx_sample_rate_get,
|
||||||
|
aux_pcm_tx_sample_rate_put),
|
||||||
|
SOC_ENUM_EXT("PRIM_AUX_PCM_RX Format", aux_pcm_rx_format,
|
||||||
|
msm_aux_pcm_rx_format_get, msm_aux_pcm_rx_format_put),
|
||||||
|
SOC_ENUM_EXT("SEC_AUX_PCM_RX Format", aux_pcm_rx_format,
|
||||||
|
msm_aux_pcm_rx_format_get, msm_aux_pcm_rx_format_put),
|
||||||
|
SOC_ENUM_EXT("TERT_AUX_PCM_RX Format", aux_pcm_rx_format,
|
||||||
|
msm_aux_pcm_rx_format_get, msm_aux_pcm_rx_format_put),
|
||||||
|
SOC_ENUM_EXT("QUAT_AUX_PCM_RX Format", aux_pcm_rx_format,
|
||||||
|
msm_aux_pcm_rx_format_get, msm_aux_pcm_rx_format_put),
|
||||||
|
SOC_ENUM_EXT("QUIN_AUX_PCM_RX Format", aux_pcm_rx_format,
|
||||||
|
msm_aux_pcm_rx_format_get, msm_aux_pcm_rx_format_put),
|
||||||
|
SOC_ENUM_EXT("SEN_AUX_PCM_RX Format", aux_pcm_rx_format,
|
||||||
|
msm_aux_pcm_rx_format_get, msm_aux_pcm_rx_format_put),
|
||||||
|
SOC_ENUM_EXT("PRIM_AUX_PCM_TX Format", aux_pcm_tx_format,
|
||||||
|
msm_aux_pcm_tx_format_get, msm_aux_pcm_tx_format_put),
|
||||||
|
SOC_ENUM_EXT("SEC_AUX_PCM_TX Format", aux_pcm_tx_format,
|
||||||
|
msm_aux_pcm_tx_format_get, msm_aux_pcm_tx_format_put),
|
||||||
|
SOC_ENUM_EXT("TERT_AUX_PCM_TX Format", aux_pcm_tx_format,
|
||||||
|
msm_aux_pcm_tx_format_get, msm_aux_pcm_tx_format_put),
|
||||||
|
SOC_ENUM_EXT("QUAT_AUX_PCM_TX Format", aux_pcm_tx_format,
|
||||||
|
msm_aux_pcm_tx_format_get, msm_aux_pcm_tx_format_put),
|
||||||
|
SOC_ENUM_EXT("QUIN_AUX_PCM_TX Format", aux_pcm_tx_format,
|
||||||
|
msm_aux_pcm_tx_format_get, msm_aux_pcm_tx_format_put),
|
||||||
|
SOC_ENUM_EXT("SEN_AUX_PCM_TX Format", aux_pcm_tx_format,
|
||||||
|
msm_aux_pcm_tx_format_get, msm_aux_pcm_tx_format_put),
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct snd_kcontrol_new msm_mi2s_snd_controls[] = {
|
||||||
|
SOC_ENUM_EXT("PRIM_MI2S_RX SampleRate", prim_mi2s_rx_sample_rate,
|
||||||
|
mi2s_rx_sample_rate_get,
|
||||||
|
mi2s_rx_sample_rate_put),
|
||||||
|
SOC_ENUM_EXT("SEC_MI2S_RX SampleRate", sec_mi2s_rx_sample_rate,
|
||||||
|
mi2s_rx_sample_rate_get,
|
||||||
|
mi2s_rx_sample_rate_put),
|
||||||
|
SOC_ENUM_EXT("TERT_MI2S_RX SampleRate", tert_mi2s_rx_sample_rate,
|
||||||
|
mi2s_rx_sample_rate_get,
|
||||||
|
mi2s_rx_sample_rate_put),
|
||||||
|
SOC_ENUM_EXT("QUAT_MI2S_RX SampleRate", quat_mi2s_rx_sample_rate,
|
||||||
|
mi2s_rx_sample_rate_get,
|
||||||
|
mi2s_rx_sample_rate_put),
|
||||||
|
SOC_ENUM_EXT("QUIN_MI2S_RX SampleRate", quin_mi2s_rx_sample_rate,
|
||||||
|
mi2s_rx_sample_rate_get,
|
||||||
|
mi2s_rx_sample_rate_put),
|
||||||
|
SOC_ENUM_EXT("SEN_MI2S_RX SampleRate", sen_mi2s_rx_sample_rate,
|
||||||
|
mi2s_rx_sample_rate_get,
|
||||||
|
mi2s_rx_sample_rate_put),
|
||||||
|
SOC_ENUM_EXT("PRIM_MI2S_TX SampleRate", prim_mi2s_tx_sample_rate,
|
||||||
|
mi2s_tx_sample_rate_get,
|
||||||
|
mi2s_tx_sample_rate_put),
|
||||||
|
SOC_ENUM_EXT("SEC_MI2S_TX SampleRate", sec_mi2s_tx_sample_rate,
|
||||||
|
mi2s_tx_sample_rate_get,
|
||||||
|
mi2s_tx_sample_rate_put),
|
||||||
|
SOC_ENUM_EXT("TERT_MI2S_TX SampleRate", tert_mi2s_tx_sample_rate,
|
||||||
|
mi2s_tx_sample_rate_get,
|
||||||
|
mi2s_tx_sample_rate_put),
|
||||||
|
SOC_ENUM_EXT("QUAT_MI2S_TX SampleRate", quat_mi2s_tx_sample_rate,
|
||||||
|
mi2s_tx_sample_rate_get,
|
||||||
|
mi2s_tx_sample_rate_put),
|
||||||
|
SOC_ENUM_EXT("QUIN_MI2S_TX SampleRate", quin_mi2s_tx_sample_rate,
|
||||||
|
mi2s_tx_sample_rate_get,
|
||||||
|
mi2s_tx_sample_rate_put),
|
||||||
|
SOC_ENUM_EXT("SEN_MI2S_TX SampleRate", sen_mi2s_tx_sample_rate,
|
||||||
|
mi2s_tx_sample_rate_get,
|
||||||
|
mi2s_tx_sample_rate_put),
|
||||||
|
SOC_ENUM_EXT("PRIM_MI2S_RX Format", mi2s_rx_format,
|
||||||
|
msm_mi2s_rx_format_get, msm_mi2s_rx_format_put),
|
||||||
|
SOC_ENUM_EXT("SEC_MI2S_RX Format", mi2s_rx_format,
|
||||||
|
msm_mi2s_rx_format_get, msm_mi2s_rx_format_put),
|
||||||
|
SOC_ENUM_EXT("TERT_MI2S_RX Format", mi2s_rx_format,
|
||||||
|
msm_mi2s_rx_format_get, msm_mi2s_rx_format_put),
|
||||||
|
SOC_ENUM_EXT("QUAT_MI2S_RX Format", mi2s_rx_format,
|
||||||
|
msm_mi2s_rx_format_get, msm_mi2s_rx_format_put),
|
||||||
|
SOC_ENUM_EXT("QUIN_MI2S_RX Format", mi2s_rx_format,
|
||||||
|
msm_mi2s_rx_format_get, msm_mi2s_rx_format_put),
|
||||||
|
SOC_ENUM_EXT("SEN_MI2S_RX Format", mi2s_rx_format,
|
||||||
|
msm_mi2s_rx_format_get, msm_mi2s_rx_format_put),
|
||||||
|
SOC_ENUM_EXT("PRIM_MI2S_TX Format", mi2s_tx_format,
|
||||||
|
msm_mi2s_tx_format_get, msm_mi2s_tx_format_put),
|
||||||
|
SOC_ENUM_EXT("SEC_MI2S_TX Format", mi2s_tx_format,
|
||||||
|
msm_mi2s_tx_format_get, msm_mi2s_tx_format_put),
|
||||||
|
SOC_ENUM_EXT("TERT_MI2S_TX Format", mi2s_tx_format,
|
||||||
|
msm_mi2s_tx_format_get, msm_mi2s_tx_format_put),
|
||||||
|
SOC_ENUM_EXT("QUAT_MI2S_TX Format", mi2s_tx_format,
|
||||||
|
msm_mi2s_tx_format_get, msm_mi2s_tx_format_put),
|
||||||
|
SOC_ENUM_EXT("QUIN_MI2S_TX Format", mi2s_tx_format,
|
||||||
|
msm_mi2s_tx_format_get, msm_mi2s_tx_format_put),
|
||||||
|
SOC_ENUM_EXT("SEN_MI2S_TX Format", mi2s_tx_format,
|
||||||
|
msm_mi2s_tx_format_get, msm_mi2s_tx_format_put),
|
||||||
SOC_ENUM_EXT("PRIM_MI2S_RX Channels", prim_mi2s_rx_chs,
|
SOC_ENUM_EXT("PRIM_MI2S_RX Channels", prim_mi2s_rx_chs,
|
||||||
msm_mi2s_rx_ch_get, msm_mi2s_rx_ch_put),
|
msm_mi2s_rx_ch_get, msm_mi2s_rx_ch_put),
|
||||||
SOC_ENUM_EXT("SEC_MI2S_RX Channels", sec_mi2s_rx_chs,
|
SOC_ENUM_EXT("SEC_MI2S_RX Channels", sec_mi2s_rx_chs,
|
||||||
@@ -3955,35 +3993,6 @@ static const struct snd_kcontrol_new msm_common_snd_controls[] = {
|
|||||||
msm_mi2s_tx_ch_get, msm_mi2s_tx_ch_put),
|
msm_mi2s_tx_ch_get, msm_mi2s_tx_ch_put),
|
||||||
SOC_ENUM_EXT("SEN_MI2S_TX Channels", sen_mi2s_tx_chs,
|
SOC_ENUM_EXT("SEN_MI2S_TX Channels", sen_mi2s_tx_chs,
|
||||||
msm_mi2s_tx_ch_get, msm_mi2s_tx_ch_put),
|
msm_mi2s_tx_ch_get, msm_mi2s_tx_ch_put),
|
||||||
SOC_ENUM_EXT("Display Port RX Channels", ext_disp_rx_chs,
|
|
||||||
ext_disp_rx_ch_get, ext_disp_rx_ch_put),
|
|
||||||
SOC_ENUM_EXT("Display Port RX Bit Format", ext_disp_rx_format,
|
|
||||||
ext_disp_rx_format_get, ext_disp_rx_format_put),
|
|
||||||
SOC_ENUM_EXT("Display Port RX SampleRate", ext_disp_rx_sample_rate,
|
|
||||||
ext_disp_rx_sample_rate_get,
|
|
||||||
ext_disp_rx_sample_rate_put),
|
|
||||||
SOC_ENUM_EXT("Display Port1 RX Channels", ext_disp_rx_chs,
|
|
||||||
ext_disp_rx_ch_get, ext_disp_rx_ch_put),
|
|
||||||
SOC_ENUM_EXT("Display Port1 RX Bit Format", ext_disp_rx_format,
|
|
||||||
ext_disp_rx_format_get, ext_disp_rx_format_put),
|
|
||||||
SOC_ENUM_EXT("Display Port1 RX SampleRate", ext_disp_rx_sample_rate,
|
|
||||||
ext_disp_rx_sample_rate_get,
|
|
||||||
ext_disp_rx_sample_rate_put),
|
|
||||||
SOC_ENUM_EXT("BT SampleRate", bt_sample_rate,
|
|
||||||
msm_bt_sample_rate_get,
|
|
||||||
msm_bt_sample_rate_put),
|
|
||||||
SOC_ENUM_EXT("BT SampleRate RX", bt_sample_rate_rx,
|
|
||||||
msm_bt_sample_rate_rx_get,
|
|
||||||
msm_bt_sample_rate_rx_put),
|
|
||||||
SOC_ENUM_EXT("BT SampleRate TX", bt_sample_rate_tx,
|
|
||||||
msm_bt_sample_rate_tx_get,
|
|
||||||
msm_bt_sample_rate_tx_put),
|
|
||||||
SOC_ENUM_EXT("AFE_LOOPBACK_TX Channels", afe_loopback_tx_chs,
|
|
||||||
afe_loopback_tx_ch_get, afe_loopback_tx_ch_put),
|
|
||||||
SOC_ENUM_EXT("VI_FEED_TX Channels", vi_feed_tx_chs,
|
|
||||||
msm_vi_feed_tx_ch_get, msm_vi_feed_tx_ch_put),
|
|
||||||
SOC_SINGLE_MULTI_EXT("TDM Slot Map", SND_SOC_NOPM, 0, 255, 0,
|
|
||||||
TDM_MAX_SLOTS + MAX_PATH, NULL, tdm_slot_map_put),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct snd_kcontrol_new msm_snd_controls[] = {
|
static const struct snd_kcontrol_new msm_snd_controls[] = {
|
||||||
@@ -5332,6 +5341,45 @@ static struct snd_info_entry *msm_snd_info_create_subdir(struct module *mod,
|
|||||||
return entry;
|
return entry;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef CONFIG_TDM_DISABLE
|
||||||
|
static void msm_add_tdm_snd_controls(struct snd_soc_component *component)
|
||||||
|
{
|
||||||
|
snd_soc_add_component_controls(component, msm_tdm_snd_controls,
|
||||||
|
ARRAY_SIZE(msm_tdm_snd_controls));
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static void msm_add_tdm_snd_controls(struct snd_soc_component *component)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CONFIG_MI2S_DISABLE
|
||||||
|
static void msm_add_mi2s_snd_controls(struct snd_soc_component *component)
|
||||||
|
{
|
||||||
|
snd_soc_add_component_controls(component, msm_mi2s_snd_controls,
|
||||||
|
ARRAY_SIZE(msm_mi2s_snd_controls));
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static void msm_add_mi2s_snd_controls(struct snd_soc_component *component)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CONFIG_AUXPCM_DISABLE
|
||||||
|
static void msm_add_auxpcm_snd_controls(struct snd_soc_component *component)
|
||||||
|
{
|
||||||
|
snd_soc_add_component_controls(component, msm_auxpcm_snd_controls,
|
||||||
|
ARRAY_SIZE(msm_auxpcm_snd_controls));
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static void msm_add_auxpcm_snd_controls(struct snd_soc_component *component)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static int msm_int_audrx_init(struct snd_soc_pcm_runtime *rtd)
|
static int msm_int_audrx_init(struct snd_soc_pcm_runtime *rtd)
|
||||||
{
|
{
|
||||||
int ret = -EINVAL;
|
int ret = -EINVAL;
|
||||||
@@ -5367,6 +5415,10 @@ static int msm_int_audrx_init(struct snd_soc_pcm_runtime *rtd)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
msm_add_tdm_snd_controls(component);
|
||||||
|
msm_add_mi2s_snd_controls(component);
|
||||||
|
msm_add_auxpcm_snd_controls(component);
|
||||||
|
|
||||||
snd_soc_dapm_new_controls(dapm, msm_int_dapm_widgets,
|
snd_soc_dapm_new_controls(dapm, msm_int_dapm_widgets,
|
||||||
ARRAY_SIZE(msm_int_dapm_widgets));
|
ARRAY_SIZE(msm_int_dapm_widgets));
|
||||||
|
|
||||||
@@ -6092,6 +6144,10 @@ static struct snd_soc_dai_link msm_common_be_dai_links[] = {
|
|||||||
.ignore_suspend = 1,
|
.ignore_suspend = 1,
|
||||||
SND_SOC_DAILINK_REG(usb_audio_tx),
|
SND_SOC_DAILINK_REG(usb_audio_tx),
|
||||||
},
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
static struct snd_soc_dai_link msm_tdm_be_dai_links[] = {
|
||||||
{
|
{
|
||||||
.name = LPASS_BE_PRI_TDM_RX_0,
|
.name = LPASS_BE_PRI_TDM_RX_0,
|
||||||
.stream_name = "Primary TDM0 Playback",
|
.stream_name = "Primary TDM0 Playback",
|
||||||
@@ -6792,7 +6848,8 @@ static struct snd_soc_dai_link msm_kona_dai_links[
|
|||||||
ARRAY_SIZE(ext_disp_be_dai_link) +
|
ARRAY_SIZE(ext_disp_be_dai_link) +
|
||||||
ARRAY_SIZE(msm_wcn_be_dai_links) +
|
ARRAY_SIZE(msm_wcn_be_dai_links) +
|
||||||
ARRAY_SIZE(msm_afe_rxtx_lb_be_dai_link) +
|
ARRAY_SIZE(msm_afe_rxtx_lb_be_dai_link) +
|
||||||
ARRAY_SIZE(msm_wcn_btfm_be_dai_links)];
|
ARRAY_SIZE(msm_wcn_btfm_be_dai_links) +
|
||||||
|
ARRAY_SIZE(msm_tdm_be_dai_links)];
|
||||||
|
|
||||||
static int msm_populate_dai_link_component_of_node(
|
static int msm_populate_dai_link_component_of_node(
|
||||||
struct snd_soc_card *card)
|
struct snd_soc_card *card)
|
||||||
@@ -7100,6 +7157,16 @@ static struct snd_soc_card *populate_snd_card_dailinks(struct device *dev)
|
|||||||
ARRAY_SIZE(msm_afe_rxtx_lb_be_dai_link);
|
ARRAY_SIZE(msm_afe_rxtx_lb_be_dai_link);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rc = of_property_read_u32(dev->of_node, "qcom,tdm-audio-intf",
|
||||||
|
&val);
|
||||||
|
if (!rc && val) {
|
||||||
|
memcpy(msm_kona_dai_links + total_links,
|
||||||
|
msm_tdm_be_dai_links,
|
||||||
|
sizeof(msm_tdm_be_dai_links));
|
||||||
|
total_links +=
|
||||||
|
ARRAY_SIZE(msm_tdm_be_dai_links);
|
||||||
|
}
|
||||||
|
|
||||||
rc = of_property_read_u32(dev->of_node, "qcom,wcn-btfm",
|
rc = of_property_read_u32(dev->of_node, "qcom,wcn-btfm",
|
||||||
&wcn_btfm_intf);
|
&wcn_btfm_intf);
|
||||||
if (rc) {
|
if (rc) {
|
||||||
|
Reference in New Issue
Block a user