i2c-pnx: Limit maximum divider to 1023
authorKevin Wells <wellsk40@gmail.com>
Tue, 16 Mar 2010 22:55:36 +0000 (15:55 -0700)
committerBen Dooks <ben-linux@fluff.org>
Tue, 20 Apr 2010 00:16:57 +0000 (01:16 +0100)
Limit maximum divider to 0x3ff to divider computations. On high I2C
parent clock rates, the divider can exceed 0x3ff. This will help
prevent some very odd clock rates.

Signed-off-by: Kevin Wells <wellsk40@gmail.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
drivers/i2c/busses/i2c-pnx.c

index 247103372a066ae35fd418089f8ecaa076497211..68fa415d9ad552a93e8cf65164b184bd6a76bae1 100644 (file)
@@ -633,6 +633,8 @@ static int __devinit i2c_pnx_probe(struct platform_device *pdev)
         */
 
        tmp = ((freq / 1000) / I2C_PNX_SPEED_KHZ) / 2 - 2;
+       if (tmp > 0x3FF)
+               tmp = 0x3FF;
        iowrite32(tmp, I2C_REG_CKH(alg_data));
        iowrite32(tmp, I2C_REG_CKL(alg_data));