From 6b5e965bac2d978f5e2e6326dfb8d9e9af35715b Mon Sep 17 00:00:00 2001 From: Shinya Kuribayashi Date: Fri, 6 Nov 2009 21:51:00 +0900 Subject: [PATCH] --- yaml --- r: 173862 b: refs/heads/master c: 69151e532c97f983b498ea03e20b1598a5487318 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/i2c/busses/i2c-designware.c | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index d56247fbb435..faea3f37eb26 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 201d6a70b72d1e6ca5a8e03f5f41a7741241401a +refs/heads/master: 69151e532c97f983b498ea03e20b1598a5487318 diff --git a/trunk/drivers/i2c/busses/i2c-designware.c b/trunk/drivers/i2c/busses/i2c-designware.c index f184d822d3d4..6acbe846e9c6 100644 --- a/trunk/drivers/i2c/busses/i2c-designware.c +++ b/trunk/drivers/i2c/busses/i2c-designware.c @@ -415,12 +415,17 @@ i2c_dw_xfer_msg(struct dw_i2c_dev *dev) /* more bytes to be written */ dev->status |= STATUS_WRITE_IN_PROGRESS; break; - } else { + } else dev->status &= ~STATUS_WRITE_IN_PROGRESS; - intr_mask &= ~DW_IC_INTR_TX_EMPTY; - } } + /* + * If i2c_msg index search is completed, we don't need TX_EMPTY + * interrupt any more. + */ + if (dev->msg_write_idx == dev->msgs_num) + intr_mask &= ~DW_IC_INTR_TX_EMPTY; + writel(intr_mask, dev->base + DW_IC_INTR_MASK); }