Message ID | 5811f393692a7668564fd4b9ef5708c1e3db8dc0.1568861098.git.shengjiu.wang@nxp.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | update supported sample format | expand |
On Thu, Sep 19, 2019 at 08:11:40PM +0800, Shengjiu Wang wrote: > The ASRC support 24bit/16bit/8bit input width, which is > data width, not slot width. > > For the S20_3LE format, the data with is 20bit, slot width > is 24bit, if we set ASRMCR1n.IWD to be 24bits, the result > is the volume is lower than expected, it likes 24bit data > right shift 4 bits > > So replace S20_3LE with S24_3LE in supported list and add S8 > format in TX supported list > > Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com> Acked-by: Nicolin Chen <nicoleotsuka@gmail.com> > --- > sound/soc/fsl/fsl_asrc.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/sound/soc/fsl/fsl_asrc.c b/sound/soc/fsl/fsl_asrc.c > index 4d3804a1ea55..584badf956d2 100644 > --- a/sound/soc/fsl/fsl_asrc.c > +++ b/sound/soc/fsl/fsl_asrc.c > @@ -624,7 +624,7 @@ static int fsl_asrc_dai_probe(struct snd_soc_dai *dai) > > #define FSL_ASRC_FORMATS (SNDRV_PCM_FMTBIT_S24_LE | \ > SNDRV_PCM_FMTBIT_S16_LE | \ > - SNDRV_PCM_FMTBIT_S20_3LE) > + SNDRV_PCM_FMTBIT_S24_3LE) > > static struct snd_soc_dai_driver fsl_asrc_dai = { > .probe = fsl_asrc_dai_probe, > @@ -635,7 +635,8 @@ static struct snd_soc_dai_driver fsl_asrc_dai = { > .rate_min = 5512, > .rate_max = 192000, > .rates = SNDRV_PCM_RATE_KNOT, > - .formats = FSL_ASRC_FORMATS, > + .formats = FSL_ASRC_FORMATS | > + SNDRV_PCM_FMTBIT_S8, > }, > .capture = { > .stream_name = "ASRC-Capture", > -- > 2.21.0 >
diff --git a/sound/soc/fsl/fsl_asrc.c b/sound/soc/fsl/fsl_asrc.c index 4d3804a1ea55..584badf956d2 100644 --- a/sound/soc/fsl/fsl_asrc.c +++ b/sound/soc/fsl/fsl_asrc.c @@ -624,7 +624,7 @@ static int fsl_asrc_dai_probe(struct snd_soc_dai *dai) #define FSL_ASRC_FORMATS (SNDRV_PCM_FMTBIT_S24_LE | \ SNDRV_PCM_FMTBIT_S16_LE | \ - SNDRV_PCM_FMTBIT_S20_3LE) + SNDRV_PCM_FMTBIT_S24_3LE) static struct snd_soc_dai_driver fsl_asrc_dai = { .probe = fsl_asrc_dai_probe, @@ -635,7 +635,8 @@ static struct snd_soc_dai_driver fsl_asrc_dai = { .rate_min = 5512, .rate_max = 192000, .rates = SNDRV_PCM_RATE_KNOT, - .formats = FSL_ASRC_FORMATS, + .formats = FSL_ASRC_FORMATS | + SNDRV_PCM_FMTBIT_S8, }, .capture = { .stream_name = "ASRC-Capture",
The ASRC support 24bit/16bit/8bit input width, which is data width, not slot width. For the S20_3LE format, the data with is 20bit, slot width is 24bit, if we set ASRMCR1n.IWD to be 24bits, the result is the volume is lower than expected, it likes 24bit data right shift 4 bits So replace S20_3LE with S24_3LE in supported list and add S8 format in TX supported list Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com> --- sound/soc/fsl/fsl_asrc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)