ASoC: simple_card_utils: fix fallback when "label" property isn't present
authorLucas Stach <l.stach@pengutronix.de>
Tue, 29 Aug 2017 15:51:22 +0000 (17:51 +0200)
committerMark Brown <broonie@kernel.org>
Wed, 30 Aug 2017 17:41:38 +0000 (18:41 +0100)
snd_soc_of_parse_card_name() doesn't return an error if the requested
property isn't present, but silently fails to fill the card name. This can
not be changed, as it is a backwards compatibility measure itself.

We can not rely on the return value of this function alone, but must check
if the card name has been filled sucessfully when deciding to skip the
fallback path, which is in place for existing users.

Fixes: dedfaa1eedc7 (ASoC: simple-card-utils: enable "label" on
                     asoc_simple_card_parse_card_name)
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/generic/simple-card-utils.c

index 26d64fa40c9cf1438f43a08d8f45b15ac0184fa9..0442099157e60a1f62a59305f94239b99207584a 100644 (file)
@@ -132,7 +132,7 @@ int asoc_simple_card_parse_card_name(struct snd_soc_card *card,
 
        /* Parse the card name from DT */
        ret = snd_soc_of_parse_card_name(card, "label");
 
        /* Parse the card name from DT */
        ret = snd_soc_of_parse_card_name(card, "label");
-       if (ret < 0) {
+       if (ret < 0 || !card->name) {
                char prop[128];
 
                snprintf(prop, sizeof(prop), "%sname", prefix);
                char prop[128];
 
                snprintf(prop, sizeof(prop), "%sname", prefix);