All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Clément Péron" <peron.clem@gmail.com>
To: Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>, Rob Herring <robh+dt@kernel.org>,
	Maxime Ripard <mripard@kernel.org>, Chen-Yu Tsai <wens@csie.org>,
	Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>
Cc: Linux-ALSA <alsa-devel@alsa-project.org>,
	devicetree <devicetree@vger.kernel.org>,
	linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Marcus Cooper <codekipper@gmail.com>
Subject: Re: [PATCH 4/7] ASoC: sun4i-i2s: Set sign extend sample
Date: Sat, 18 Apr 2020 23:30:16 +0200	[thread overview]
Message-ID: <CAJiuCcdH0=wdKfmAquNfv=0AT_S8qx0Nasbb4m6itWXjUyw8_g@mail.gmail.com> (raw)
In-Reply-To: <20200418143923.19608-5-peron.clem@gmail.com>

Hi,

On Sat, 18 Apr 2020 at 16:39, Clément Péron <peron.clem@gmail.com> wrote:
>
> From: Marcus Cooper <codekipper@gmail.com>
>
> On the newer SoCs such as the H3 and A64 this is set by default
> to transfer a 0 after each sample in each slot. However the A10
> and A20 SoCs that this driver was developed on had a default
> setting where it padded the audio gain with zeros.
>
> This isn't a problem whilst we have only support for 16bit audio
> but with larger sample resolution rates in the pipeline then SEXT
> bits should be cleared so that they also pad at the LSB. Without
> this the audio gets distorted.
>
> Signed-off-by: Marcus Cooper <codekipper@gmail.com>
> Signed-off-by: Clément Péron <peron.clem@gmail.com>
> ---
>  sound/soc/sunxi/sun4i-i2s.c | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
>
> diff --git a/sound/soc/sunxi/sun4i-i2s.c b/sound/soc/sunxi/sun4i-i2s.c
> index a23c9f2a3f8c..e5f00be8cdcf 100644
> --- a/sound/soc/sunxi/sun4i-i2s.c
> +++ b/sound/soc/sunxi/sun4i-i2s.c
> @@ -663,6 +663,12 @@ static int sun4i_i2s_set_soc_fmt(const struct sun4i_i2s *i2s,
>         }
>         regmap_update_bits(i2s->regmap, SUN4I_I2S_CTRL_REG,
>                            SUN4I_I2S_CTRL_MODE_MASK, val);
> +
> +       /* Set sign extension to pad out LSB with 0 */
> +       regmap_update_bits(i2s->regmap, SUN4I_I2S_FMT1_REG,
> +                          SUN4I_I2S_FMT1_REG_SEXT_MASK,
> +                          SUN4I_I2S_FMT1_REG_SEXT(0));

My apologies, I made a mistake during the rebase between old Marcus
Cooper patches and new one.
And sadly I lost the defines required here without noticing it.

Will send a v2.

Sorry for that,
Clement

> +
>         return 0;
>  }
>
> @@ -765,6 +771,11 @@ static int sun8i_i2s_set_soc_fmt(const struct sun4i_i2s *i2s,
>                            SUN8I_I2S_CTRL_BCLK_OUT | SUN8I_I2S_CTRL_LRCK_OUT,
>                            val);
>
> +       /* Set sign extension to pad out LSB with 0 */
> +       regmap_update_bits(i2s->regmap, SUN4I_I2S_FMT1_REG,
> +                          SUN8I_I2S_FMT1_REG_SEXT_MASK,
> +                          SUN8I_I2S_FMT1_REG_SEXT(0));
> +
>         return 0;
>  }
>
> @@ -867,6 +878,11 @@ static int sun50i_i2s_set_soc_fmt(const struct sun4i_i2s *i2s,
>                            SUN8I_I2S_CTRL_BCLK_OUT | SUN8I_I2S_CTRL_LRCK_OUT,
>                            val);
>
> +       /* Set sign extension to pad out LSB with 0 */
> +       regmap_update_bits(i2s->regmap, SUN4I_I2S_FMT1_REG,
> +                          SUN8I_I2S_FMT1_REG_SEXT_MASK,
> +                          SUN8I_I2S_FMT1_REG_SEXT(0));
> +
>         return 0;
>  }
>
> --
> 2.20.1
>

WARNING: multiple messages have this Message-ID (diff)
From: "Clément Péron" <peron.clem@gmail.com>
To: Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	 Rob Herring <robh+dt@kernel.org>,
	Maxime Ripard <mripard@kernel.org>, Chen-Yu Tsai <wens@csie.org>,
	 Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>
Cc: devicetree <devicetree@vger.kernel.org>,
	Linux-ALSA <alsa-devel@alsa-project.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
	Marcus Cooper <codekipper@gmail.com>
Subject: Re: [PATCH 4/7] ASoC: sun4i-i2s: Set sign extend sample
Date: Sat, 18 Apr 2020 23:30:16 +0200	[thread overview]
Message-ID: <CAJiuCcdH0=wdKfmAquNfv=0AT_S8qx0Nasbb4m6itWXjUyw8_g@mail.gmail.com> (raw)
In-Reply-To: <20200418143923.19608-5-peron.clem@gmail.com>

