diff options
-rw-r--r-- | drivers/i2c/busses/i2c-omap.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c index 32dc65183ea8..277a2288d4a8 100644 --- a/drivers/i2c/busses/i2c-omap.c +++ b/drivers/i2c/busses/i2c-omap.c | |||
@@ -952,11 +952,13 @@ omap_i2c_isr_thread(int this_irq, void *dev_id) | |||
952 | if (dev->fifo_size) | 952 | if (dev->fifo_size) |
953 | num_bytes = dev->buf_len; | 953 | num_bytes = dev->buf_len; |
954 | 954 | ||
955 | omap_i2c_receive_data(dev, num_bytes, true); | 955 | if (dev->errata & I2C_OMAP_ERRATA_I207) { |
956 | |||
957 | if (dev->errata & I2C_OMAP_ERRATA_I207) | ||
958 | i2c_omap_errata_i207(dev, stat); | 956 | i2c_omap_errata_i207(dev, stat); |
957 | num_bytes = (omap_i2c_read_reg(dev, | ||
958 | OMAP_I2C_BUFSTAT_REG) >> 8) & 0x3F; | ||
959 | } | ||
959 | 960 | ||
961 | omap_i2c_receive_data(dev, num_bytes, true); | ||
960 | omap_i2c_ack_stat(dev, OMAP_I2C_STAT_RDR); | 962 | omap_i2c_ack_stat(dev, OMAP_I2C_STAT_RDR); |
961 | continue; | 963 | continue; |
962 | } | 964 | } |