kernel-aes67/drivers/clk/rockchip
Ondrej Jirman 1361d75503 clk: rockchip: rk3399: Allow to set rate of clk_i2s0_frac's parent
Otherwise when when clk_i2s0 muxes to clk_i2s0_div which requires
setting high divider value on clk_i2s0_div, and then muxes back to
clk_i2s0_frac, clk_i2s0_frac would have no way to change the
clk_i2s0_div's divider ratio back to 1 so that it can satisfy the
condition for m/n > 20 for fractional division to work correctly.

Bug is reproducible by playing 44.1k audio, then 48k audio, and then
44.1k audio again. This results in clk_i2s0_div being set to 49 and
clk_i2s0_frac not being able to cope with such a low input clock rate
and audio playing extremely slowly.

The identical issue is on i2s1 and i2s2 clocks, too.

Signed-off-by: Ondrej Jirman <megi@xff.cz>
Link: https://lore.kernel.org/r/20240217193439.1762213-1-megi@xff.cz
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2024-02-27 23:45:53 +01:00
..
Kconfig
Makefile
clk-cpu.c
clk-ddr.c
clk-half-divider.c
clk-inverter.c
clk-mmc-phase.c
clk-muxgrf.c
clk-pll.c
clk-px30.c
clk-rk3036.c
clk-rk3128.c
clk-rk3188.c
clk-rk3228.c
clk-rk3288.c
clk-rk3308.c
clk-rk3328.c
clk-rk3368.c
clk-rk3399.c clk: rockchip: rk3399: Allow to set rate of clk_i2s0_frac's parent 2024-02-27 23:45:53 +01:00
clk-rk3568.c
clk-rk3588.c
clk-rv1108.c
clk-rv1126.c
clk.c
clk.h
rst-rk3588.c
softrst.c