ASoC: soc-pcm.c: tidyup playback/capture_only at soc_get_playback_capture()

soc_get_playback_capture() (A) returns number of substreams for
playback/capture, and then, we can use playback/capture_only flag (X)(Y).

(A)     static int soc_get_playback_capture(...)
	{
		...
(X)		if (dai_link->playback_only) {
(*)			*playback = 1;
			*capture = 0;
		}

(Y)		if (dai_link->capture_only) {
			*playback = 0;
(*)			*capture = 1;
		}
		...
	}

But this flag should not have effect to opposite side stream (*).
This patch tidyup it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Reviewed-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/87sfbezlq8.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Kuninori Morimoto 2023-05-30 00:50:08 +00:00 committed by Mark Brown
parent c3e9b6d6ef
commit e1f653ce84
No known key found for this signature in database
GPG Key ID: 24D68B725D5487D0

View File

@ -2806,15 +2806,11 @@ static int soc_get_playback_capture(struct snd_soc_pcm_runtime *rtd,
}
}
if (dai_link->playback_only) {
has_playback = 1;
if (dai_link->playback_only)
has_capture = 0;
}
if (dai_link->capture_only) {
if (dai_link->capture_only)
has_playback = 0;
has_capture = 1;
}
if (!has_playback && !has_capture) {
dev_err(rtd->dev, "substream %s has no playback, no capture\n",