linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Maxime Ripard <maxime.ripard@bootlin.com>
To: "Jernej Škrabec" <jernej.skrabec@gmail.com>
Cc: linux-sunxi@googlegroups.com, codekipper@gmail.com,
	Christopher Obbard <chris@64studio.com>,
	Chen-Yu Tsai <wens@csie.org>,
	linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Linux-ALSA <alsa-devel@alsa-project.org>,
	"Andrea Venturi (pers)" <be17068@iperbole.bo.it>
Subject: Re: [linux-sunxi] Re: [PATCH v4 6/9] ASoC: sun4i-i2s: Add multi-lane functionality
Date: Wed, 31 Jul 2019 14:29:53 +0200	[thread overview]
Message-ID: <20190731122953.2u3iabd6gkn7jv7k@flea> (raw)
In-Reply-To: <2092329.vleAuWJ0xl@jernej-laptop>

On Tue, Jul 30, 2019 at 07:57:10PM +0200, Jernej Škrabec wrote:
> Dne torek, 04. junij 2019 ob 11:38:44 CEST je Code Kipper napisal(a):
> > On Tue, 4 Jun 2019 at 11:02, Christopher Obbard <chris@64studio.com> wrote:
> > > On Tue, 4 Jun 2019 at 09:43, Code Kipper <codekipper@gmail.com> wrote:
> > > > On Tue, 4 Jun 2019 at 09:58, Maxime Ripard <maxime.ripard@bootlin.com>
> wrote:
> > > > > On Mon, Jun 03, 2019 at 07:47:32PM +0200, codekipper@gmail.com wrote:
> > > > > > From: Marcus Cooper <codekipper@gmail.com>
> > > > > >
> > > > > > The i2s block supports multi-lane i2s output however this
> > > > > > functionality
> > > > > > is only possible in earlier SoCs where the pins are exposed and for
> > > > > > the i2s block used for HDMI audio on the later SoCs.
> > > > > >
> > > > > > To enable this functionality, an optional property has been added to
> > > > > > the bindings.
> > > > > >
> > > > > > Signed-off-by: Marcus Cooper <codekipper@gmail.com>
> > > > >
> > > > > I'd like to have Mark's input on this, but I'm really worried about
> > > > > the interaction with the proper TDM support.
> > > > >
> > > > > Our fundamental issue is that the controller can have up to 8
> > > > > channels, but either on 4 lines (instead of 1), or 8 channels on 1
> > > > > (like proper TDM) (or any combination between the two, but that should
> > > > > be pretty rare).
> > > >
> > > > I understand...maybe the TDM needs to be extended to support this to
> > > > consider channel mapping and multiple transfer lines. I was thinking
> > > > about the later when someone was requesting support on IIRC a while
> > > > ago, I thought masking might of been a solution. These can wait as the
> > > > only consumer at the moment is LibreELEC and we can patch it there.
> > >
> > > Hi Marcus,
> > >
> > > FWIW, the TI McASP driver has support for TDM & (i think?) multiple
> > > transfer lines which are called serializers.
> > > Maybe this can help with inspiration?
> > > see
> > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/s
> > > ound/soc/ti/davinci-mcasp.c sample DTS:
> > >
> > > &mcasp0 {
> > >
> > >     #sound-dai-cells = <0>;
> > >     status = "okay";
> > >     pinctrl-names = "default";
> > >     pinctrl-0 = <&mcasp0_pins>;
> > >
> > >     op-mode = <0>;
> > >     tdm-slots = <8>;
> > >     serial-dir = <
> > >
> > >         2 0 1 0
> > >         0 0 0 0
> > >         0 0 0 0
> > >         0 0 0 0
> > >     >
> > >     >;
> > >
> > >     tx-num-evt = <1>;
> > >     rx-num-evt = <1>;
> > >
> > > };
> > >
> > > Cheers!
> >
> > Thanks, this looks good.
>
> I would really like to see this issue resolved, because HDMI audio support in
> mainline Linux for those SoCs is long overdue.
>
> However, there is a possibility to still add HDMI audio suport (stereo only)
> even if this issue is not completely solved. If we agree that configuration of
> channels would be solved with additional property as Christopher suggested,
> support for >2 channels can be left for a later time when support for that
> property would be implemented. Currently, stereo HDMI audio support can be
> added with a few patches.
>
> I think all I2S cores are really the same, no matter if internally connected
> to HDMI controller or routed to pins, so it would make sense to use same
> compatible for all of them. It's just that those I2S cores which are routed to
> pins can use only one lane and >2 channels can be used only in TDM mode of
> operation, if I understand this correctly.
>
> New property would have to be optional, so it's omission would result in same
> channel configuration as it is already present, to preserve compatibility with
> old device trees. And this mode is already sufficient for stereo HDMI audio
> support.