Hi,

On Sat, 18 Apr 2020 at 16:39, Clément Péron <peron.clem@gmail.com> wrote:
>
> From: Marcus Cooper <codekipper@gmail.com>
>
> On the newer SoCs such as the H3 and A64 this is set by default
> to transfer a 0 after each sample in each slot. However the A10
> and A20 SoCs that this driver was developed on had a default
> setting where it padded the audio gain with zeros.
>
> This isn't a problem whilst we have only support for 16bit audio
> but with larger sample resolution rates in the pipeline then SEXT
> bits should be cleared so that they also pad at the LSB. Without
> this the audio gets distorted.
>
> Signed-off-by: Marcus Cooper <codekipper@gmail.com>
> Signed-off-by: Clément Péron <peron.clem@gmail.com>
> ---
>  sound/soc/sunxi/sun4i-i2s.c | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
>
> diff --git a/sound/soc/sunxi/sun4i-i2s.c b/sound/soc/sunxi/sun4i-i2s.c
> index a23c9f2a3f8c..e5f00be8cdcf 100644
> --- a/sound/soc/sunxi/sun4i-i2s.c
> +++ b/sound/soc/sunxi/sun4i-i2s.c
> @@ -663,6 +663,12 @@ static int sun4i_i2s_set_soc_fmt(const struct sun4i_i2s *i2s,
>         }
>         regmap_update_bits(i2s->regmap, SUN4I_I2S_CTRL_REG,
>                            SUN4I_I2S_CTRL_MODE_MASK, val);
> +
> +       /* Set sign extension to pad out LSB with 0 */
> +       regmap_update_bits(i2s->regmap, SUN4I_I2S_FMT1_REG,
> +                          SUN4I_I2S_FMT1_REG_SEXT_MASK,
> +                          SUN4I_I2S_FMT1_REG_SEXT(0));

My apologies, I made a mistake during the rebase between old Marcus
Cooper patches and new one.
And sadly I lost the defines required here without noticing it.

Will send a v2.

Sorry for that,
Clement

> +
>         return 0;
>  }
>
> @@ -765,6 +771,11 @@ static int sun8i_i2s_set_soc_fmt(const struct sun4i_i2s *i2s,
>                            SUN8I_I2S_CTRL_BCLK_OUT | SUN8I_I2S_CTRL_LRCK_OUT,
>                            val);
>
> +       /* Set sign extension to pad out LSB with 0 */
> +       regmap_update_bits(i2s->regmap, SUN4I_I2S_FMT1_REG,
> +                          SUN8I_I2S_FMT1_REG_SEXT_MASK,
> +                          SUN8I_I2S_FMT1_REG_SEXT(0));
> +
>         return 0;
>  }
>
> @@ -867,6 +878,11 @@ static int sun50i_i2s_set_soc_fmt(const struct sun4i_i2s *i2s,
>                            SUN8I_I2S_CTRL_BCLK_OUT | SUN8I_I2S_CTRL_LRCK_OUT,
>                            val);
>
> +       /* Set sign extension to pad out LSB with 0 */
> +       regmap_update_bits(i2s->regmap, SUN4I_I2S_FMT1_REG,
> +                          SUN8I_I2S_FMT1_REG_SEXT_MASK,
> +                          SUN8I_I2S_FMT1_REG_SEXT(0));
> +
>         return 0;
>  }
>
> --
> 2.20.1
>

WARNING: multiple messages have this Message-ID (diff)
From: "Clément Péron" <peron.clem@gmail.com>
To: Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	 Rob Herring <robh+dt@kernel.org>,
	Maxime Ripard <mripard@kernel.org>, Chen-Yu Tsai <wens@csie.org>,
	 Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>
Cc: devicetree <devicetree@vger.kernel.org>,
	Linux-ALSA <alsa-devel@alsa-project.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
	Marcus Cooper <codekipper@gmail.com>
Subject: Re: [PATCH 4/7] ASoC: sun4i-i2s: Set sign extend sample
Date: Sat, 18 Apr 2020 23:30:16 +0200	[thread overview]
Message-ID: <CAJiuCcdH0=wdKfmAquNfv=0AT_S8qx0Nasbb4m6itWXjUyw8_g@mail.gmail.com> (raw)
In-Reply-To: <20200418143923.19608-5-peron.clem@gmail.com>

Hi,

