ddrfreq: fix new_freq=0 when the current load of ddr is between high_load and low_load
authorXiao Feng <xf@rock-chips.com>
Wed, 13 May 2015 11:27:56 +0000 (19:27 +0800)
committerXiao Feng <xf@rock-chips.com>
Wed, 20 May 2015 06:32:03 +0000 (14:32 +0800)
Signed-off-by: Xiao Feng <xf@rock-chips.com>
arch/arm/mach-rockchip/ddr_freq.c

index a6c3ab8b8c597e7b32d7a0718c9cf70191fcf175..af94e8808d070f8c39f1cfae57e45d7c1f8c17e0 100644 (file)
@@ -204,7 +204,8 @@ static void ddrfreq_mode(bool auto_self_refresh, unsigned long target_rate, char
 
 unsigned long req_freq_by_vop(unsigned long bandwidth)
 {
-       if (time_after(jiffies, vop_bandwidth_update_jiffies+down_rate_delay_ms))
+       if (time_after(jiffies, vop_bandwidth_update_jiffies +
+               msecs_to_jiffies(down_rate_delay_ms)))
                return 0;
 
        if (bandwidth >= 5000){
@@ -278,6 +279,8 @@ static void ddr_auto_freq(void)
 
        vop_req_freq = req_freq_by_vop(vop_bandwidth);
        new_freq = max(vop_req_freq, new_freq);
+       if (new_freq == 0)
+               return;
 
        new_freq = auto_freq_round(new_freq);