Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

clk: rockchip: fix rk3288 cpuclk core dividers

Commit 0e5bdb3f9fa5 (clk: rockchip: switch to using the new cpuclk type
for armclk) didn't take into account that the divider used on rk3288
are of the (n+1) type.

The rk3066 and rk3188 socs use more complex divider types making it
necessary for the list-elements to be the real register-values to write.

Therefore reduce divider values in the table accordingly so that they
really are the values that should be written to the registers and match
the dividers actually specified for the rk3288.

Reported-by: Sonny Rao <sonnyrao@chromium.org>
Fixes: 0e5bdb3f9fa5 ("clk: rockchip: switch to using the new cpuclk type for armclk")
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Reviewed-by: Doug Anderson <dianders@chromium.org>
Cc: stable@vger.kernel.org

+14 -14
+14 -14
drivers/clk/rockchip/clk-rk3288.c
··· 145 145 } 146 146 147 147 static struct rockchip_cpuclk_rate_table rk3288_cpuclk_rates[] __initdata = { 148 - RK3288_CPUCLK_RATE(1800000000, 2, 4, 2, 4, 4), 149 - RK3288_CPUCLK_RATE(1704000000, 2, 4, 2, 4, 4), 150 - RK3288_CPUCLK_RATE(1608000000, 2, 4, 2, 4, 4), 151 - RK3288_CPUCLK_RATE(1512000000, 2, 4, 2, 4, 4), 152 - RK3288_CPUCLK_RATE(1416000000, 2, 4, 2, 4, 4), 153 - RK3288_CPUCLK_RATE(1200000000, 2, 4, 2, 4, 4), 154 - RK3288_CPUCLK_RATE(1008000000, 2, 4, 2, 4, 4), 155 - RK3288_CPUCLK_RATE( 816000000, 2, 4, 2, 4, 4), 156 - RK3288_CPUCLK_RATE( 696000000, 2, 4, 2, 4, 4), 157 - RK3288_CPUCLK_RATE( 600000000, 2, 4, 2, 4, 4), 158 - RK3288_CPUCLK_RATE( 408000000, 2, 4, 2, 4, 4), 159 - RK3288_CPUCLK_RATE( 312000000, 2, 4, 2, 4, 4), 160 - RK3288_CPUCLK_RATE( 216000000, 2, 4, 2, 4, 4), 161 - RK3288_CPUCLK_RATE( 126000000, 2, 4, 2, 4, 4), 148 + RK3288_CPUCLK_RATE(1800000000, 1, 3, 1, 3, 3), 149 + RK3288_CPUCLK_RATE(1704000000, 1, 3, 1, 3, 3), 150 + RK3288_CPUCLK_RATE(1608000000, 1, 3, 1, 3, 3), 151 + RK3288_CPUCLK_RATE(1512000000, 1, 3, 1, 3, 3), 152 + RK3288_CPUCLK_RATE(1416000000, 1, 3, 1, 3, 3), 153 + RK3288_CPUCLK_RATE(1200000000, 1, 3, 1, 3, 3), 154 + RK3288_CPUCLK_RATE(1008000000, 1, 3, 1, 3, 3), 155 + RK3288_CPUCLK_RATE( 816000000, 1, 3, 1, 3, 3), 156 + RK3288_CPUCLK_RATE( 696000000, 1, 3, 1, 3, 3), 157 + RK3288_CPUCLK_RATE( 600000000, 1, 3, 1, 3, 3), 158 + RK3288_CPUCLK_RATE( 408000000, 1, 3, 1, 3, 3), 159 + RK3288_CPUCLK_RATE( 312000000, 1, 3, 1, 3, 3), 160 + RK3288_CPUCLK_RATE( 216000000, 1, 3, 1, 3, 3), 161 + RK3288_CPUCLK_RATE( 126000000, 1, 3, 1, 3, 3), 162 162 }; 163 163 164 164 static const struct rockchip_cpuclk_reg_data rk3288_cpuclk_data = {