Re: [alsa-devel] [PATCH v2 3/5] ASoC: core: add support to snd_soc_dai_get_sdw_stream()

From: Srinivas Kandagatla
Date: Wed Oct 09 2019 - 12:01:07 EST

On 09/10/2019 15:29, Pierre-Louis Bossart wrote:

On 10/9/19 3:32 AM, Srinivas Kandagatla wrote:
Hi Pierre,

On 14/08/2019 15:09, Pierre-Louis Bossart wrote:

On 8/13/19 11:11 PM, Vinod Koul wrote:
On 13-08-19, 20:58, Mark Brown wrote:
On Tue, Aug 13, 2019 at 02:38:53PM -0500, Pierre-Louis Bossart wrote:

Indeed. I don't have a full understanding of that part to be honest, nor why
we need something SoundWire-specific. We already abused the set_tdm_slot API
to store an HDaudio stream, now we have a rather confusing stream
information for SoundWire and I have about 3 other 'stream' contexts in
SOF... I am still doing basic cleanups but this has been on my radar for a

There is something to be said for not abusing the TDM slot API if it can
make things clearer by using bus-idiomatic mechanisms, but it does mean
everything needs to know about each individual bus :/ .

Here ASoC doesn't need to know about sdw bus. As Srini explained, this
helps in the case for him to get the stream context and set the stream
context from the machine driver.

Nothing else is expected to be done from this API. We already do a set
using snd_soc_dai_set_sdw_stream(). Here we add the snd_soc_dai_get_sdw_stream() to query

I didn't see a call to snd_soc_dai_set_sdw_stream() in Srini's code?

There is a snd_soc_dai_get_sdw_stream() to get stream context and we add slave streams(amplifier in this case) to that context using sdw_stream_add_slave() in machine driver[1].

Without this helper there is no way to link slave streams to stream context in non dai based setup like smart speaker amplifiers.

Currently this driver is blocked on this patch, If you think there are other ways to do this, am happy to try them out.

So to be clear, you are *not* using snd_soc_dai_set_sdw_stream?
Yes, am not using snd_soc_dai_set_sdw_stream().