]> git.baikalelectronics.ru Git - kernel.git/commitdiff
ASoC: rsnd: Emit useful error messages in .remove()
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Tue, 5 Jul 2022 06:36:13 +0000 (08:36 +0200)
committerMark Brown <broonie@kernel.org>
Wed, 6 Jul 2022 14:20:22 +0000 (15:20 +0100)
If more than one call of rsnd_dai_call(remove, ...) fails the platform
remove callback returns all values orred together which then makes the
driver core emit a generic error message which is little helpful.

Instead emit details of which call failed exactly and return 0. Note
returning 0 instead of an error code doesn't make a difference in the
driver core apart from the error message.

This is a preparation for making platform remove callbacks return void.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Link: https://lore.kernel.org/r/20220705063613.93770-1-u.kleine-koenig@pengutronix.de
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sh/rcar/core.c

index 4973f94a21446caf40cb8e11fb4ae399dd7aaf33..7e380d71b0f8857029936663e0d2562124caca39 100644 (file)
@@ -1969,19 +1969,26 @@ static int rsnd_remove(struct platform_device *pdev)
                rsnd_cmd_remove,
                rsnd_adg_remove,
        };
-       int ret = 0, i;
+       int i;
 
        pm_runtime_disable(&pdev->dev);
 
        for_each_rsnd_dai(rdai, priv, i) {
-               ret |= rsnd_dai_call(remove, &rdai->playback, priv);
-               ret |= rsnd_dai_call(remove, &rdai->capture, priv);
+               int ret;
+
+               ret = rsnd_dai_call(remove, &rdai->playback, priv);
+               if (ret)
+                       dev_warn(&pdev->dev, "Failed to remove playback dai #%d\n", i);
+
+               ret = rsnd_dai_call(remove, &rdai->capture, priv);
+               if (ret)
+                       dev_warn(&pdev->dev, "Failed to remove capture dai #%d\n", i);
        }
 
        for (i = 0; i < ARRAY_SIZE(remove_func); i++)
                remove_func[i](priv);
 
-       return ret;
+       return 0;
 }
 
 static int __maybe_unused rsnd_suspend(struct device *dev)