Hi Maxime,
On Wed, 30 Sep 2020 at 12:19, Maxime Ripard maxime@cerno.tech wrote:
On Mon, Sep 28, 2020 at 04:27:42PM +0200, Clément Péron wrote:
On Mon, 28 Sep 2020 at 10:43, Maxime Ripard maxime@cerno.tech wrote:
On Mon, Sep 21, 2020 at 08:37:09PM +0200, Jernej Škrabec wrote:
Dne ponedeljek, 21. september 2020 ob 19:23:49 CEST je Clément Péron napisal(a):
Hi Maxime,
On Mon, 21 Sep 2020 at 15:59, Maxime Ripard maxime@cerno.tech wrote:
On Mon, Sep 21, 2020 at 12:27:18PM +0200, Clément Péron wrote: > From: Jernej Skrabec jernej.skrabec@siol.net > > Add a simple-soundcard to link audio between HDMI and I2S. > > Signed-off-by: Jernej Skrabec jernej.skrabec@siol.net > Signed-off-by: Marcus Cooper codekipper@gmail.com > Signed-off-by: Clément Péron peron.clem@gmail.com > --- > arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 33 ++++++++++++++++++++ > 1 file changed, 33 insertions(+) > > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/
boot/dts/allwinner/sun50i-h6.dtsi
> index 28c77d6872f6..a8853ee7885a 100644 > --- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi > +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi > @@ -67,6 +67,25 @@ de: display-engine { > status = "disabled"; > }; > > + hdmi_sound: hdmi-sound { > + compatible = "simple-audio-card"; > + simple-audio-card,format = "i2s"; > + simple-audio-card,name = "sun50i-h6-hdmi"; > + simple-audio-card,mclk-fs = <128>; > + simple-audio-card,frame-inversion; > + status = "disabled"; > + > + simple-audio-card,codec { > + sound-dai = <&hdmi>; > + }; > + > + simple-audio-card,cpu { > + sound-dai = <&i2s1>; > + dai-tdm-slot-num = <2>; > + dai-tdm-slot-width = <32>;
It looks weird to have both some TDM setup here, and yet the format in i2s?
I was looking at sound documentation regarding how I can properly write the multi-lane I2S support. And I think we made a wrong interpretation here.
TDM slot-num and slot-width are not referencing the format called PCM or DSP_A / DSP_B. But really the physical time division representation of a format.
For example Amlogic do the following representation for Multi-lane I2S:
dai-link-7 { sound-dai = <&tdmif_b>; dai-format = "i2s"; dai-tdm-slot-tx-mask-0 = <1 1>; dai-tdm-slot-tx-mask-1 = <1 1>; dai-tdm-slot-tx-mask-2 = <1 1>; dai-tdm-slot-tx-mask-3 = <1 1>; mclk-fs = <256>;
codec { sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>; }; };
So i think for 2 channels HDMI using the simple sound card with TDM property is not a hack but the correct way to represent it.
Do you agree ?
If so, can I resend the simple sound card for HDMI audio ?
Thanks, Clement
Yes, I agree I will check if it's really needed.
I think this was explained before.
Possibly, but this should be in a comment or at least the commit log
Anyway, this is needed to force width to 32, no matter actual sample width. That's a requirement of HDMI codec. I believe Marcus Cooper have another codec which also needs fixed width.
There is no similar property for I2S, so TDM one is used here.
Except it's really dedicated to the TDM mode and doesn't really make much sense here.
If we have special requirements like this on the codec setup, that sounds like a good justification for creating a custom codec instead of shoehorning it into simple-card
When all the remarks are fixed would it be possible to merge the rest of the series without the dts changes ?
I will propose another series to introduce a dedicated codec for that.
Yeah, sure
Maxime