[PATCH v2 0/3] Support more sample rates, let the rates normal work

From: Caesar Wang
Date: Fri Nov 06 2015 - 06:38:43 EST

That's seem the moment rockchip-codec driver other than 44100 and 48000
do not work.
Says the (max98090, rt5640).

As the chromeos reported

For detail:
In that bug we want to add 32000 to
sound/soc/rockchip/rockchip_max98090.c rk_aif1_hw_params.
However that does not work.

Previously, in
https://chromium-review.googlesource.com/#/c/268398/ , rate
8000, 1600, 96000 were added.
However, those rates do not work. I got the same audio as 48000
when I run

aplay -D hw:0,0
/usr/local/autotest/cros/audio/fix_440_16_half.raw --rate 8000
-f S16_LE -c2
aplay -D hw:0,0
/usr/local/autotest/cros/audio/fix_440_16_half.raw --rate 16000
-f S16_LE -c2
aplay -D hw:0,0
/usr/local/autotest/cros/audio/fix_440_16_half.raw --rate 96000
-f S16_LE -c2

They all sound identical to
aplay -D hw:0,0
/usr/local/autotest/cros/audio/fix_440_16_half.raw --rate 48000
-f S16_LE -c2

Also, recording using
aplay -D hw:0,0 /usr/local/test.raw --rate 96000 -f S16_LE -c2
and examine the output we see it was recording using 48000.

Okay, let's add this series patchs to fix this issue.

arecord -D hw:0 -f S16_LE -c 2 --rate [8000-96000] -d 5 foobar.wav
aplay -D hw:0 foobar.wav
Tested on veyron devices.

Changes in v2:
- move the set clock divider into rockchip i2s.
- add the 64000 sample rates for max98090.
- add the 64000 sample rate for rt5645.

Caesar Wang (3):
ASoC: rockchip: i2s: change bclk and lrck according to sample rates
ASoC: rockchip-max98090: Allow more sample rates
ASoC: rockchip-rt5645: Allow more sample rates

sound/soc/rockchip/rockchip_i2s.c | 23 +++++++++++++++++++++++
sound/soc/rockchip/rockchip_max98090.c | 6 ++++++
sound/soc/rockchip/rockchip_rt5645.c | 6 ++++++
3 files changed, 35 insertions(+)


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/