ASoC: Update wsa and rx_tx init functions
Update dai link init functions of wsa and rx_tx codecs. Update late probe function to use backend name to search for pcm runtime. Change-Id: Ia082ac233e61a28e76600977a024821689f8a218 Signed-off-by: Vignesh Kulothungan <vigneshk@codeaurora.org>
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

parent
1781f00ccc
commit
62e889a1ef
@@ -52,7 +52,7 @@ SND_SOC_DAILINK_DEFS(auxpcm_tx,
|
|||||||
SND_SOC_DAILINK_DEFS(wsa_dma_rx0,
|
SND_SOC_DAILINK_DEFS(wsa_dma_rx0,
|
||||||
DAILINK_COMP_ARRAY(COMP_CPU("snd-soc-dummy-dai")),
|
DAILINK_COMP_ARRAY(COMP_CPU("snd-soc-dummy-dai")),
|
||||||
DAILINK_COMP_ARRAY(COMP_CODEC("lpass-cdc", "wsa_macro_rx1"),
|
DAILINK_COMP_ARRAY(COMP_CODEC("lpass-cdc", "wsa_macro_rx1"),
|
||||||
COMP_CODEC("lpass-cdc", "wsa2_macro_rx1"),
|
// COMP_CODEC("lpass-cdc", "wsa2_macro_rx1"),
|
||||||
COMP_CODEC("wsa-codec1", "wsa_rx1"),
|
COMP_CODEC("wsa-codec1", "wsa_rx1"),
|
||||||
COMP_CODEC("wsa-codec2", "wsa_rx2"),
|
COMP_CODEC("wsa-codec2", "wsa_rx2"),
|
||||||
COMP_CODEC("wsa-codec3", "wsa_rx3"),
|
COMP_CODEC("wsa-codec3", "wsa_rx3"),
|
||||||
@@ -62,7 +62,7 @@ SND_SOC_DAILINK_DEFS(wsa_dma_rx0,
|
|||||||
SND_SOC_DAILINK_DEFS(wsa_dma_rx1,
|
SND_SOC_DAILINK_DEFS(wsa_dma_rx1,
|
||||||
DAILINK_COMP_ARRAY(COMP_CPU("snd-soc-dummy-dai")),
|
DAILINK_COMP_ARRAY(COMP_CPU("snd-soc-dummy-dai")),
|
||||||
DAILINK_COMP_ARRAY(COMP_CODEC("lpass-cdc", "wsa_macro_rx_mix"),
|
DAILINK_COMP_ARRAY(COMP_CODEC("lpass-cdc", "wsa_macro_rx_mix"),
|
||||||
COMP_CODEC("lpass-cdc", "wsa2_macro_rx_mix"),
|
// COMP_CODEC("lpass-cdc", "wsa2_macro_rx_mix"),
|
||||||
COMP_CODEC("wsa-codec1", "wsa_rx1"),
|
COMP_CODEC("wsa-codec1", "wsa_rx1"),
|
||||||
COMP_CODEC("wsa-codec2", "wsa_rx2"),
|
COMP_CODEC("wsa-codec2", "wsa_rx2"),
|
||||||
COMP_CODEC("wsa-codec3", "wsa_rx3"),
|
COMP_CODEC("wsa-codec3", "wsa_rx3"),
|
||||||
@@ -72,7 +72,7 @@ SND_SOC_DAILINK_DEFS(wsa_dma_rx1,
|
|||||||
SND_SOC_DAILINK_DEFS(wsa_dma_tx1,
|
SND_SOC_DAILINK_DEFS(wsa_dma_tx1,
|
||||||
DAILINK_COMP_ARRAY(COMP_CPU("snd-soc-dummy-dai")),
|
DAILINK_COMP_ARRAY(COMP_CPU("snd-soc-dummy-dai")),
|
||||||
DAILINK_COMP_ARRAY(COMP_CODEC("lpass-cdc", "wsa_macro_echo"),
|
DAILINK_COMP_ARRAY(COMP_CODEC("lpass-cdc", "wsa_macro_echo"),
|
||||||
COMP_CODEC("lpass-cdc", "wsa2_macro_echo"),
|
// COMP_CODEC("lpass-cdc", "wsa2_macro_echo"),
|
||||||
COMP_CODEC("wsa-codec1", "wsa_rx1"),
|
COMP_CODEC("wsa-codec1", "wsa_rx1"),
|
||||||
COMP_CODEC("wsa-codec2", "wsa_rx2"),
|
COMP_CODEC("wsa-codec2", "wsa_rx2"),
|
||||||
COMP_CODEC("wsa-codec3", "wsa_rx3"),
|
COMP_CODEC("wsa-codec3", "wsa_rx3"),
|
||||||
|
125
asoc/waipio.c
125
asoc/waipio.c
@@ -70,6 +70,7 @@ struct msm_asoc_mach_data {
|
|||||||
struct clk *lpass_audio_hw_vote;
|
struct clk *lpass_audio_hw_vote;
|
||||||
int core_audio_vote_count;
|
int core_audio_vote_count;
|
||||||
u32 wsa_max_devs;
|
u32 wsa_max_devs;
|
||||||
|
int wcd_disabled;
|
||||||
};
|
};
|
||||||
|
|
||||||
static bool is_initial_boot;
|
static bool is_initial_boot;
|
||||||
@@ -81,8 +82,8 @@ static int dmic_4_5_gpio_cnt;
|
|||||||
|
|
||||||
static void *def_wcd_mbhc_cal(void);
|
static void *def_wcd_mbhc_cal(void);
|
||||||
|
|
||||||
static int msm_aux_codec_init(struct snd_soc_pcm_runtime*);
|
static int msm_rx_tx_codec_init(struct snd_soc_pcm_runtime*);
|
||||||
static int msm_int_audrx_init(struct snd_soc_pcm_runtime*);
|
static int msm_int_wsa_init(struct snd_soc_pcm_runtime*);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Need to report LINEIN
|
* Need to report LINEIN
|
||||||
@@ -392,6 +393,7 @@ static struct snd_soc_dai_link msm_common_be_dai_links[] = {
|
|||||||
/* .no_host_mode = SND_SOC_DAI_LINK_NO_HOST, */
|
/* .no_host_mode = SND_SOC_DAI_LINK_NO_HOST, */
|
||||||
SND_SOC_DAILINK_REG(vi_feedback),
|
SND_SOC_DAILINK_REG(vi_feedback),
|
||||||
},
|
},
|
||||||
|
#if 0
|
||||||
{
|
{
|
||||||
.name = LPASS_BE_WSA2_CDC_DMA_TX_0,
|
.name = LPASS_BE_WSA2_CDC_DMA_TX_0,
|
||||||
.stream_name = LPASS_BE_WSA2_CDC_DMA_TX_0,
|
.stream_name = LPASS_BE_WSA2_CDC_DMA_TX_0,
|
||||||
@@ -401,6 +403,7 @@ static struct snd_soc_dai_link msm_common_be_dai_links[] = {
|
|||||||
/* .no_host_mode = SND_SOC_DAI_LINK_NO_HOST, */
|
/* .no_host_mode = SND_SOC_DAI_LINK_NO_HOST, */
|
||||||
SND_SOC_DAILINK_REG(wsa2_vi_feedback),
|
SND_SOC_DAILINK_REG(wsa2_vi_feedback),
|
||||||
},
|
},
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct snd_soc_dai_link msm_wcn_be_dai_links[] = {
|
static struct snd_soc_dai_link msm_wcn_be_dai_links[] = {
|
||||||
@@ -457,7 +460,7 @@ static struct snd_soc_dai_link msm_wsa_cdc_dma_be_dai_links[] = {
|
|||||||
.ignore_suspend = 1,
|
.ignore_suspend = 1,
|
||||||
.ops = &msm_common_be_ops,
|
.ops = &msm_common_be_ops,
|
||||||
SND_SOC_DAILINK_REG(wsa_dma_rx0),
|
SND_SOC_DAILINK_REG(wsa_dma_rx0),
|
||||||
.init = &msm_int_audrx_init,
|
.init = &msm_int_wsa_init,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.name = LPASS_BE_WSA_CDC_DMA_RX_1,
|
.name = LPASS_BE_WSA_CDC_DMA_RX_1,
|
||||||
@@ -482,6 +485,7 @@ static struct snd_soc_dai_link msm_wsa_cdc_dma_be_dai_links[] = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if 0
|
||||||
static struct snd_soc_dai_link msm_wsa2_cdc_dma_be_dai_links[] = {
|
static struct snd_soc_dai_link msm_wsa2_cdc_dma_be_dai_links[] = {
|
||||||
/* WSA2 CDC DMA Backend DAI Links */
|
/* WSA2 CDC DMA Backend DAI Links */
|
||||||
{
|
{
|
||||||
@@ -494,7 +498,6 @@ static struct snd_soc_dai_link msm_wsa2_cdc_dma_be_dai_links[] = {
|
|||||||
.ignore_suspend = 1,
|
.ignore_suspend = 1,
|
||||||
.ops = &msm_common_be_ops,
|
.ops = &msm_common_be_ops,
|
||||||
SND_SOC_DAILINK_REG(wsa2_dma_rx0),
|
SND_SOC_DAILINK_REG(wsa2_dma_rx0),
|
||||||
.init = &msm_int_audrx_init,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.name = LPASS_BE_WSA2_CDC_DMA_RX_1,
|
.name = LPASS_BE_WSA2_CDC_DMA_RX_1,
|
||||||
@@ -518,6 +521,7 @@ static struct snd_soc_dai_link msm_wsa2_cdc_dma_be_dai_links[] = {
|
|||||||
SND_SOC_DAILINK_REG(wsa2_dma_tx1),
|
SND_SOC_DAILINK_REG(wsa2_dma_tx1),
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
static struct snd_soc_dai_link msm_rx_tx_cdc_dma_be_dai_links[] = {
|
static struct snd_soc_dai_link msm_rx_tx_cdc_dma_be_dai_links[] = {
|
||||||
/* RX CDC DMA Backend DAI Links */
|
/* RX CDC DMA Backend DAI Links */
|
||||||
@@ -531,7 +535,7 @@ static struct snd_soc_dai_link msm_rx_tx_cdc_dma_be_dai_links[] = {
|
|||||||
.ignore_suspend = 1,
|
.ignore_suspend = 1,
|
||||||
.ops = &msm_common_be_ops,
|
.ops = &msm_common_be_ops,
|
||||||
SND_SOC_DAILINK_REG(rx_dma_rx0),
|
SND_SOC_DAILINK_REG(rx_dma_rx0),
|
||||||
.init = &msm_aux_codec_init,
|
.init = &msm_rx_tx_codec_init,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.name = LPASS_BE_RX_CDC_DMA_RX_1,
|
.name = LPASS_BE_RX_CDC_DMA_RX_1,
|
||||||
@@ -543,7 +547,6 @@ static struct snd_soc_dai_link msm_rx_tx_cdc_dma_be_dai_links[] = {
|
|||||||
.ignore_suspend = 1,
|
.ignore_suspend = 1,
|
||||||
.ops = &msm_common_be_ops,
|
.ops = &msm_common_be_ops,
|
||||||
SND_SOC_DAILINK_REG(rx_dma_rx1),
|
SND_SOC_DAILINK_REG(rx_dma_rx1),
|
||||||
.init = &msm_int_audrx_init,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.name = LPASS_BE_RX_CDC_DMA_RX_2,
|
.name = LPASS_BE_RX_CDC_DMA_RX_2,
|
||||||
@@ -916,7 +919,9 @@ static struct snd_soc_dai_link msm_tdm_dai_links[] = {
|
|||||||
|
|
||||||
static struct snd_soc_dai_link msm_waipio_dai_links[
|
static struct snd_soc_dai_link msm_waipio_dai_links[
|
||||||
ARRAY_SIZE(msm_wsa_cdc_dma_be_dai_links) +
|
ARRAY_SIZE(msm_wsa_cdc_dma_be_dai_links) +
|
||||||
|
#if 0
|
||||||
ARRAY_SIZE(msm_wsa2_cdc_dma_be_dai_links) +
|
ARRAY_SIZE(msm_wsa2_cdc_dma_be_dai_links) +
|
||||||
|
#endif
|
||||||
ARRAY_SIZE(msm_rx_tx_cdc_dma_be_dai_links) +
|
ARRAY_SIZE(msm_rx_tx_cdc_dma_be_dai_links) +
|
||||||
ARRAY_SIZE(msm_va_cdc_dma_be_dai_links) +
|
ARRAY_SIZE(msm_va_cdc_dma_be_dai_links) +
|
||||||
#if IS_ENABLED(CONFIG_AUDIO_QGKI)
|
#if IS_ENABLED(CONFIG_AUDIO_QGKI)
|
||||||
@@ -984,13 +989,13 @@ static int msm_populate_dai_link_component_of_node(
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
np = dai_link[i].codecs[j].of_node;
|
np = dai_link[i].codecs[j].of_node;
|
||||||
if (!of_device_is_available(np)) {
|
if (!of_device_is_available(np)) {
|
||||||
dev_err(cdev, "%s: codec is disabled: %s\n",
|
dev_err(cdev, "%s: codec is disabled: %s\n",
|
||||||
__func__,
|
__func__,
|
||||||
np->full_name);
|
np->full_name);
|
||||||
dai_link[i].codecs[j].of_node = NULL;
|
dai_link[i].codecs[j].of_node = NULL;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
codecs_enabled++;
|
codecs_enabled++;
|
||||||
}
|
}
|
||||||
@@ -1135,22 +1140,25 @@ static struct snd_soc_card *populate_snd_card_dailinks(struct device *dev)
|
|||||||
if (!strcmp(match->data, "codec")) {
|
if (!strcmp(match->data, "codec")) {
|
||||||
card = &snd_soc_card_waipio_msm;
|
card = &snd_soc_card_waipio_msm;
|
||||||
|
|
||||||
memcpy(msm_waipio_dai_links + total_links,
|
/* late probe uses dai link at index '0' to get wcd component */
|
||||||
msm_wsa_cdc_dma_be_dai_links,
|
|
||||||
sizeof(msm_wsa_cdc_dma_be_dai_links));
|
|
||||||
total_links += ARRAY_SIZE(msm_wsa_cdc_dma_be_dai_links);
|
|
||||||
|
|
||||||
memcpy(msm_waipio_dai_links + total_links,
|
|
||||||
msm_wsa2_cdc_dma_be_dai_links,
|
|
||||||
sizeof(msm_wsa2_cdc_dma_be_dai_links));
|
|
||||||
total_links += ARRAY_SIZE(msm_wsa2_cdc_dma_be_dai_links);
|
|
||||||
|
|
||||||
memcpy(msm_waipio_dai_links + total_links,
|
memcpy(msm_waipio_dai_links + total_links,
|
||||||
msm_rx_tx_cdc_dma_be_dai_links,
|
msm_rx_tx_cdc_dma_be_dai_links,
|
||||||
sizeof(msm_rx_tx_cdc_dma_be_dai_links));
|
sizeof(msm_rx_tx_cdc_dma_be_dai_links));
|
||||||
total_links +=
|
total_links +=
|
||||||
ARRAY_SIZE(msm_rx_tx_cdc_dma_be_dai_links);
|
ARRAY_SIZE(msm_rx_tx_cdc_dma_be_dai_links);
|
||||||
|
|
||||||
|
memcpy(msm_waipio_dai_links + total_links,
|
||||||
|
msm_wsa_cdc_dma_be_dai_links,
|
||||||
|
sizeof(msm_wsa_cdc_dma_be_dai_links));
|
||||||
|
total_links += ARRAY_SIZE(msm_wsa_cdc_dma_be_dai_links);
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
memcpy(msm_waipio_dai_links + total_links,
|
||||||
|
msm_wsa2_cdc_dma_be_dai_links,
|
||||||
|
sizeof(msm_wsa2_cdc_dma_be_dai_links));
|
||||||
|
total_links += ARRAY_SIZE(msm_wsa2_cdc_dma_be_dai_links);
|
||||||
|
#endif
|
||||||
|
|
||||||
memcpy(msm_waipio_dai_links + total_links,
|
memcpy(msm_waipio_dai_links + total_links,
|
||||||
msm_va_cdc_dma_be_dai_links,
|
msm_va_cdc_dma_be_dai_links,
|
||||||
sizeof(msm_va_cdc_dma_be_dai_links));
|
sizeof(msm_va_cdc_dma_be_dai_links));
|
||||||
@@ -1223,7 +1231,7 @@ static struct snd_soc_card *populate_snd_card_dailinks(struct device *dev)
|
|||||||
return card;
|
return card;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int msm_int_audrx_init(struct snd_soc_pcm_runtime *rtd)
|
static int msm_int_wsa_init(struct snd_soc_pcm_runtime *rtd)
|
||||||
{
|
{
|
||||||
u8 spkleft_ports[WSA883X_MAX_SWR_PORTS] = {0, 1, 2, 3};
|
u8 spkleft_ports[WSA883X_MAX_SWR_PORTS] = {0, 1, 2, 3};
|
||||||
u8 spkright_ports[WSA883X_MAX_SWR_PORTS] = {0, 1, 2, 3};
|
u8 spkright_ports[WSA883X_MAX_SWR_PORTS] = {0, 1, 2, 3};
|
||||||
@@ -1236,15 +1244,8 @@ static int msm_int_audrx_init(struct snd_soc_pcm_runtime *rtd)
|
|||||||
unsigned int ch_mask[WSA883X_MAX_SWR_PORTS] = {0x1, 0xF, 0x3, 0x3};
|
unsigned int ch_mask[WSA883X_MAX_SWR_PORTS] = {0x1, 0xF, 0x3, 0x3};
|
||||||
struct snd_soc_component *component = NULL;
|
struct snd_soc_component *component = NULL;
|
||||||
struct snd_soc_dapm_context *dapm = NULL;
|
struct snd_soc_dapm_context *dapm = NULL;
|
||||||
struct snd_card *card = NULL;
|
|
||||||
struct snd_info_entry *entry = NULL;
|
|
||||||
struct msm_asoc_mach_data *pdata =
|
struct msm_asoc_mach_data *pdata =
|
||||||
snd_soc_card_get_drvdata(rtd->card);
|
snd_soc_card_get_drvdata(rtd->card);
|
||||||
int ret = 0;
|
|
||||||
|
|
||||||
if (codec_reg_done) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pdata->wsa_max_devs > 0) {
|
if (pdata->wsa_max_devs > 0) {
|
||||||
component = snd_soc_rtdcom_lookup(rtd, "wsa-codec.1");
|
component = snd_soc_rtdcom_lookup(rtd, "wsa-codec.1");
|
||||||
@@ -1291,6 +1292,7 @@ static int msm_int_audrx_init(struct snd_soc_pcm_runtime *rtd)
|
|||||||
component);
|
component);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
if (pdata->wsa_max_devs > 2) {
|
if (pdata->wsa_max_devs > 2) {
|
||||||
component = snd_soc_rtdcom_lookup(rtd, "wsa-codec.3");
|
component = snd_soc_rtdcom_lookup(rtd, "wsa-codec.3");
|
||||||
if (!component) {
|
if (!component) {
|
||||||
@@ -1334,6 +1336,32 @@ static int msm_int_audrx_init(struct snd_soc_pcm_runtime *rtd)
|
|||||||
wsa883x_codec_info_create_codec_entry(pdata->codec_root,
|
wsa883x_codec_info_create_codec_entry(pdata->codec_root,
|
||||||
component);
|
component);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
snd_soc_dapm_ignore_suspend(dapm, "WSA_SPK1 OUT");
|
||||||
|
snd_soc_dapm_ignore_suspend(dapm, "WSA_SPK2 OUT");
|
||||||
|
#if 0
|
||||||
|
snd_soc_dapm_ignore_suspend(dapm, "WSA2_SPK1 OUT");
|
||||||
|
snd_soc_dapm_ignore_suspend(dapm, "WSA2_SPK2 OUT");
|
||||||
|
#endif
|
||||||
|
snd_soc_dapm_ignore_suspend(dapm, "WSA AIF VI");
|
||||||
|
snd_soc_dapm_ignore_suspend(dapm, "VIINPUT_WSA");
|
||||||
|
snd_soc_dapm_sync(dapm);
|
||||||
|
|
||||||
|
msm_common_dai_link_init(rtd);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int msm_rx_tx_codec_init(struct snd_soc_pcm_runtime *rtd)
|
||||||
|
{
|
||||||
|
struct snd_soc_component *component = NULL;
|
||||||
|
struct snd_soc_dapm_context *dapm = NULL;
|
||||||
|
struct snd_info_entry *entry = NULL;
|
||||||
|
struct snd_card *card = NULL;
|
||||||
|
struct msm_asoc_mach_data *pdata =
|
||||||
|
snd_soc_card_get_drvdata(rtd->card);
|
||||||
|
int ret = 0;
|
||||||
|
|
||||||
component = snd_soc_rtdcom_lookup(rtd, "lpass-cdc");
|
component = snd_soc_rtdcom_lookup(rtd, "lpass-cdc");
|
||||||
if (!component) {
|
if (!component) {
|
||||||
@@ -1362,15 +1390,6 @@ static int msm_int_audrx_init(struct snd_soc_pcm_runtime *rtd)
|
|||||||
snd_soc_dapm_ignore_suspend(dapm, "Analog Mic4");
|
snd_soc_dapm_ignore_suspend(dapm, "Analog Mic4");
|
||||||
snd_soc_dapm_ignore_suspend(dapm, "Analog Mic5");
|
snd_soc_dapm_ignore_suspend(dapm, "Analog Mic5");
|
||||||
|
|
||||||
snd_soc_dapm_ignore_suspend(dapm, "WSA_SPK1 OUT");
|
|
||||||
snd_soc_dapm_ignore_suspend(dapm, "WSA_SPK2 OUT");
|
|
||||||
snd_soc_dapm_ignore_suspend(dapm, "WSA2_SPK1 OUT");
|
|
||||||
snd_soc_dapm_ignore_suspend(dapm, "WSA2_SPK2 OUT");
|
|
||||||
snd_soc_dapm_ignore_suspend(dapm, "WSA AIF VI");
|
|
||||||
snd_soc_dapm_ignore_suspend(dapm, "VIINPUT_WSA");
|
|
||||||
|
|
||||||
snd_soc_dapm_sync(dapm);
|
|
||||||
|
|
||||||
lpass_cdc_set_port_map(component, ARRAY_SIZE(sm_port_map), sm_port_map);
|
lpass_cdc_set_port_map(component, ARRAY_SIZE(sm_port_map), sm_port_map);
|
||||||
|
|
||||||
card = rtd->card->snd_card;
|
card = rtd->card->snd_card;
|
||||||
@@ -1380,27 +1399,15 @@ static int msm_int_audrx_init(struct snd_soc_pcm_runtime *rtd)
|
|||||||
if (!entry) {
|
if (!entry) {
|
||||||
pr_debug("%s: Cannot create codecs module entry\n",
|
pr_debug("%s: Cannot create codecs module entry\n",
|
||||||
__func__);
|
__func__);
|
||||||
ret = 0;
|
return ret;
|
||||||
goto err;
|
|
||||||
}
|
}
|
||||||
pdata->codec_root = entry;
|
pdata->codec_root = entry;
|
||||||
}
|
}
|
||||||
lpass_cdc_info_create_codec_entry(pdata->codec_root, component);
|
lpass_cdc_info_create_codec_entry(pdata->codec_root, component);
|
||||||
lpass_cdc_register_wake_irq(component, false);
|
lpass_cdc_register_wake_irq(component, false);
|
||||||
codec_reg_done = true;
|
|
||||||
msm_common_dai_link_init(rtd);
|
|
||||||
|
|
||||||
err:
|
if (pdata->wcd_disabled)
|
||||||
return ret;
|
goto done;
|
||||||
}
|
|
||||||
|
|
||||||
static int msm_aux_codec_init(struct snd_soc_pcm_runtime *rtd)
|
|
||||||
{
|
|
||||||
struct snd_soc_component *component = NULL;
|
|
||||||
struct snd_soc_dapm_context *dapm = NULL;
|
|
||||||
struct snd_info_entry *entry;
|
|
||||||
struct snd_card *card = NULL;
|
|
||||||
struct msm_asoc_mach_data *pdata;
|
|
||||||
|
|
||||||
component = snd_soc_rtdcom_lookup(rtd, WCD938X_DRV_NAME);
|
component = snd_soc_rtdcom_lookup(rtd, WCD938X_DRV_NAME);
|
||||||
if (!component) {
|
if (!component) {
|
||||||
@@ -1450,9 +1457,11 @@ static int msm_aux_codec_init(struct snd_soc_pcm_runtime *rtd)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
done:
|
||||||
codec_reg_done = true;
|
codec_reg_done = true;
|
||||||
msm_common_dai_link_init(rtd);
|
msm_common_dai_link_init(rtd);
|
||||||
return 0;
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int waipio_ssr_enable(struct device *dev, void *data)
|
static int waipio_ssr_enable(struct device *dev, void *data)
|
||||||
@@ -1577,6 +1586,10 @@ static int msm_asoc_machine_probe(struct platform_device *pdev)
|
|||||||
if (!pdata)
|
if (!pdata)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
|
of_property_read_u32(pdev->dev.of_node,
|
||||||
|
"qcom,wcd-disabled",
|
||||||
|
&pdata->wcd_disabled);
|
||||||
|
|
||||||
card = populate_snd_card_dailinks(&pdev->dev);
|
card = populate_snd_card_dailinks(&pdev->dev);
|
||||||
if (!card) {
|
if (!card) {
|
||||||
dev_err(&pdev->dev, "%s: Card uninitialized\n", __func__);
|
dev_err(&pdev->dev, "%s: Card uninitialized\n", __func__);
|
||||||
|
Reference in New Issue
Block a user