diff options
| -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 | ||
