From 33eb569035c12de279a7dcb56f937415de4f8cd1 Mon Sep 17 00:00:00 2001 From: chenxing Date: Fri, 21 Jun 2013 17:14:11 +0800 Subject: [PATCH] rk3066B: support set_rate_even div = 1 --- arch/arm/mach-rk30/clock_data-rk3066b.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/arch/arm/mach-rk30/clock_data-rk3066b.c b/arch/arm/mach-rk30/clock_data-rk3066b.c index 2c1d69adcf6d..6021ca769ac1 100644 --- a/arch/arm/mach-rk30/clock_data-rk3066b.c +++ b/arch/arm/mach-rk30/clock_data-rk3066b.c @@ -301,9 +301,11 @@ static int clksel_set_rate_shift_2(struct clk *clk, unsigned long rate) //for div 1 2 4 2*n static int clksel_set_rate_even(struct clk *clk, unsigned long rate) { - u32 div; - for (div = 2; div < clk->div_max; div += 2) { - u32 new_rate = clk->parent->rate / div; + u32 div = 0, new_rate = 0; + for (div = 1; div < clk->div_max; div++) { + if (div >= 3 && div % 2 != 0) + continue; + new_rate = clk->parent->rate / div; if (new_rate <= rate) { set_cru_bits_w_msk(div - 1, clk->div_mask, clk->div_shift, clk->clksel_con); clk->rate = new_rate; -- 2.34.1