diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-11 11:10:51 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-11 11:10:51 -0400 |
commit | 099ce8f4712dcff975ed7619f831b4df95aac773 (patch) | |
tree | b2e6d5ded33b89d294c5b97e29c440e302155a1c /drivers/i2c/busses/i2c-davinci.c | |
parent | 90768c09bca4f306c00a0cdbcb2f82601231e93e (diff) | |
parent | fa16eefd3e835dd81c688a2a743eb59331162ed5 (diff) |
Merge branch 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6
* 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6:
i2c-tiny-usb: New VID/PID pair
i2c-davinci: Fix lost interrupt
i2c-ibm_iic: Fast mode parm desc fixup
Diffstat (limited to 'drivers/i2c/busses/i2c-davinci.c')
-rw-r--r-- | drivers/i2c/busses/i2c-davinci.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/drivers/i2c/busses/i2c-davinci.c b/drivers/i2c/busses/i2c-davinci.c index cce5a614758d..fde26345a379 100644 --- a/drivers/i2c/busses/i2c-davinci.c +++ b/drivers/i2c/busses/i2c-davinci.c | |||
@@ -382,9 +382,8 @@ static irqreturn_t i2c_davinci_isr(int this_irq, void *dev_id) | |||
382 | break; | 382 | break; |
383 | 383 | ||
384 | case DAVINCI_I2C_IVR_ARDY: | 384 | case DAVINCI_I2C_IVR_ARDY: |
385 | w = davinci_i2c_read_reg(dev, DAVINCI_I2C_STR_REG); | 385 | davinci_i2c_write_reg(dev, |
386 | MOD_REG_BIT(w, DAVINCI_I2C_STR_ARDY, 1); | 386 | DAVINCI_I2C_STR_REG, DAVINCI_I2C_STR_ARDY); |
387 | davinci_i2c_write_reg(dev, DAVINCI_I2C_STR_REG, w); | ||
388 | complete(&dev->cmd_complete); | 387 | complete(&dev->cmd_complete); |
389 | break; | 388 | break; |
390 | 389 | ||
@@ -397,12 +396,9 @@ static irqreturn_t i2c_davinci_isr(int this_irq, void *dev_id) | |||
397 | if (dev->buf_len) | 396 | if (dev->buf_len) |
398 | continue; | 397 | continue; |
399 | 398 | ||
400 | w = davinci_i2c_read_reg(dev, | ||
401 | DAVINCI_I2C_STR_REG); | ||
402 | MOD_REG_BIT(w, DAVINCI_I2C_IMR_RRDY, 0); | ||
403 | davinci_i2c_write_reg(dev, | 399 | davinci_i2c_write_reg(dev, |
404 | DAVINCI_I2C_STR_REG, | 400 | DAVINCI_I2C_STR_REG, |
405 | w); | 401 | DAVINCI_I2C_IMR_RRDY); |
406 | } else | 402 | } else |
407 | dev_err(dev->dev, "RDR IRQ while no " | 403 | dev_err(dev->dev, "RDR IRQ while no " |
408 | "data requested\n"); | 404 | "data requested\n"); |
@@ -428,9 +424,8 @@ static irqreturn_t i2c_davinci_isr(int this_irq, void *dev_id) | |||
428 | break; | 424 | break; |
429 | 425 | ||
430 | case DAVINCI_I2C_IVR_SCD: | 426 | case DAVINCI_I2C_IVR_SCD: |
431 | w = davinci_i2c_read_reg(dev, DAVINCI_I2C_STR_REG); | 427 | davinci_i2c_write_reg(dev, |
432 | MOD_REG_BIT(w, DAVINCI_I2C_STR_SCD, 1); | 428 | DAVINCI_I2C_STR_REG, DAVINCI_I2C_STR_SCD); |
433 | davinci_i2c_write_reg(dev, DAVINCI_I2C_STR_REG, w); | ||
434 | complete(&dev->cmd_complete); | 429 | complete(&dev->cmd_complete); |
435 | break; | 430 | break; |
436 | 431 | ||