Skip to content

Commit b10c4d4

Browse files
committed
Merge branch 'for-linus/i2c/2636-rc5' of git://git.fluff.org/bjdooks/linux
* 'for-linus/i2c/2636-rc5' of git://git.fluff.org/bjdooks/linux: i2c-s3c2410: fix calculation of SDA line delay i2c-davinci: Fix race when setting up for TX i2c-octeon: Return -ETIMEDOUT in octeon_i2c_wait() on timeout
2 parents 303a407 + 7031307 commit b10c4d4

File tree

3 files changed

+6
-6
lines changed

3 files changed

+6
-6
lines changed

drivers/i2c/busses/i2c-davinci.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -357,9 +357,6 @@ i2c_davinci_xfer_msg(struct i2c_adapter *adap, struct i2c_msg *msg, int stop)
357357

358358
dev->terminate = 0;
359359

360-
/* write the data into mode register */
361-
davinci_i2c_write_reg(dev, DAVINCI_I2C_MDR_REG, flag);
362-
363360
/*
364361
* First byte should be set here, not after interrupt,
365362
* because transmit-data-ready interrupt can come before
@@ -371,6 +368,9 @@ i2c_davinci_xfer_msg(struct i2c_adapter *adap, struct i2c_msg *msg, int stop)
371368
dev->buf_len--;
372369
}
373370

371+
/* write the data into mode register; start transmitting */
372+
davinci_i2c_write_reg(dev, DAVINCI_I2C_MDR_REG, flag);
373+
374374
r = wait_for_completion_interruptible_timeout(&dev->cmd_complete,
375375
dev->adapter.timeout);
376376
if (r == 0) {

drivers/i2c/busses/i2c-octeon.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ static int octeon_i2c_wait(struct octeon_i2c *i2c)
218218
return result;
219219
} else if (result == 0) {
220220
dev_dbg(i2c->dev, "%s: timeout\n", __func__);
221-
result = -ETIMEDOUT;
221+
return -ETIMEDOUT;
222222
}
223223

224224
return 0;

drivers/i2c/busses/i2c-s3c2410.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -662,8 +662,8 @@ static int s3c24xx_i2c_clockrate(struct s3c24xx_i2c *i2c, unsigned int *got)
662662
unsigned long sda_delay;
663663

664664
if (pdata->sda_delay) {
665-
sda_delay = (freq / 1000) * pdata->sda_delay;
666-
sda_delay /= 1000000;
665+
sda_delay = clkin * pdata->sda_delay;
666+
sda_delay = DIV_ROUND_UP(sda_delay, 1000000);
667667
sda_delay = DIV_ROUND_UP(sda_delay, 5);
668668
if (sda_delay > 3)
669669
sda_delay = 3;

0 commit comments

Comments
 (0)