alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
To: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>,
	Vinod Koul <vkoul@kernel.org>, Mark Brown <broonie@kernel.org>
Cc: devicetree@vger.kernel.org, alsa-devel@alsa-project.org,
	bgoswami@codeaurora.org, plai@codeaurora.org,
	lgirdwood@gmail.com, linux-kernel@vger.kernel.org,
	robh+dt@kernel.org, spapothi@codeaurora.org
Subject: Re: [alsa-devel] [PATCH v2 3/5] ASoC: core: add support to snd_soc_dai_get_sdw_stream()
Date: Thu, 10 Oct 2019 09:50:22 +0100	[thread overview]
Message-ID: <34e4cde8-f2e5-0943-115a-651d86f87c1a@linaro.org> (raw)
In-Reply-To: <2326a155-332e-fda0-b7a2-b48f348e1911@linux.intel.com>



On 09/10/2019 19:53, Pierre-Louis Bossart wrote:
> 
> 
> On 10/9/19 11:01 AM, Srinivas Kandagatla wrote:
>>
>>
>> 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
>>>>>>>> while.
>>>>>>>
>>>>>>> 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().
> 
> It's been a while since this thread started, and I still don't quite get 
> the concepts or logic.
> 
> First, I don't understand what the problem with "aux" devices is. All 
> the SoundWire stuff is based on the concept of DAI, so I guess I am 

That is the actual problem! Some aux devices does not have dais.

> missing why introducing the "aux" device changes anything.
> 

Problem is that aux devices(amplifier) are dai less but connected via 
SoundWire. So question is how do we attach those SoundWire streams to 
SoundWire master stream?

My Idea was to get handle to the SoundWire stream from controller dai 
and adding these aux SoundWire slave devices as slave to them in machine 
driver. This was much less intrusive than other solutions.

Is there a better way to associate a dai-less codecs to SoundWire master 
stream?

> Next, a 'stream' connects multiple DAIs to transmit information from 
> sources to sinks. A DAI in itself is created without having any notion 
> of which stream it will be associated with. This can only be done with 
> machine level information.
> 
> If you query a DAI to get a stream context, then how is this stream 
> context allocated in the first place? It looks like a horse and cart 
> problem. Or you are assuming that a specific DAI provides the context, 
> and that all other DAIs do not expose this .get_sdw_stream()? What if 
> more that 1 DAI provide a stream context?

In this particular board setup. Soundwire master is allocating the 
stream runtime for each of it dais, and this runtime is used in machine 
driver to attach Auxdev Soundwire slaves.

Other setups where the codec has dai should work as expected!


> 
> And last, I am even more lost since w/ the existing codec drivers we 
> have, sdw_stream_add_slave() is called from the dai .hw_params callback, 
> once you have information on formats/rates, etc. using 
> sdw_stream_add_slave() from a machine driver looks like an even bigger 
> stretch. I really thought the machine driver would only propagate the 
> notion of stream to all DAIs that are part of the same dailink.
> 
> I am not trying to block the Qualcomm implementation, just would like to 
> make sure the assumptions are clear and that we are not using the same 
> API in completely different ways.

Am open for any suggestions on dealing with dai less setups like what we 
have on our board.

--srini
> 
> 
> 
> 
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel

  reply	other threads:[~2019-10-10  8:51 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-13  8:35 [PATCH v2 0/5] soundwire: Add support to Qualcomm SoundWire master Srinivas Kandagatla
2019-08-13  8:35 ` [PATCH v2 1/5] soundwire: Add compute_params callback Srinivas Kandagatla
2019-08-13 14:34   ` Pierre-Louis Bossart
2019-08-13 18:17     ` Srinivas Kandagatla
2019-08-13 19:08       ` Pierre-Louis Bossart
2019-08-14  4:05         ` Vinod Koul
2019-09-04  9:28   ` [alsa-devel] " Vinod Koul
2019-09-04 13:36     ` Pierre-Louis Bossart
2019-08-13  8:35 ` [PATCH v2 2/5] soundwire: stream: make stream name a const pointer Srinivas Kandagatla
2019-09-04  9:29   ` [alsa-devel] " Vinod Koul
2019-08-13  8:35 ` [PATCH v2 3/5] ASoC: core: add support to snd_soc_dai_get_sdw_stream() Srinivas Kandagatla
2019-08-13 14:44   ` [alsa-devel] " Pierre-Louis Bossart
2019-08-13 16:50     ` Srinivas Kandagatla
2019-08-13 17:51       ` Pierre-Louis Bossart
2019-08-13 18:06         ` Srinivas Kandagatla
2019-08-13 19:15           ` Pierre-Louis Bossart
2019-08-13 19:18             ` Mark Brown
2019-08-13 19:38               ` Pierre-Louis Bossart
2019-08-13 19:58                 ` Mark Brown
2019-08-14  4:11                   ` Vinod Koul
2019-08-14  9:08                     ` Mark Brown
2019-08-14 14:09                     ` Pierre-Louis Bossart
2019-10-09  8:32                       ` Srinivas Kandagatla
2019-10-09 14:29                         ` Pierre-Louis Bossart
2019-10-09 14:29                           ` Pierre-Louis Bossart
2019-10-09 16:01                           ` Srinivas Kandagatla
2019-10-09 16:01                             ` Srinivas Kandagatla
2019-10-09 18:53                             ` Pierre-Louis Bossart
2019-10-10  8:50                               ` Srinivas Kandagatla [this message]
2019-10-10 12:03                                 ` Charles Keepax
2019-10-10 13:51                                   ` Mark Brown
2019-10-10 14:01                                   ` Pierre-Louis Bossart
2019-10-10 14:52                                     ` Srinivas Kandagatla
2019-10-10 15:49                                       ` Pierre-Louis Bossart
2019-10-11 12:30                                         ` Srinivas Kandagatla
2019-08-13 16:03   ` Cezary Rojewski
2019-08-13 16:52     ` Srinivas Kandagatla
2019-08-13 17:29       ` Cezary Rojewski
2019-08-13 19:19         ` Mark Brown
2019-08-13  8:35 ` [PATCH v2 4/5] dt-bindings: soundwire: add bindings for Qcom controller Srinivas Kandagatla
2019-08-23  7:28   ` Vinod Koul
2019-08-30  8:05     ` Srinivas Kandagatla
2019-08-30  8:05       ` [alsa-devel] " Srinivas Kandagatla
2019-08-13  8:35 ` [PATCH v2 5/5] soundwire: qcom: add support for SoundWire controller Srinivas Kandagatla

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=34e4cde8-f2e5-0943-115a-651d86f87c1a@linaro.org \
    --to=srinivas.kandagatla@linaro.org \
    --cc=alsa-devel@alsa-project.org \
    --cc=bgoswami@codeaurora.org \
    --cc=broonie@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pierre-louis.bossart@linux.intel.com \
    --cc=plai@codeaurora.org \
    --cc=robh+dt@kernel.org \
    --cc=spapothi@codeaurora.org \
    --cc=vkoul@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).