All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chen-Yu Tsai <wens@csie.org>
To: Code Kipper <codekipper@gmail.com>
Cc: Maxime Ripard <maxime.ripard@free-electrons.com>,
	linux-sunxi <linux-sunxi@googlegroups.com>,
	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: [PATCH v3 3/9] ASoc: sun4i-i2s: Add 20, 24 and 32 bit support
Date: Sat, 22 Dec 2018 01:15:24 +0800	[thread overview]
Message-ID: <CAGb2v652h5hpujBxF5r3_g_tj2cOjULkUBhazi_5Xd6kvC2ZPw@mail.gmail.com> (raw)
In-Reply-To: <CAGb2v67LyDW6kmDrahzLYsY7q9mSJimrZ=jMO3PrPQ=mcxy0qw@mail.gmail.com>

On Sat, Dec 22, 2018 at 12:48 AM Chen-Yu Tsai <wens@csie.org> wrote:
>
> On Fri, Dec 21, 2018 at 11:21 PM <codekipper@gmail.com> wrote:
> >
> > From: Marcus Cooper <codekipper@gmail.com>
> >
> > Extend the functionality of the driver to include support of 20 and
> > 24 bits per sample for the earlier SoCs.
> >
> > Newer SoCs can also handle 32bit samples.
> >
> > Signed-off-by: Marcus Cooper <codekipper@gmail.com>
> > ---
> >  sound/soc/sunxi/sun4i-i2s.c | 41 ++++++++++++++++++++++++++++++++++---
> >  1 file changed, 38 insertions(+), 3 deletions(-)
> >
> > diff --git a/sound/soc/sunxi/sun4i-i2s.c b/sound/soc/sunxi/sun4i-i2s.c
> > index 80bf29e0cc86..adb988ae9ac5 100644
> > --- a/sound/soc/sunxi/sun4i-i2s.c
> > +++ b/sound/soc/sunxi/sun4i-i2s.c
> > @@ -399,6 +399,11 @@ static int sun4i_i2s_hw_params(struct snd_pcm_substream *substream,
> >         case 16:
> >                 width = DMA_SLAVE_BUSWIDTH_2_BYTES;
> >                 break;
> > +       case 20:
> > +       case 24:
> > +       case 32:
> > +               width = DMA_SLAVE_BUSWIDTH_4_BYTES;
> > +               break;
> >         default:
> >                 dev_err(dai->dev, "Unsupported physical sample width: %d\n",
> >                         params_physical_width(params));
> > @@ -411,7 +416,18 @@ static int sun4i_i2s_hw_params(struct snd_pcm_substream *substream,
> >                 sr = 0;
> >                 wss = 0;
> >                 break;
> > -
> > +       case 20:
> > +               sr = 1;
> > +               wss = 1;
> > +               break;
> > +       case 24:
> > +               sr = 2;
> > +               wss = 2;
> > +               break;
> > +       case 32:
> > +               sr = 4;
> > +               wss = 4;
> > +               break;
> >         default:
> >                 dev_err(dai->dev, "Unsupported sample width: %d\n",
> >                         params_width(params));
> > @@ -687,6 +703,13 @@ static int sun4i_i2s_dai_probe(struct snd_soc_dai *dai)
> >         return 0;
> >  }
> >
> > +#define SUN4I_FORMATS  (SNDRV_PCM_FMTBIT_S16_LE | \
> > +                        SNDRV_PCM_FMTBIT_S20_3LE | \
> > +                        SNDRV_PCM_FMTBIT_S24_LE)
>
> IIRC SNDRV_PCM_FMTBIT_S24_LE and SNDRV_PCM_FMTBIT_S32_LE with .sig_bits = 24
> are different things, in regards to how the sample is aligned in a 4 byte
> space. Have you checked that things actually work as expected? This was
> something that did not work using SNDRV_PCM_FMTBIT_S24_LE on sun4i-codec.

OK. I see the I2S driver is using FIFO mode 1, which expects the sample
to be in the lower portion of the 4 bytes. However it looks like you would
want SNDRV_PCM_FMTBIT_S20_LE (20 bits LSB justified in 4 bytes) instead of
SNDRV_PCM_FMTBIT_S20_3LE (20 bits LSB justified in 3 bytes).

ChenYu


