diff options
Diffstat (limited to 'sound/soc/sh/rcar/rsrc-card.c')
-rw-r--r-- | sound/soc/sh/rcar/rsrc-card.c | 22 |
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 = { | |||
41 | static const struct of_device_id rsrc_card_of_match[] = { | 41 | static 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 | }; |
46 | MODULE_DEVICE_TABLE(of, rsrc_card_of_match); | 47 | MODULE_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"); |