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.