aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/i2c/busses/i2c-omap.c8
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 }