Messages in this thread | | | Date | Wed, 25 Oct 2023 10:03:09 -0500 | Subject | Re: [PATCH 3/3] ASoC: codecs: wsa884x: check if set_stream is called for proper bus | From | Pierre-Louis Bossart <> |
| |
On 10/25/23 09:46, Krzysztof Kozlowski wrote: > From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> > > If multiple WSA8840 speakers, from two separate Soundwire buses, are > used in one codec DAI link, the set_stream() should ignore calls for > setting stream from other Soundwire controller. > > Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> > Co-developed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> > Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> > --- > sound/soc/codecs/wsa884x.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/sound/soc/codecs/wsa884x.c b/sound/soc/codecs/wsa884x.c > index bee6e763c700..91205e8c96f1 100644 > --- a/sound/soc/codecs/wsa884x.c > +++ b/sound/soc/codecs/wsa884x.c > @@ -1775,6 +1775,12 @@ static int wsa884x_set_stream(struct snd_soc_dai *dai, > void *stream, int direction) > { > struct wsa884x_priv *wsa884x = dev_get_drvdata(dai->dev); > + struct sdw_stream_runtime *sruntime = stream; > + struct sdw_slave *sdw = dev_to_sdw_dev(dai->dev); > + > + /* Check if this belongs to same bus */ > + if (sdw->bus->dev != sruntime->dev) > + return 0;
Sorry, maybe I am really thick or need coffee, but I can't figure out why this is necessary. Each amplifier has its own "wsa884x_priv" context and should have its own DAI, not following why the set_stream would mix-up the two dais?
We've been using two buses for two amplifiers since CometLake (2019?) and I don't see what's different?
> > wsa884x->sruntime = stream; >
| |