From 898c6430c143ce1aa2d3af46aff87aa072e67b70 Mon Sep 17 00:00:00 2001 From: Shinya Kuribayashi Date: Fri, 6 Nov 2009 21:49:14 +0900 Subject: [PATCH] --- yaml --- r: 173857 b: refs/heads/master c: 26ea15b1f584de02bc85e9c3968d523386332f65 h: refs/heads/master i: 173855: fd0b4c86320e1de38fe76c861e219f123467c533 v: v3 --- [refs] | 2 +- trunk/drivers/i2c/busses/i2c-designware.c | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index a3d0ac798b33..6bf171ae26f7 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 81e798b73aec2d7ce06d18bd191b088c233e554f +refs/heads/master: 26ea15b1f584de02bc85e9c3968d523386332f65 diff --git a/trunk/drivers/i2c/busses/i2c-designware.c b/trunk/drivers/i2c/busses/i2c-designware.c index da5612b21aff..e8e2212d576e 100644 --- a/trunk/drivers/i2c/busses/i2c-designware.c +++ b/trunk/drivers/i2c/busses/i2c-designware.c @@ -364,6 +364,7 @@ i2c_dw_xfer_msg(struct dw_i2c_dev *dev) int rx_limit = dev->rx_fifo_depth - readl(dev->base + DW_IC_RXFLR); u32 addr = msgs[dev->msg_write_idx].addr; u32 buf_len = dev->tx_buf_len; + u8 *buf = dev->tx_buf;; intr_mask = DW_IC_INTR_STOP_DET | DW_IC_INTR_TX_ABRT | DW_IC_INTR_RX_FULL; @@ -384,7 +385,7 @@ i2c_dw_xfer_msg(struct dw_i2c_dev *dev) if (!(dev->status & STATUS_WRITE_IN_PROGRESS)) { /* new i2c_msg */ - dev->tx_buf = msgs[dev->msg_write_idx].buf; + buf = msgs[dev->msg_write_idx].buf; buf_len = msgs[dev->msg_write_idx].len; } @@ -393,11 +394,11 @@ i2c_dw_xfer_msg(struct dw_i2c_dev *dev) writel(0x100, dev->base + DW_IC_DATA_CMD); rx_limit--; } else - writel(*(dev->tx_buf++), - dev->base + DW_IC_DATA_CMD); + writel(*buf++, dev->base + DW_IC_DATA_CMD); tx_limit--; buf_len--; } + dev->tx_buf = buf; dev->tx_buf_len = buf_len; if (buf_len > 0) {