Message ID | 06c3e420b9fabfbec67becc2f9de009ce79a1d4b.1555669068.git.shengjiu.wang@nxp.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Support more sample rate in asrc | expand |
On Fri, Apr 19, 2019 at 10:23:50AM +0000, S.j. Wang wrote: > When the output sample rate is [8kHz, 30kHz], the limitation > of the supported ratio range is (1/24, 8). In the driver > we use (8kHz, 30kHz) instead of [8kHz, 30kHz]. > So this patch is to fix this issue and the potential rounding > issue with divider. > > Fixes: fff6e03c7b65 ("ASoC: fsl_asrc: add support for 8-30kHz > output sample rate") > Cc: <stable@vger.kernel.org> > Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com> > --- > sound/soc/fsl/fsl_asrc.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/sound/soc/fsl/fsl_asrc.c b/sound/soc/fsl/fsl_asrc.c > index 0b937924d2e4..5b8adc7fb117 100644 > --- a/sound/soc/fsl/fsl_asrc.c > +++ b/sound/soc/fsl/fsl_asrc.c > @@ -282,10 +282,10 @@ static int fsl_asrc_config_pair(struct fsl_asrc_pair *pair) > return -EINVAL; > } > > - if ((outrate > 8000 && outrate < 30000) && > - (outrate/inrate > 24 || inrate/outrate > 8)) { > - pair_err("exceed supported ratio range [1/24, 8] for \ > - inrate/outrate: %d/%d\n", inrate, outrate); > + if ((outrate >= 8000 && outrate <= 30000) && > + (outrate > 24 * inrate || inrate > 8 * outrate)) { > + pair_err("exceed supported ratio range (1/24, 8) for inrate/outrate: %d/%d\n", Using one of the conditions: if (inrate > 8 * outrate) pair_err(); This means: if (inrate <= 8 * outrate) /* Everything is fine */ So the supported ratio range is still [1/24, 8] right? Thanks
Hi > > > On Fri, Apr 19, 2019 at 10:23:50AM +0000, S.j. Wang wrote: > > When the output sample rate is [8kHz, 30kHz], the limitation of the > > supported ratio range is (1/24, 8). In the driver we use (8kHz, 30kHz) > > instead of [8kHz, 30kHz]. > > So this patch is to fix this issue and the potential rounding issue > > with divider. > > > > Fixes: fff6e03c7b65 ("ASoC: fsl_asrc: add support for 8-30kHz output > > sample rate") > > Cc: <stable@vger.kernel.org> > > Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com> > > --- > > sound/soc/fsl/fsl_asrc.c | 8 ++++---- > > 1 file changed, 4 insertions(+), 4 deletions(-) > > > > diff --git a/sound/soc/fsl/fsl_asrc.c b/sound/soc/fsl/fsl_asrc.c index > > 0b937924d2e4..5b8adc7fb117 100644 > > --- a/sound/soc/fsl/fsl_asrc.c > > +++ b/sound/soc/fsl/fsl_asrc.c > > @@ -282,10 +282,10 @@ static int fsl_asrc_config_pair(struct > fsl_asrc_pair *pair) > > return -EINVAL; > > } > > > > - if ((outrate > 8000 && outrate < 30000) && > > - (outrate/inrate > 24 || inrate/outrate > 8)) { > > - pair_err("exceed supported ratio range [1/24, 8] for \ > > - inrate/outrate: %d/%d\n", inrate, outrate); > > + if ((outrate >= 8000 && outrate <= 30000) && > > + (outrate > 24 * inrate || inrate > 8 * outrate)) { > > + pair_err("exceed supported ratio range (1/24, 8) for > > + inrate/outrate: %d/%d\n", > > Using one of the conditions: > if (inrate > 8 * outrate) > pair_err(); > > This means: > if (inrate <= 8 * outrate) > /* Everything is fine */ > > So the supported ratio range is still [1/24, 8] right? > Oh, yes, should still [1/24, 8]. > Thanks
diff --git a/sound/soc/fsl/fsl_asrc.c b/sound/soc/fsl/fsl_asrc.c index 0b937924d2e4..5b8adc7fb117 100644 --- a/sound/soc/fsl/fsl_asrc.c +++ b/sound/soc/fsl/fsl_asrc.c @@ -282,10 +282,10 @@ static int fsl_asrc_config_pair(struct fsl_asrc_pair *pair) return -EINVAL; } - if ((outrate > 8000 && outrate < 30000) && - (outrate/inrate > 24 || inrate/outrate > 8)) { - pair_err("exceed supported ratio range [1/24, 8] for \ - inrate/outrate: %d/%d\n", inrate, outrate); + if ((outrate >= 8000 && outrate <= 30000) && + (outrate > 24 * inrate || inrate > 8 * outrate)) { + pair_err("exceed supported ratio range (1/24, 8) for inrate/outrate: %d/%d\n", + inrate, outrate); return -EINVAL; }
When the output sample rate is [8kHz, 30kHz], the limitation of the supported ratio range is (1/24, 8). In the driver we use (8kHz, 30kHz) instead of [8kHz, 30kHz]. So this patch is to fix this issue and the potential rounding issue with divider. Fixes: fff6e03c7b65 ("ASoC: fsl_asrc: add support for 8-30kHz output sample rate") Cc: <stable@vger.kernel.org> Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com> --- sound/soc/fsl/fsl_asrc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)