Commit cd20e4fa authored by Virupax Sadashivpetimath's avatar Virupax Sadashivpetimath Committed by Ben Dooks

i2c-nomadik: correct adapter timeout initialization

Correct the incorrect initialization of adapter timeout not to be
in milliseconds, as it needs to be done in jiffies.
Signed-off-by: default avatarVirupax Sadashivpetimath <virupax.sadashivpetimath@stericsson.com>
Reviewed-by: default avatarSrinidhi Kasagar <srinidhi.kasagar@stericsson.com>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarBen Dooks <ben-linux@fluff.org>
parent c436f92a
...@@ -210,7 +210,7 @@ static int flush_i2c_fifo(struct nmk_i2c_dev *dev) ...@@ -210,7 +210,7 @@ static int flush_i2c_fifo(struct nmk_i2c_dev *dev)
writel((I2C_CR_FTX | I2C_CR_FRX), dev->virtbase + I2C_CR); writel((I2C_CR_FTX | I2C_CR_FRX), dev->virtbase + I2C_CR);
for (i = 0; i < LOOP_ATTEMPTS; i++) { for (i = 0; i < LOOP_ATTEMPTS; i++) {
timeout = jiffies + msecs_to_jiffies(dev->adap.timeout); timeout = jiffies + dev->adap.timeout;
while (!time_after(jiffies, timeout)) { while (!time_after(jiffies, timeout)) {
if ((readl(dev->virtbase + I2C_CR) & if ((readl(dev->virtbase + I2C_CR) &
...@@ -431,7 +431,7 @@ static int read_i2c(struct nmk_i2c_dev *dev) ...@@ -431,7 +431,7 @@ static int read_i2c(struct nmk_i2c_dev *dev)
dev->virtbase + I2C_IMSCR); dev->virtbase + I2C_IMSCR);
timeout = wait_for_completion_interruptible_timeout( timeout = wait_for_completion_interruptible_timeout(
&dev->xfer_complete, msecs_to_jiffies(dev->adap.timeout)); &dev->xfer_complete, dev->adap.timeout);
if (timeout < 0) { if (timeout < 0) {
dev_err(&dev->pdev->dev, dev_err(&dev->pdev->dev,
...@@ -495,7 +495,7 @@ static int write_i2c(struct nmk_i2c_dev *dev) ...@@ -495,7 +495,7 @@ static int write_i2c(struct nmk_i2c_dev *dev)
dev->virtbase + I2C_IMSCR); dev->virtbase + I2C_IMSCR);
timeout = wait_for_completion_interruptible_timeout( timeout = wait_for_completion_interruptible_timeout(
&dev->xfer_complete, msecs_to_jiffies(dev->adap.timeout)); &dev->xfer_complete, dev->adap.timeout);
if (timeout < 0) { if (timeout < 0) {
dev_err(&dev->pdev->dev, dev_err(&dev->pdev->dev,
...@@ -914,7 +914,8 @@ static int __devinit nmk_i2c_probe(struct platform_device *pdev) ...@@ -914,7 +914,8 @@ static int __devinit nmk_i2c_probe(struct platform_device *pdev)
adap->owner = THIS_MODULE; adap->owner = THIS_MODULE;
adap->class = I2C_CLASS_HWMON | I2C_CLASS_SPD; adap->class = I2C_CLASS_HWMON | I2C_CLASS_SPD;
adap->algo = &nmk_i2c_algo; adap->algo = &nmk_i2c_algo;
adap->timeout = pdata->timeout ? pdata->timeout : 20000; adap->timeout = pdata->timeout ? msecs_to_jiffies(pdata->timeout) :
msecs_to_jiffies(20000);
snprintf(adap->name, sizeof(adap->name), snprintf(adap->name, sizeof(adap->name),
"Nomadik I2C%d at %lx", pdev->id, (unsigned long)res->start); "Nomadik I2C%d at %lx", pdev->id, (unsigned long)res->start);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment