Troy Kisky <[EMAIL PROTECTED]> writes:
> Spacing changes and simplify terminate_read.
> No longer check buffer pointer for NULL, only buf_len.
>
> Signed-off-by: Troy Kisky <[EMAIL PROTECTED]>
Thanks, pushed.
Kevin
> ---
> 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
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source