On Sat, 18 Apr 2020 at 16:39, Clément Péron <peron.clem@gmail.com> wrote:
>
> From: Marcus Cooper <codekipper@gmail.com>
>
> On the newer SoCs such as the H3 and A64 this is set by default
> to transfer a 0 after each sample in each slot. However the A10
> and A20 SoCs that this driver was developed on had a default
> setting where it padded the audio gain with zeros.
>
> This isn't a problem whilst we have only support for 16bit audio
> but with larger sample resolution rates in the pipeline then SEXT
> bits should be cleared so that they also pad at the LSB. Without
> this the audio gets distorted.
>
> Signed-off-by: Marcus Cooper <codekipper@gmail.com>
> Signed-off-by: Clément Péron <peron.clem@gmail.com>
> ---
>  sound/soc/sunxi/sun4i-i2s.c | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
>
> diff --git a/sound/soc/sunxi/sun4i-i2s.c b/sound/soc/sunxi/sun4i-i2s.c
> index a23c9f2a3f8c..e5f00be8cdcf 100644
> --- a/sound/soc/sunxi/sun4i-i2s.c
> +++ b/sound/soc/sunxi/sun4i-i2s.c
> @@ -663,6 +663,12 @@ static int sun4i_i2s_set_soc_fmt(const struct sun4i_i2s *i2s,
>         }
>         regmap_update_bits(i2s->regmap, SUN4I_I2S_CTRL_REG,
>                            SUN4I_I2S_CTRL_MODE_MASK, val);
> +
> +       /* Set sign extension to pad out LSB with 0 */
> +       regmap_update_bits(i2s->regmap, SUN4I_I2S_FMT1_REG,
> +                          SUN4I_I2S_FMT1_REG_SEXT_MASK,
> +                          SUN4I_I2S_FMT1_REG_SEXT(0));

My apologies, I made a mistake during the rebase between old Marcus
Cooper patches and new one.
And sadly I lost the defines required here without noticing it.

Will send a v2.

Sorry for that,
Clement

> +
>         return 0;
>  }
>
> @@ -765,6 +771,11 @@ static int sun8i_i2s_set_soc_fmt(const struct sun4i_i2s *i2s,
>                            SUN8I_I2S_CTRL_BCLK_OUT | SUN8I_I2S_CTRL_LRCK_OUT,
>                            val);
>
> +       /* Set sign extension to pad out LSB with 0 */
> +       regmap_update_bits(i2s->regmap, SUN4I_I2S_FMT1_REG,
> +                          SUN8I_I2S_FMT1_REG_SEXT_MASK,
> +                          SUN8I_I2S_FMT1_REG_SEXT(0));
> +
>         return 0;
>  }
>
> @@ -867,6 +878,11 @@ static int sun50i_i2s_set_soc_fmt(const struct sun4i_i2s *i2s,
>                            SUN8I_I2S_CTRL_BCLK_OUT | SUN8I_I2S_CTRL_LRCK_OUT,
>                            val);
>
> +       /* Set sign extension to pad out LSB with 0 */
> +       regmap_update_bits(i2s->regmap, SUN4I_I2S_FMT1_REG,
> +                          SUN8I_I2S_FMT1_REG_SEXT_MASK,
> +                          SUN8I_I2S_FMT1_REG_SEXT(0));
> +
>         return 0;
>  }
>
> --
> 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:[~2020-04-18 21:30 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-18 14:39 [PATCH 0/7] Add H6 I2S support Clément Péron
2020-04-18 14:39 ` Clément Péron
2020-04-18 14:39 ` Clément Péron
2020-04-18 14:39 ` [PATCH 1/7] ASoC: sun4i-i2s: Adjust LRCLK width Clément Péron
2020-04-18 14:39   ` Clément Péron
2020-04-18 14:39   ` Clément Péron
2020-04-18 14:39 ` [PATCH 2/7] dt-bindings: ASoC: sun4i-i2s: Add H6 compatible Clément Péron
2020-04-18 14:39   ` Clément Péron
2020-04-18 14:39   ` Clément Péron
2020-04-18 14:39 ` [PATCH 3/7] ASoC: sun4i-i2s: Add support for H6 I2S Clément Péron
2020-04-18 14:39   ` Clément Péron
2020-04-18 14:39   ` Clément Péron
2020-04-18 14:39 ` [PATCH 4/7] ASoC: sun4i-i2s: Set sign extend sample Clément Péron
2020-04-18 14:39   ` Clément Péron
2020-04-18 14:39   ` Clément Péron
2020-04-18 21:30   ` Clément Péron [this message]
2020-04-18 21:30     ` Clément Péron
2020-04-18 21:30     ` Clément Péron
2020-04-18 14:39 ` [PATCH 5/7] ASoc: sun4i-i2s: Add 20 and 24 bit support Clément Péron
2020-04-18 14:39   ` Clément Péron
2020-04-18 14:39   ` Clément Péron
2020-04-18 14:39 ` [PATCH 6/7] ASoC: sun4i-i2s: Adjust regmap settings Clément Péron
2020-04-18 14:39   ` Clément Péron
2020-04-18 14:39   ` Clément Péron
2020-04-18 14:39 ` [PATCH 7/7] arm64: dts: sun50i-h6: Add HDMI audio to H6 DTSI Clément Péron
2020-04-18 14:39   ` Clément Péron
2020-04-18 14:39   ` Clément Péron

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='CAJiuCcdH0=wdKfmAquNfv=0AT_S8qx0Nasbb4m6itWXjUyw8_g@mail.gmail.com' \
    --to=peron.clem@gmail.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=codekipper@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mripard@kernel.org \
    --cc=perex@perex.cz \
    --cc=robh+dt@kernel.org \
    --cc=tiwai@suse.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 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.