spi/bcm63xx: fix clock configuration selection
authorFlorian Fainelli <florian@openwrt.org>
Mon, 23 Jul 2012 12:44:36 +0000 (14:44 +0200)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Mon, 23 Jul 2012 13:14:11 +0000 (14:14 +0100)
We are currently using an inferior or equal operator for comparing
the transfer frequency with the clock frequency table. Because of
this, we always end up selecting 20Mhz as a frequency, due to the
inequality transfer hz <= 20 Mhz being always true. Fix this by
reversing the inequality, which is how the comparison should be done.

Signed-off-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
drivers/spi/spi-bcm63xx.c

index 7491971..6e25ef1 100644 (file)
@@ -129,7 +129,7 @@ static void bcm63xx_spi_setup_transfer(struct spi_device *spi,
 
        /* Find the closest clock configuration */
        for (i = 0; i < SPI_CLK_MASK; i++) {
 
        /* Find the closest clock configuration */
        for (i = 0; i < SPI_CLK_MASK; i++) {
-               if (hz <= bcm63xx_spi_freq_table[i][0]) {
+               if (hz >= bcm63xx_spi_freq_table[i][0]) {
                        clk_cfg = bcm63xx_spi_freq_table[i][1];
                        break;
                }
                        clk_cfg = bcm63xx_spi_freq_table[i][1];
                        break;
                }