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

From: Jean-Francois Moine
Date: Fri Mar 14 2014 - 14:40:50 EST


On Fri, 14 Mar 2014 13:16:12 +0200
Jyri Sarha <jsarha@xxxxxx> 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@xxxxxxx>
> > ---
> [...]
>
> 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)

> 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?

> 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.

--
Ken ar c'hentaà | ** Breizh ha Linux atav! **
Jef | http://moinejf.free.fr/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/