The latest asrc's channel bits is 4 bit, the old asrc's channel bits is 3. For the old version asrc, channel should be a even number. Signed-off-by: Zidan Wang <zidan.wang@xxxxxxxxxxxxx> --- v1->v2: 1. add an extra else if for the new condition. sound/soc/fsl/fsl_asrc.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sound/soc/fsl/fsl_asrc.c b/sound/soc/fsl/fsl_asrc.c index be78dc9..d7d81cf 100644 --- a/sound/soc/fsl/fsl_asrc.c +++ b/sound/soc/fsl/fsl_asrc.c @@ -116,6 +116,9 @@ static int fsl_asrc_request_pair(int channels, struct fsl_asrc_pair *pair) } else if (asrc_priv->channel_avail < channels) { dev_err(dev, "can't afford required channels: %d\n", channels); ret = -EINVAL; + } else if (asrc_priv->channel_bits < 4 && channels % 2 != 0) { + dev_err(dev, "old version asrc can't support an odd channel number"); + ret = -EINVAL; } else { asrc_priv->channel_avail -= channels; asrc_priv->pair[index] = pair; -- 1.9.1 _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel