[alsa-devel] [PATCH v2 3/5] ASoC: core: add support to snd_soc_dai_get_sdw_stream()
Srinivas Kandagatla
srinivas.kandagatla at linaro.org
Thu Oct 10 16:52:56 CEST 2019
On 10/10/2019 15:01, Pierre-Louis Bossart wrote:
>
>>>> 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.
>>>
>>
>> Usually aux devices are used for things like analog amplifiers that
>> clearly don't have a digital interface, thus it really makes no sense
>> to have a DAI link connecting them. So I guess my question here
>> would be what is the thinking on making the "smart amplifier" dailess?
>> It feels like having a CODEC to CODEC DAI between the CODEC and
>> the AMP would be a more obvious way to connect the two devices
>> and would presumably avoid the issues being discussed around the
>> patch.
>
> Ah, now I get it, I missed the point about not having DAIs for the
> amplifier.
>
> I will second Charles' point, the code you have in the machine driver at
I agree with Charles,
WSA8810/WSA8815 is connected via SoundWire digital interface, so I can
try to model this amplifier with dais and see how it ends up.
I still need to figure out prefixing multiple instances of this
Amplifier controls with "Left" and "Right"
> [1] gets a SoundWire stream context from the SLIMbus codec dai. It's a
> bit odd to mix layers this way.
Yep we have a very mixed setup on this SoC.
So it looks like this.
Main WCD934X Codec which is connected via SLIMBus which has SoundWire
Controller block along with other analog + digital blocks.
Again the SoundWire Controller from that WCD934X codec is wired up to
WSA881X Smart speaker amplifiers.
>
>
> And if I look at the code below, taken from [1], if you have more than
> one codec, then your code looks problematic: data->sruntime would be
> overriden and you'd use the info from the last codec dai on the dailink...
This code has been written very much specific to DB845c which has only
one codec. But I agree with your point.
--srini
>
> case SLIMBUS_0_RX...SLIMBUS_6_TX:
> for (i = 0 ; i < dai_link->num_codecs; i++) {
> [snip]
> data->sruntime[cpu_dai->id] =
> snd_soc_dai_get_sdw_stream(rtd->codec_dais[i], 0); << same
> destination for multiple codec_dais...
>
> If you keep the amp dai-less, then the stream concept should be somehow
> allocated on the master (or machine) side and passed to the codec dais
> that are associated to the same 'stream'.
>
>
> [1]
> https://git.linaro.org/people/srinivas.kandagatla/linux.git/tree/sound/soc/qcom/db845c.c?h=release/db845c/qcomlt-5.2
>
>
More information about the Alsa-devel
mailing list