[alsa-devel] [PATCH v2 3/4] ASoC: simple-card: accept many DAI links

Jyri Sarha jsarha at ti.com
Sat Mar 15 10:14:13 CET 2014

On 2014-03-14 20:40, Jean-Francois Moine wrote:
> On Fri, 14 Mar 2014 13:16:12 +0200
> Jyri Sarha <jsarha at ti.com> wrote:
>> On 03/11/2014 11:36 AM, Jean-Francois Moine wrote:
>> > Some simple audio cards may have many DAI links.
>> > This patch extends the simple-card driver for handling such cards.
>> >
>> > Signed-off-by: Jean-Francois Moine <moinejf at free.fr>
>> > ---
>> [...]
>> Why can't you just use two simple-card instances in your setup?
> My machine has only one audio device (kirkwood). This one has two
> outputs. The first one (I2S) is connected to the HDMI transmitter, and
> the other one (S/PDIF) is connected to both the HDMI transmitter and 
> the
> S/PDIF connector. There can be only one playback stream, either via
> I2S, or S/PDIF, or both, with the final output either to HDMI or S/PDIF
> or both:
>            /--> I2S -----+-> HDMI
> platform -+             /
>            \-> S/PDIF -+
>                         \--> S/PDIF
> DPCM permits to activate both I2S and S/PDIF, but it does not handle
> the format and rate constraints (both outputs are always activated with
> the platform constraints).
> So, the actual solution I use is 3 DAI links (= 3 PCMs):
> - HDMI via I2S
> - HDMI via S/PDIF (no S/PDIF output)
> - S/PDIF via S/PDIF (no HDMI output)

Maybe a HW specific machine-driver would serve your case better. Of 
course it would be great to have a generic implementation that can 
handle this case too, but I am not sure if it should be called a 
simple-card anymore :).

>> You need to update the DT-binding document too when you are changing 
>> the
>> binding. That way it would also be easier to follow what you are 
>> trying
>> to accomplish here.
> Some people want to have 2 different patchs: one for the code and the
> other one for the DT change. Some other people like you want only one
> patch. Which is the right way?

I did not mean it should be in the same patch. Part of the same series 
is fine with me. It is up to maintainer to decide these things anyway. I 
would just like to compare the document with the implementation.

>> The sysclk and tdm properties appear to only work in the dais of the
>> first dai-link and __asoc_simple_card_dai_init() will not be called 
>> for
>> other dais at all. The DT-binding of this implementation would look
>> pretty hairy to me.
> I will add an other dynamic structure for these properties.

Best regards,

More information about the Alsa-devel mailing list