Re: [PATCH V3 1/2] ASoC: fsl_asrc: replace the process_option table with function

From: Nicolin Chen
Date: Thu Apr 18 2019 - 05:05:43 EST


On Thu, Apr 18, 2019 at 08:50:48AM +0000, S.j. Wang wrote:
> > And this is according to IMX6DQRM:
> > Limited support for the case when output sampling rates is
> > between 8kHz and 30kHz. The limitation is the supported ratio
> > (Fsin/Fsout) range as between 1/24 to 8
> >
> > This should cover your 8.125 condition already, even if having an outrate
> > range between [8KHz, 30KHz] check, since an outrate above 30KHz will not
> > have an inrate bigger than 8.125 times of it, given the maximum input rate
> > is 192KHz.
> >
> > So I think that we can just drop that 8.125 condition from your change and
> > there's no need to error out any more.
> >
> No, if outrate=8kHz, inrate > 88.2kHz, these cases are not supported.
> This is not covered by
>
> if ((outrate > 8000 && outrate < 30000) &&
> (outrate/inrate > 24 || inrate/outrate > 8)) {

Good catch. The range should be [8KHz, 30KHz] vs. (8KHz, 32KHz)
in the code. Then I think the fix should be at both lines:

- if ((outrate > 8000 && outrate < 30000) &&
- (outrate/inrate > 24 || inrate/outrate > 8)) {
+ if ((outrate >= 8000 && outrate =< 30000) &&
+ (outrate > 24 * inrate || inrate > 8 * outrate)) {

Overall, I think we should fix this instead of adding an extra
one, since it is very likely saying the same thing.