Merge remote-tracking branch 'asoc/topic/dapm-dt' into asoc-next
This commit is contained in:
Коммит
0af1327ba0
|
@ -1071,11 +1071,16 @@ struct snd_soc_card {
|
|||
|
||||
/*
|
||||
* Card-specific routes and widgets.
|
||||
* Note: of_dapm_xxx for Device Tree; Otherwise for driver build-in.
|
||||
*/
|
||||
const struct snd_soc_dapm_widget *dapm_widgets;
|
||||
int num_dapm_widgets;
|
||||
const struct snd_soc_dapm_route *dapm_routes;
|
||||
int num_dapm_routes;
|
||||
const struct snd_soc_dapm_widget *of_dapm_widgets;
|
||||
int num_of_dapm_widgets;
|
||||
const struct snd_soc_dapm_route *of_dapm_routes;
|
||||
int num_of_dapm_routes;
|
||||
bool fully_routed;
|
||||
|
||||
struct work_struct deferred_resume_work;
|
||||
|
|
|
@ -512,6 +512,12 @@ static int fsl_asoc_card_probe(struct platform_device *pdev)
|
|||
memcpy(priv->dai_link, fsl_asoc_card_dai,
|
||||
sizeof(struct snd_soc_dai_link) * ARRAY_SIZE(priv->dai_link));
|
||||
|
||||
ret = snd_soc_of_parse_audio_routing(&priv->card, "audio-routing");
|
||||
if (ret) {
|
||||
dev_err(&pdev->dev, "failed to parse audio-routing: %d\n", ret);
|
||||
goto asrc_fail;
|
||||
}
|
||||
|
||||
/* Normal DAI Link */
|
||||
priv->dai_link[0].cpu_of_node = cpu_np;
|
||||
priv->dai_link[0].codec_of_node = codec_np;
|
||||
|
|
|
@ -1561,6 +1561,10 @@ static int snd_soc_instantiate_card(struct snd_soc_card *card)
|
|||
snd_soc_dapm_new_controls(&card->dapm, card->dapm_widgets,
|
||||
card->num_dapm_widgets);
|
||||
|
||||
if (card->of_dapm_widgets)
|
||||
snd_soc_dapm_new_controls(&card->dapm, card->of_dapm_widgets,
|
||||
card->num_of_dapm_widgets);
|
||||
|
||||
/* initialise the sound card only once */
|
||||
if (card->probe) {
|
||||
ret = card->probe(card);
|
||||
|
@ -1616,6 +1620,10 @@ static int snd_soc_instantiate_card(struct snd_soc_card *card)
|
|||
snd_soc_dapm_add_routes(&card->dapm, card->dapm_routes,
|
||||
card->num_dapm_routes);
|
||||
|
||||
if (card->of_dapm_routes)
|
||||
snd_soc_dapm_add_routes(&card->dapm, card->of_dapm_routes,
|
||||
card->num_of_dapm_routes);
|
||||
|
||||
for (i = 0; i < card->num_links; i++) {
|
||||
if (card->dai_link[i].dai_fmt)
|
||||
snd_soc_runtime_set_dai_fmt(&card->rtd[i],
|
||||
|
@ -3223,8 +3231,8 @@ int snd_soc_of_parse_audio_simple_widgets(struct snd_soc_card *card,
|
|||
widgets[i].name = wname;
|
||||
}
|
||||
|
||||
card->dapm_widgets = widgets;
|
||||
card->num_dapm_widgets = num_widgets;
|
||||
card->of_dapm_widgets = widgets;
|
||||
card->num_of_dapm_widgets = num_widgets;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -3308,8 +3316,8 @@ int snd_soc_of_parse_audio_routing(struct snd_soc_card *card,
|
|||
}
|
||||
}
|
||||
|
||||
card->num_dapm_routes = num_routes;
|
||||
card->dapm_routes = routes;
|
||||
card->num_of_dapm_routes = num_routes;
|
||||
card->of_dapm_routes = routes;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче