@@ -326,7 +326,6 @@ static int rockchip_i2s_hw_params(struct snd_pcm_substream *substream,
val |= I2S_CHN_4;
break;
case 2:
- case 1:
val |= I2S_CHN_2;
break;
default:
@@ -459,7 +458,7 @@ static struct snd_soc_dai_driver rockchip_i2s_dai = {
},
.capture = {
.stream_name = "Capture",
- .channels_min = 1,
+ .channels_min = 2,
.channels_max = 2,
.rates = SNDRV_PCM_RATE_8000_192000,
.formats = (SNDRV_PCM_FMTBIT_S8 |
@@ -659,7 +658,7 @@ static int rockchip_i2s_probe(struct platform_device *pdev)
}
if (!of_property_read_u32(node, "rockchip,capture-channels", &val)) {
- if (val >= 1 && val <= 8)
+ if (val >= 2 && val <= 8)
soc_dai->capture.channels_max = val;
}
This reverts commit db51707b9c9aeedd310ebce60f15d5bb006567e0. Commit db51707b9c9a ("ASoC: rockchip: i2s: Support mono capture") adds support of mono capture to rockchip_i2s_dai. However, I2S controller is still generating a 2-channel stream because it only supports even number of channels. When user space reads the data and assumes it is a mono stream, the rate will be slowed down. Revert the change so the DAI no longer claims that mono capture is supported. Fixes: db51707b9c9a ("ASoC: rockchip: i2s: Support mono capture") Signed-off-by: Cheng-Yi Chiang <cychiang@chromium.org> --- sound/soc/rockchip/rockchip_i2s.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)