ARM: 5958/1: ARM: U300: fix inverted clk round rate
authorLinus Walleij <linus.walleij@stericsson.com>
Wed, 24 Feb 2010 20:49:53 +0000 (21:49 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Wed, 24 Feb 2010 21:10:17 +0000 (21:10 +0000)
The clk_round_rate() functions in the U300 clocking will always
select the lowest clocking frequency due to inverted rounding
comparisons. Fix this.

Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mach-u300/clock.c

index 111f7ea..36ffd6a 100644 (file)
@@ -610,34 +610,34 @@ EXPORT_SYMBOL(clk_get_rate);
 
 static unsigned long clk_round_rate_mclk(struct clk *clk, unsigned long rate)
 {
-       if (rate >= 18900000)
+       if (rate <= 18900000)
                return 18900000;
-       if (rate >= 20800000)
+       if (rate <= 20800000)
                return 20800000;
-       if (rate >= 23100000)
+       if (rate <= 23100000)
                return 23100000;
-       if (rate >= 26000000)
+       if (rate <= 26000000)
                return 26000000;
-       if (rate >= 29700000)
+       if (rate <= 29700000)
                return 29700000;
-       if (rate >= 34700000)
+       if (rate <= 34700000)
                return 34700000;
-       if (rate >= 41600000)
+       if (rate <= 41600000)
                return 41600000;
-       if (rate >= 52000000)
+       if (rate <= 52000000)
                return 52000000;
        return -EINVAL;
 }
 
 static unsigned long clk_round_rate_cpuclk(struct clk *clk, unsigned long rate)
 {
-       if (rate >= 13000000)
+       if (rate <= 13000000)
                return 13000000;
-       if (rate >= 52000000)
+       if (rate <= 52000000)
                return 52000000;
-       if (rate >= 104000000)
+       if (rate <= 104000000)
                return 104000000;
-       if (rate >= 208000000)
+       if (rate <= 208000000)
                return 208000000;
        return -EINVAL;
 }