aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/sh/rcar/rsrc-card.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/soc/sh/rcar/rsrc-card.c')
-rw-r--r--sound/soc/sh/rcar/rsrc-card.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/sound/soc/sh/rcar/rsrc-card.c b/sound/soc/sh/rcar/rsrc-card.c
index 84e935711e29..d61db9c385ea 100644
--- a/sound/soc/sh/rcar/rsrc-card.c
+++ b/sound/soc/sh/rcar/rsrc-card.c
@@ -41,6 +41,7 @@ static const struct rsrc_card_of_data routes_of_ssi0_ak4642 = {
41static const struct of_device_id rsrc_card_of_match[] = { 41static const struct of_device_id rsrc_card_of_match[] = {
42 { .compatible = "renesas,rsrc-card,lager", .data = &routes_of_ssi0_ak4642 }, 42 { .compatible = "renesas,rsrc-card,lager", .data = &routes_of_ssi0_ak4642 },
43 { .compatible = "renesas,rsrc-card,koelsch", .data = &routes_of_ssi0_ak4642 }, 43 { .compatible = "renesas,rsrc-card,koelsch", .data = &routes_of_ssi0_ak4642 },
44 { .compatible = "renesas,rsrc-card", },
44 {}, 45 {},
45}; 46};
46MODULE_DEVICE_TABLE(of, rsrc_card_of_match); 47MODULE_DEVICE_TABLE(of, rsrc_card_of_match);
@@ -242,8 +243,15 @@ static int rsrc_card_parse_links(struct device_node *np,
242 snd_soc_of_get_dai_name(np, &dai_link->codec_dai_name); 243 snd_soc_of_get_dai_name(np, &dai_link->codec_dai_name);
243 244
244 /* additional name prefix */ 245 /* additional name prefix */
245 priv->codec_conf.of_node = dai_link->codec_of_node; 246 if (of_data) {
246 priv->codec_conf.name_prefix = of_data->prefix; 247 priv->codec_conf.of_node = dai_link->codec_of_node;
248 priv->codec_conf.name_prefix = of_data->prefix;
249 } else {
250 snd_soc_of_parse_audio_prefix(&priv->snd_card,
251 &priv->codec_conf,
252 dai_link->codec_of_node,
253 "audio-prefix");
254 }
247 255
248 /* set dai_name */ 256 /* set dai_name */
249 snprintf(dai_props->dai_name, DAI_NAME_NUM, "be.%s", 257 snprintf(dai_props->dai_name, DAI_NAME_NUM, "be.%s",
@@ -361,8 +369,14 @@ static int rsrc_card_parse_of(struct device_node *node,
361 priv->snd_card.num_links = num; 369 priv->snd_card.num_links = num;
362 priv->snd_card.codec_conf = &priv->codec_conf; 370 priv->snd_card.codec_conf = &priv->codec_conf;
363 priv->snd_card.num_configs = 1; 371 priv->snd_card.num_configs = 1;
364 priv->snd_card.of_dapm_routes = of_data->routes; 372
365 priv->snd_card.num_of_dapm_routes = of_data->num_routes; 373 if (of_data) {
374 priv->snd_card.of_dapm_routes = of_data->routes;
375 priv->snd_card.num_of_dapm_routes = of_data->num_routes;
376 } else {
377 snd_soc_of_parse_audio_routing(&priv->snd_card,
378 "audio-routing");
379 }
366 380
367 /* Parse the card name from DT */ 381 /* Parse the card name from DT */
368 snd_soc_of_parse_card_name(&priv->snd_card, "card-name"); 382 snd_soc_of_parse_card_name(&priv->snd_card, "card-name");