Spacing changes and simplify terminate_read.
No longer check buffer pointer for NULL, only buf_len.

Signed-off-by: Troy Kisky <[EMAIL PROTECTED]>
---
 drivers/i2c/busses/i2c-davinci.c |   39 +++++++++++++++++++------------------
 1 files changed, 20 insertions(+), 19 deletions(-)

diff --git a/drivers/i2c/busses/i2c-davinci.c b/drivers/i2c/busses/i2c-davinci.c
index daab1aa..725d530 100755
--- a/drivers/i2c/busses/i2c-davinci.c
+++ b/drivers/i2c/busses/i2c-davinci.c
@@ -179,10 +179,10 @@ static int i2c_davinci_init(struct davinci_i2c_dev *dev)
        psc = (input_clock / 7000000) - 1;
        if ((input_clock / (psc + 1)) > 12000000)
                psc++;  /* better to run under spec than over */
-       d = (psc >= 2)? 5 : 7 - psc;
+       d = (psc >= 2) ? 5 : 7 - psc;
 
-       clk = ((input_clock / (psc + 1)) / (pdata->bus_freq * 1000)) - (d<<1);
-       clkh = clk>>1;
+       clk = ((input_clock / (psc + 1)) / (pdata->bus_freq * 1000)) - (d << 1);
+       clkh = clk >> 1;
        clkl = clk - clkh;
 
        davinci_i2c_write_reg(dev, DAVINCI_I2C_PSC_REG, psc);
@@ -307,11 +307,14 @@ i2c_davinci_xfer_msg(struct i2c_adapter *adap, struct 
i2c_msg *msg, int stop)
        if (r == 0) {
                dev_err(dev->dev, "controller timed out\n");
                i2c_davinci_init(dev);
-               dev->buf = NULL;
+               dev->buf_len = 0;
                return -ETIMEDOUT;
        }
        if (dev->buf_len) {
-               /* signal may have aborted the transfer */
+               /* This should be 0 if all bytes were transferred
+                * or dev->cmd_err denotes an error.
+                * A signal may have aborted the transfer.
+                */
                if (r >= 0) {
                        dev_err(dev->dev, "abnormal termination buf_len=%i\n",
                                dev->buf_len);
@@ -319,7 +322,7 @@ i2c_davinci_xfer_msg(struct i2c_adapter *adap, struct 
i2c_msg *msg, int stop)
                }
                dev->terminate = 1;
                wmb();
-               dev->buf = NULL;
+               dev->buf_len = 0;
        }
        if (r < 0)
                return r;
@@ -362,7 +365,8 @@ i2c_davinci_xfer(struct i2c_adapter *adap, struct i2c_msg 
msgs[], int num)
 
        for (i = 0; i < num; i++) {
                ret = i2c_davinci_xfer_msg(adap, &msgs[i], (i == (num - 1)));
-               dev_dbg(dev->dev, "%s ret: %d\n", __func__, ret);
+               dev_dbg(dev->dev, "%s [%d/%d] ret: %d\n", __func__, i + 1, num,
+                       ret);
                if (ret < 0)
                        return ret;
        }
@@ -374,24 +378,21 @@ static u32 i2c_davinci_func(struct i2c_adapter *adap)
        return I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL;
 }
 
-static inline void terminate_read(struct davinci_i2c_dev *dev)
+static void terminate_read(struct davinci_i2c_dev *dev)
 {
-       if (dev->buf_len)
-               dev->buf_len--;
-       if (dev->buf_len) {
-               u16 w = davinci_i2c_read_reg(dev, DAVINCI_I2C_MDR_REG);
-               w |= DAVINCI_I2C_MDR_NACK;
-               davinci_i2c_write_reg(dev, DAVINCI_I2C_MDR_REG, w);
-       }
+       u16 w = davinci_i2c_read_reg(dev, DAVINCI_I2C_MDR_REG);
+       w |= DAVINCI_I2C_MDR_NACK;
+       davinci_i2c_write_reg(dev, DAVINCI_I2C_MDR_REG, w);
+
        /* Throw away data */
        davinci_i2c_read_reg(dev, DAVINCI_I2C_DRR_REG);
        if (!dev->terminate)
                dev_err(dev->dev, "RDR IRQ while no data requested\n");
 }
-static inline void terminate_write(struct davinci_i2c_dev *dev)
+static void terminate_write(struct davinci_i2c_dev *dev)
 {
        u16 w = davinci_i2c_read_reg(dev, DAVINCI_I2C_MDR_REG);
-       w |= DAVINCI_I2C_MDR_RM|DAVINCI_I2C_MDR_STP;
+       w |= DAVINCI_I2C_MDR_RM | DAVINCI_I2C_MDR_STP;
        davinci_i2c_write_reg(dev, DAVINCI_I2C_MDR_REG, w);
 
        if (!dev->terminate)
@@ -445,7 +446,7 @@ static irqreturn_t i2c_davinci_isr(int this_irq, void 
*dev_id)
                        break;
 
                case DAVINCI_I2C_IVR_RDR:
-                       if (dev->buf && dev->buf_len) {
+                       if (dev->buf_len) {
                                *dev->buf++ =
                                    davinci_i2c_read_reg(dev,
                                                         DAVINCI_I2C_DRR_REG);
@@ -463,7 +464,7 @@ static irqreturn_t i2c_davinci_isr(int this_irq, void 
*dev_id)
                        break;
 
                case DAVINCI_I2C_IVR_XRDY:
-                       if (dev->buf && dev->buf_len) {
+                       if (dev->buf_len) {
                                davinci_i2c_write_reg(dev, DAVINCI_I2C_DXR_REG,
                                                      *dev->buf++);
                                dev->buf_len--;
-- 
1.5.4

_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to