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 --- sound/soc/soc-pcm.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c index b3d569e7ba61..159670612de3 100644 --- a/sound/soc/soc-pcm.c +++ b/sound/soc/soc-pcm.c @@ -2807,15 +2807,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",