2019-11-01 06:36:37

by Shengjiu Wang

[permalink] [raw]
Subject: [PATCH] ASoC: wm8524: Add support S32_LE

Allow 32bit sample with this codec.

Signed-off-by: Shengjiu Wang <[email protected]>
---
sound/soc/codecs/wm8524.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/sound/soc/codecs/wm8524.c b/sound/soc/codecs/wm8524.c
index 91e3d1570c45..4e9ab542f648 100644
--- a/sound/soc/codecs/wm8524.c
+++ b/sound/soc/codecs/wm8524.c
@@ -159,7 +159,9 @@ static int wm8524_mute_stream(struct snd_soc_dai *dai, int mute, int stream)

#define WM8524_RATES SNDRV_PCM_RATE_8000_192000

-#define WM8524_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE)
+#define WM8524_FORMATS (SNDRV_PCM_FMTBIT_S16_LE |\
+ SNDRV_PCM_FMTBIT_S24_LE |\
+ SNDRV_PCM_FMTBIT_S32_LE)

static const struct snd_soc_dai_ops wm8524_dai_ops = {
.startup = wm8524_startup,
--
2.21.0


2019-11-04 10:27:13

by Charles Keepax

[permalink] [raw]
Subject: Re: [PATCH] ASoC: wm8524: Add support S32_LE

On Fri, Nov 01, 2019 at 06:34:54AM +0000, S.j. Wang wrote:
> Allow 32bit sample with this codec.
>
> Signed-off-by: Shengjiu Wang <[email protected]>
> ---
> sound/soc/codecs/wm8524.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/sound/soc/codecs/wm8524.c b/sound/soc/codecs/wm8524.c
> index 91e3d1570c45..4e9ab542f648 100644
> --- a/sound/soc/codecs/wm8524.c
> +++ b/sound/soc/codecs/wm8524.c
> @@ -159,7 +159,9 @@ static int wm8524_mute_stream(struct snd_soc_dai *dai, int mute, int stream)
>
> #define WM8524_RATES SNDRV_PCM_RATE_8000_192000
>
> -#define WM8524_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE)
> +#define WM8524_FORMATS (SNDRV_PCM_FMTBIT_S16_LE |\
> + SNDRV_PCM_FMTBIT_S24_LE |\
> + SNDRV_PCM_FMTBIT_S32_LE)
>

The device doesn't actually support 32bit though, I guess it will
ignore the extra LSBs so it should work. But is that really
supporting 32 bit?

Thanks,
Charles

2019-11-05 03:27:02

by Shengjiu Wang

[permalink] [raw]
Subject: Re: [PATCH] ASoC: wm8524: Add support S32_LE

Hi

> On Fri, Nov 01, 2019 at 06:34:54AM +0000, S.j. Wang wrote:
> > Allow 32bit sample with this codec.
> >
> > Signed-off-by: Shengjiu Wang <[email protected]>
> > ---
> > sound/soc/codecs/wm8524.c | 4 +++-
> > 1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/sound/soc/codecs/wm8524.c b/sound/soc/codecs/wm8524.c
> > index 91e3d1570c45..4e9ab542f648 100644
> > --- a/sound/soc/codecs/wm8524.c
> > +++ b/sound/soc/codecs/wm8524.c
> > @@ -159,7 +159,9 @@ static int wm8524_mute_stream(struct
> snd_soc_dai
> > *dai, int mute, int stream)
> >
> > #define WM8524_RATES SNDRV_PCM_RATE_8000_192000
> >
> > -#define WM8524_FORMATS (SNDRV_PCM_FMTBIT_S16_LE |
> > SNDRV_PCM_FMTBIT_S24_LE)
> > +#define WM8524_FORMATS (SNDRV_PCM_FMTBIT_S16_LE |\
> > + SNDRV_PCM_FMTBIT_S24_LE |\
> > + SNDRV_PCM_FMTBIT_S32_LE)
> >
>
> The device doesn't actually support 32bit though, I guess it will ignore the
> extra LSBs so it should work. But is that really supporting 32 bit?
>
I also think it may ignore the extra LSBs just as you said, but don't really
Support 32bit. This change is to make driver accept S32_LE format.

Best regards
Wang shengjiu