Yeah, it looks like a good plan.

> Side note: HDMI audio with current sun4i-i2s driver has a delay (about a
> second), supposedly because DW HDMI controller automatically generates CTS
> value based on I2S clock (auto CTS value generation is enabled per DesignWare
> recomendation for DW HDMI I2S interface).

Is that a constant delay during the audio playback, or only at startup?

> I2S driver from BSP Linux solves that by having I2S clock output
> enabled all the time. Should this be flagged with some additional
> property in DT?

I'd say that if the codec has that requirement, then it should be
between the codec and the DAI, the DT doesn't really have anything to
do with this.

Maxime

--
Maxime Ripard, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

  reply	other threads:[~2019-07-31 12:29 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-03 17:47 [PATCH v4 0/9]ASoC: sun4i-i2s: Updates to the driver codekipper
2019-06-03 17:47 ` [PATCH v4 1/9] ASoC: sun4i-i2s: Fix sun8i tx channel offset mask codekipper
2019-06-04  7:34   ` Maxime Ripard
2019-06-04  7:38     ` [linux-sunxi] " Chen-Yu Tsai
2019-06-04  8:15       ` Code Kipper
2019-06-04 14:58   ` Applied "ASoC: sun4i-i2s: Fix sun8i tx channel offset mask" to the asoc tree Mark Brown
2019-06-03 17:47 ` [PATCH v4 2/9] ASoC: sun4i-i2s: Add offset to RX channel select codekipper
2019-06-04  7:36   ` Maxime Ripard
2019-06-04  7:39     ` [linux-sunxi] " Chen-Yu Tsai
2019-06-04 14:58   ` Applied "ASoC: sun4i-i2s: Add offset to RX channel select" to the asoc tree Mark Brown
2019-06-03 17:47 ` [PATCH v4 3/9] ASoC: sun4i-i2s: Add regmap field to sign extend sample codekipper
2019-06-04  7:43   ` Maxime Ripard
2019-06-04  7:53   ` [linux-sunxi] " Chen-Yu Tsai
2019-06-04 11:46     ` Code Kipper
2019-06-03 17:47 ` [PATCH v4 4/9] ASoC: sun4i-i2s: Reduce quirks for sun8i-h3 codekipper
2019-06-04  7:46   ` Maxime Ripard
2019-06-04  9:33     ` Code Kipper
2019-06-03 17:47 ` [PATCH v4 5/9] ASoC: sun4i-i2s: Add set_tdm_slot functionality codekipper
2019-06-04  7:49   ` Maxime Ripard
2019-06-03 17:47 ` [PATCH v4 6/9] ASoC: sun4i-i2s: Add multi-lane functionality codekipper
2019-06-04  7:58   ` Maxime Ripard
2019-06-04  8:43     ` Code Kipper
2019-06-04  9:02       ` [linux-sunxi] " Christopher Obbard
2019-06-04  9:38         ` Code Kipper
2019-07-30 17:57           ` Jernej Škrabec
2019-07-31 12:29             ` Maxime Ripard [this message]
2019-08-01  5:31               ` Jernej Škrabec
2019-08-06  6:22                 ` Chen-Yu Tsai
2019-08-12 10:02                   ` Maxime Ripard
2019-06-03 17:47 ` [PATCH v4 7/9] ASoC: sun4i-i2s: Add multichannel functionality codekipper
2019-06-03 17:47 ` [PATCH v4 8/9] ASoc: sun4i-i2s: Add 20, 24 and 32 bit support codekipper
2019-06-04  8:19   ` Maxime Ripard
2019-06-03 17:47 ` [PATCH v4 9/9] ASoC: sun4i-i2s: Adjust regmap settings codekipper
2019-06-04  8:21   ` Maxime Ripard

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190731122953.2u3iabd6gkn7jv7k@flea \
    --to=maxime.ripard@bootlin.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=be17068@iperbole.bo.it \
    --cc=broonie@kernel.org \
    --cc=chris@64studio.com \
    --cc=codekipper@gmail.com \
    --cc=jernej.skrabec@gmail.com \
    --cc=lgirdwood@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sunxi@googlegroups.com \
    --cc=wens@csie.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).