Unverified Commit e57297fc authored by Uwe Kleine-König's avatar Uwe Kleine-König Committed by Mark Brown
Browse files

ASoC: rsnd: Emit useful error messages in .remove()



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: default avatarUwe 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: default avatarMark Brown <broonie@kernel.org>
parent f1fd46e0
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -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)