> > +
> > +#define SUN8I_FORMATS  (SUN4I_FORMATS | \
> > +                        SNDRV_PCM_FMTBIT_S32_LE)
> > +
> >  static struct snd_soc_dai_driver sun4i_i2s_dai = {
> >         .probe = sun4i_i2s_dai_probe,
> >         .capture = {
> > @@ -694,14 +717,14 @@ static struct snd_soc_dai_driver sun4i_i2s_dai = {
> >                 .channels_min = 2,
> >                 .channels_max = 2,
> >                 .rates = SNDRV_PCM_RATE_8000_192000,
> > -               .formats = SNDRV_PCM_FMTBIT_S16_LE,
> > +               .formats = SUN4I_FORMATS,
> >         },
> >         .playback = {
> >                 .stream_name = "Playback",
> >                 .channels_min = 2,
> >                 .channels_max = 2,
> >                 .rates = SNDRV_PCM_RATE_8000_192000,
> > -               .formats = SNDRV_PCM_FMTBIT_S16_LE,
> > +               .formats = SUN4I_FORMATS,
> >         },
> >         .ops = &sun4i_i2s_dai_ops,
> >         .symmetric_rates = 1,
> > @@ -1106,6 +1129,18 @@ static int sun4i_i2s_probe(struct platform_device *pdev)
> >         i2s->capture_dma_data.addr = res->start + SUN4I_I2S_FIFO_RX_REG;
> >         i2s->capture_dma_data.maxburst = 8;
> >
> > +       soc_dai = devm_kmemdup(&pdev->dev, &sun4i_i2s_dai,
> > +                              sizeof(*soc_dai), GFP_KERNEL);
> > +       if (!soc_dai) {
> > +               ret = -ENOMEM;
> > +               goto err_pm_disable;
> > +       }
> > +
> > +       if (i2s->variant->has_fmt_set_lrck_period) {
>
> This condition deserves a comment, particularly as to why you use it
> in place of having a separate quirk field to represent 32 bit support.
>
> Regards
> ChenYu
>
> > +               soc_dai->playback.formats = SUN8I_FORMATS;
> > +               soc_dai->capture.formats = SUN8I_FORMATS;
> > +       }
> > +
> >         pm_runtime_enable(&pdev->dev);
> >         if (!pm_runtime_enabled(&pdev->dev)) {
> >                 ret = sun4i_i2s_runtime_resume(&pdev->dev);
> > --
> > 2.20.1
> >

WARNING: multiple messages have this Message-ID (diff)
From: Chen-Yu Tsai <wens-jdAy2FN1RRM@public.gmane.org>
To: Code Kipper <codekipper-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: Maxime Ripard
	<maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
	linux-sunxi <linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>,
	linux-arm-kernel
	<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>,
	Liam Girdwood <lgirdwood-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	Mark Brown <broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	linux-kernel
	<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Linux-ALSA <alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw@public.gmane.org>,
	"Andrea Venturi (pers)"
	<be17068-p0aYb1w59bq9tCD/VL7h6Q@public.gmane.org>
Subject: Re: [PATCH v3 3/9] ASoc: sun4i-i2s: Add 20, 24 and 32 bit support
Date: Sat, 22 Dec 2018 01:15:24 +0800	[thread overview]
Message-ID: <CAGb2v652h5hpujBxF5r3_g_tj2cOjULkUBhazi_5Xd6kvC2ZPw@mail.gmail.com> (raw)
In-Reply-To: <CAGb2v67LyDW6kmDrahzLYsY7q9mSJimrZ=jMO3PrPQ=mcxy0qw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>

On Sat, Dec 22, 2018 at 12:48 AM Chen-Yu Tsai <wens-jdAy2FN1RRM@public.gmane.org> wrote:
>
> On Fri, Dec 21, 2018 at 11:21 PM <codekipper-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
> >
> > From: Marcus Cooper <codekipper-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> >
> > Extend the functionality of the driver to include support of 20 and
> > 24 bits per sample for the earlier SoCs.
> >
> > Newer SoCs can also handle 32bit samples.
> >
> > Signed-off-by: Marcus Cooper <codekipper-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> > ---
> >  sound/soc/sunxi/sun4i-i2s.c | 41 ++++++++++++++++++++++++++++++++++---
> >  1 file changed, 38 insertions(+), 3 deletions(-)
> >
> > diff --git a/sound/soc/sunxi/sun4i-i2s.c b/sound/soc/sunxi/sun4i-i2s.c
> > index 80bf29e0cc86..adb988ae9ac5 100644
> > --- a/sound/soc/sunxi/sun4i-i2s.c
> > +++ b/sound/soc/sunxi/sun4i-i2s.c
> > @@ -399,6 +399,11 @@ static int sun4i_i2s_hw_params(struct snd_pcm_substream *substream,
> >         case 16:
> >                 width = DMA_SLAVE_BUSWIDTH_2_BYTES;
> >                 break;
> > +       case 20:
> > +       case 24:
> > +       case 32:
> > +               width = DMA_SLAVE_BUSWIDTH_4_BYTES;
> > +               break;
> >         default:
> >                 dev_err(dai->dev, "Unsupported physical sample width: %d\n",
> >                         params_physical_width(params));
> > @@ -411,7 +416,18 @@ static int sun4i_i2s_hw_params(struct snd_pcm_substream *substream,
> >                 sr = 0;
> >                 wss = 0;
> >                 break;
> > -
> > +       case 20:
> > +               sr = 1;
> > +               wss = 1;
> > +               break;
> > +       case 24:
> > +               sr = 2;
> > +               wss = 2;
> > +               break;
> > +       case 32:
> > +               sr = 4;
> > +               wss = 4;
> > +               break;
> >         default:
> >                 dev_err(dai->dev, "Unsupported sample width: %d\n",
> >                         params_width(params));
> > @@ -687,6 +703,13 @@ static int sun4i_i2s_dai_probe(struct snd_soc_dai *dai)
> >         return 0;
> >  }
> >
> > +#define SUN4I_FORMATS  (SNDRV_PCM_FMTBIT_S16_LE | \
> > +                        SNDRV_PCM_FMTBIT_S20_3LE | \
> > +                        SNDRV_PCM_FMTBIT_S24_LE)
>
> IIRC SNDRV_PCM_FMTBIT_S24_LE and SNDRV_PCM_FMTBIT_S32_LE with .sig_bits = 24
> are different things, in regards to how the sample is aligned in a 4 byte
> space. Have you checked that things actually work as expected? This was
> something that did not work using SNDRV_PCM_FMTBIT_S24_LE on sun4i-codec.

OK. I see the I2S driver is using FIFO mode 1, which expects the sample
to be in the lower portion of the 4 bytes. However it looks like you would
want SNDRV_PCM_FMTBIT_S20_LE (20 bits LSB justified in 4 bytes) instead of
SNDRV_PCM_FMTBIT_S20_3LE (20 bits LSB justified in 3 bytes).

ChenYu


> > +
> > +#define SUN8I_FORMATS  (SUN4I_FORMATS | \
> > +                        SNDRV_PCM_FMTBIT_S32_LE)
> > +
> >  static struct snd_soc_dai_driver sun4i_i2s_dai = {
> >         .probe = sun4i_i2s_dai_probe,
> >         .capture = {
> > @@ -694,14 +717,14 @@ static struct snd_soc_dai_driver sun4i_i2s_dai = {
> >                 .channels_min = 2,
> >                 .channels_max = 2,
> >                 .rates = SNDRV_PCM_RATE_8000_192000,
> > -               .formats = SNDRV_PCM_FMTBIT_S16_LE,
> > +               .formats = SUN4I_FORMATS,
> >         },
> >         .playback = {
> >                 .stream_name = "Playback",
> >                 .channels_min = 2,
> >                 .channels_max = 2,
> >                 .rates = SNDRV_PCM_RATE_8000_192000,
> > -               .formats = SNDRV_PCM_FMTBIT_S16_LE,
> > +               .formats = SUN4I_FORMATS,
> >         },
> >         .ops = &sun4i_i2s_dai_ops,
> >         .symmetric_rates = 1,
> > @@ -1106,6 +1129,18 @@ static int sun4i_i2s_probe(struct platform_device *pdev)
> >         i2s->capture_dma_data.addr = res->start + SUN4I_I2S_FIFO_RX_REG;
> >         i2s->capture_dma_data.maxburst = 8;
> >
> > +       soc_dai = devm_kmemdup(&pdev->dev, &sun4i_i2s_dai,
> > +                              sizeof(*soc_dai), GFP_KERNEL);
> > +       if (!soc_dai) {
> > +               ret = -ENOMEM;
> > +               goto err_pm_disable;
> > +       }
> > +
> > +       if (i2s->variant->has_fmt_set_lrck_period) {
>
> This condition deserves a comment, particularly as to why you use it
> in place of having a separate quirk field to represent 32 bit support.
>
> Regards
> ChenYu
>
> > +               soc_dai->playback.formats = SUN8I_FORMATS;
> > +               soc_dai->capture.formats = SUN8I_FORMATS;
> > +       }
> > +
> >         pm_runtime_enable(&pdev->dev);
> >         if (!pm_runtime_enabled(&pdev->dev)) {
> >                 ret = sun4i_i2s_runtime_resume(&pdev->dev);
> > --
> > 2.20.1
> >

WARNING: multiple messages have this Message-ID (diff)
From: Chen-Yu Tsai <wens@csie.org>
To: Code Kipper <codekipper@gmail.com>
Cc: Linux-ALSA <alsa-devel@alsa-project.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Liam Girdwood <lgirdwood@gmail.com>,
	"Andrea Venturi \(pers\)" <be17068@iperbole.bo.it>,
	linux-sunxi <linux-sunxi@googlegroups.com>,
	Mark Brown <broonie@kernel.org>,
	Maxime Ripard <maxime.ripard@free-electrons.com>,
	linux-arm-kernel <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v3 3/9] ASoc: sun4i-i2s: Add 20, 24 and 32 bit support
Date: Sat, 22 Dec 2018 01:15:24 +0800	[thread overview]
Message-ID: <CAGb2v652h5hpujBxF5r3_g_tj2cOjULkUBhazi_5Xd6kvC2ZPw@mail.gmail.com> (raw)
In-Reply-To: <CAGb2v67LyDW6kmDrahzLYsY7q9mSJimrZ=jMO3PrPQ=mcxy0qw@mail.gmail.com>

On Sat, Dec 22, 2018 at 12:48 AM Chen-Yu Tsai <wens@csie.org> wrote:
>
> On Fri, Dec 21, 2018 at 11:21 PM <codekipper@gmail.com> wrote:
> >
> > From: Marcus Cooper <codekipper@gmail.com>
> >
> > Extend the functionality of the driver to include support of 20 and
> > 24 bits per sample for the earlier SoCs.
> >
> > Newer SoCs can also handle 32bit samples.
> >
> > Signed-off-by: Marcus Cooper <codekipper@gmail.com>
> > ---
> >  sound/soc/sunxi/sun4i-i2s.c | 41 ++++++++++++++++++++++++++++++++++---
> >  1 file changed, 38 insertions(+), 3 deletions(-)
> >
> > diff --git a/sound/soc/sunxi/sun4i-i2s.c b/sound/soc/sunxi/sun4i-i2s.c
> > index 80bf29e0cc86..adb988ae9ac5 100644
> > --- a/sound/soc/sunxi/sun4i-i2s.c
> > +++ b/sound/soc/sunxi/sun4i-i2s.c
> > @@ -399,6 +399,11 @@ static int sun4i_i2s_hw_params(struct snd_pcm_substream *substream,
> >         case 16:
> >                 width = DMA_SLAVE_BUSWIDTH_2_BYTES;
> >                 break;
> > +       case 20:
> > +       case 24:
> > +       case 32:
> > +               width = DMA_SLAVE_BUSWIDTH_4_BYTES;
> > +               break;
> >         default:
> >                 dev_err(dai->dev, "Unsupported physical sample width: %d\n",
> >                         params_physical_width(params));
> > @@ -411,7 +416,18 @@ static int sun4i_i2s_hw_params(struct snd_pcm_substream *substream,
> >                 sr = 0;
> >                 wss = 0;
> >                 break;
> > -
> > +       case 20:
> > +               sr = 1;
> > +               wss = 1;
> > +               break;
> > +       case 24:
> > +               sr = 2;
> > +               wss = 2;
> > +               break;
> > +       case 32:
> > +               sr = 4;
> > +               wss = 4;
> > +               break;
> >         default:
> >                 dev_err(dai->dev, "Unsupported sample width: %d\n",
> >                         params_width(params));
> > @@ -687,6 +703,13 @@ static int sun4i_i2s_dai_probe(struct snd_soc_dai *dai)
> >         return 0;
> >  }
> >
> > +#define SUN4I_FORMATS  (SNDRV_PCM_FMTBIT_S16_LE | \
> > +                        SNDRV_PCM_FMTBIT_S20_3LE | \
> > +                        SNDRV_PCM_FMTBIT_S24_LE)
>
> IIRC SNDRV_PCM_FMTBIT_S24_LE and SNDRV_PCM_FMTBIT_S32_LE with .sig_bits = 24
> are different things, in regards to how the sample is aligned in a 4 byte
> space. Have you checked that things actually work as expected? This was
> something that did not work using SNDRV_PCM_FMTBIT_S24_LE on sun4i-codec.

OK. I see the I2S driver is using FIFO mode 1, which expects the sample
to be in the lower portion of the 4 bytes. However it looks like you would
want SNDRV_PCM_FMTBIT_S20_LE (20 bits LSB justified in 4 bytes) instead of
SNDRV_PCM_FMTBIT_S20_3LE (20 bits LSB justified in 3 bytes).

ChenYu


> > +
> > +#define SUN8I_FORMATS  (SUN4I_FORMATS | \
> > +                        SNDRV_PCM_FMTBIT_S32_LE)
> > +
> >  static struct snd_soc_dai_driver sun4i_i2s_dai = {
> >         .probe = sun4i_i2s_dai_probe,
> >         .capture = {
> > @@ -694,14 +717,14 @@ static struct snd_soc_dai_driver sun4i_i2s_dai = {
> >                 .channels_min = 2,
> >                 .channels_max = 2,
> >                 .rates = SNDRV_PCM_RATE_8000_192000,
> > -               .formats = SNDRV_PCM_FMTBIT_S16_LE,
> > +               .formats = SUN4I_FORMATS,
> >         },
> >         .playback = {
> >                 .stream_name = "Playback",
> >                 .channels_min = 2,
> >                 .channels_max = 2,
> >                 .rates = SNDRV_PCM_RATE_8000_192000,
> > -               .formats = SNDRV_PCM_FMTBIT_S16_LE,
> > +               .formats = SUN4I_FORMATS,
> >         },
> >         .ops = &sun4i_i2s_dai_ops,
> >         .symmetric_rates = 1,
> > @@ -1106,6 +1129,18 @@ static int sun4i_i2s_probe(struct platform_device *pdev)
> >         i2s->capture_dma_data.addr = res->start + SUN4I_I2S_FIFO_RX_REG;
> >         i2s->capture_dma_data.maxburst = 8;
> >
> > +       soc_dai = devm_kmemdup(&pdev->dev, &sun4i_i2s_dai,
> > +                              sizeof(*soc_dai), GFP_KERNEL);
> > +       if (!soc_dai) {
> > +               ret = -ENOMEM;
> > +               goto err_pm_disable;
> > +       }
> > +
> > +       if (i2s->variant->has_fmt_set_lrck_period) {
>
> This condition deserves a comment, particularly as to why you use it
> in place of having a separate quirk field to represent 32 bit support.
>
> Regards
> ChenYu
>
> > +               soc_dai->playback.formats = SUN8I_FORMATS;
> > +               soc_dai->capture.formats = SUN8I_FORMATS;
> > +       }
> > +
> >         pm_runtime_enable(&pdev->dev);
> >         if (!pm_runtime_enabled(&pdev->dev)) {
> >                 ret = sun4i_i2s_runtime_resume(&pdev->dev);
> > --
> > 2.20.1
> >

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2018-12-21 17:15 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-21 15:21 [PATCH v3 0/9] ASoC: sun4i-i2s: Updates to the driver codekipper
2018-12-21 15:21 ` codekipper
2018-12-21 15:21 ` codekipper-Re5JQEeQqe8AvxtiuMwx3w
2018-12-21 15:21 ` [PATCH v3 1/9] ASoC: sun4i-i2s: Adjust regmap settings codekipper
2018-12-21 15:21   ` codekipper
2018-12-21 15:21   ` codekipper-Re5JQEeQqe8AvxtiuMwx3w
2018-12-21 16:44   ` Chen-Yu Tsai
2018-12-21 16:44     ` Chen-Yu Tsai
2018-12-21 16:44     ` Chen-Yu Tsai
2018-12-22 22:12     ` [alsa-devel] " Jonas Karlman
2018-12-22 22:12       ` Jonas Karlman
2018-12-22 22:12       ` Jonas Karlman
2018-12-23  3:16       ` [alsa-devel] " Chen-Yu Tsai
2018-12-23  3:16         ` Chen-Yu Tsai
2018-12-23  3:16         ` Chen-Yu Tsai
2019-01-09 18:49         ` Mark Brown
2019-01-09 18:49           ` Mark Brown
2019-01-09 18:49           ` Mark Brown
2019-01-09 18:46     ` Mark Brown
2019-01-09 18:46       ` Mark Brown
2019-01-09 18:46       ` Mark Brown
2018-12-21 15:21 ` [PATCH v3 2/9] ASoC: sun4i-i2s: Add regmap field to sign extend sample codekipper
2018-12-21 15:21   ` codekipper
2018-12-21 15:21   ` codekipper-Re5JQEeQqe8AvxtiuMwx3w
2018-12-21 17:06   ` Chen-Yu Tsai
2018-12-21 17:06     ` Chen-Yu Tsai
2018-12-21 17:06     ` Chen-Yu Tsai
2018-12-21 15:21 ` [PATCH v3 3/9] ASoc: sun4i-i2s: Add 20, 24 and 32 bit support codekipper
2018-12-21 15:21   ` codekipper
2018-12-21 15:21   ` codekipper-Re5JQEeQqe8AvxtiuMwx3w
2018-12-21 16:48   ` Chen-Yu Tsai
2018-12-21 16:48     ` Chen-Yu Tsai
2018-12-21 16:48     ` Chen-Yu Tsai
2018-12-21 17:15     ` Chen-Yu Tsai [this message]
2018-12-21 17:15       ` Chen-Yu Tsai
2018-12-21 17:15       ` Chen-Yu Tsai
2018-12-21 15:21 ` [PATCH v3 4/9] ASoC: sun4i-i2s: Fix offset mask codekipper
2018-12-21 15:21   ` codekipper
2018-12-21 15:21   ` codekipper-Re5JQEeQqe8AvxtiuMwx3w
2018-12-21 16:54   ` Chen-Yu Tsai
2018-12-21 16:54     ` Chen-Yu Tsai
2018-12-21 16:54     ` Chen-Yu Tsai
2019-01-09 18:50     ` Mark Brown
2019-01-09 18:50       ` Mark Brown
2019-01-09 18:50       ` Mark Brown
2018-12-21 15:21 ` [PATCH v3 5/9] ASoC: sun4i-i2s: Correct divider calculations codekipper
2018-12-21 15:21   ` codekipper
2018-12-21 15:21   ` codekipper-Re5JQEeQqe8AvxtiuMwx3w
2018-12-21 15:21 ` [PATCH v3 6/9] ASoC: sun4i-i2s: Add multi-lane functionality codekipper
2018-12-21 15:21   ` codekipper
2018-12-21 15:21   ` codekipper-Re5JQEeQqe8AvxtiuMwx3w
2018-12-21 15:21 ` [PATCH v3 7/9] ASoC: sun4i-i2s: Do not divide clocks when slave codekipper
2018-12-21 15:21   ` codekipper
2018-12-21 15:21   ` codekipper-Re5JQEeQqe8AvxtiuMwx3w
2018-12-21 15:21 ` [PATCH v3 8/9] ASoC: sun4i-i2s: Add set_tdm_slot functionality codekipper
2018-12-21 15:21   ` codekipper
2018-12-21 15:21   ` codekipper-Re5JQEeQqe8AvxtiuMwx3w
2018-12-21 15:21 ` [PATCH v3 9/9] ASoC: sun4i-i2s: Add multichannel functionality codekipper
2018-12-21 15:21   ` codekipper
2018-12-21 15:21   ` codekipper-Re5JQEeQqe8AvxtiuMwx3w

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=CAGb2v652h5hpujBxF5r3_g_tj2cOjULkUBhazi_5Xd6kvC2ZPw@mail.gmail.com \
    --to=wens@csie.org \
    --cc=alsa-devel@alsa-project.org \
    --cc=be17068@iperbole.bo.it \
    --cc=broonie@kernel.org \
    --cc=codekipper@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=maxime.ripard@free-electrons.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.