i2c: sh_mobile: simplify code and remove false compilation warning
authorViresh Kumar <viresh.kumar@linaro.org>
Thu, 9 May 2019 04:43:46 +0000 (10:13 +0530)
committerWolfram Sang <wsa@kernel.org>
Fri, 29 May 2020 12:06:35 +0000 (14:06 +0200)
This currently generates a warning:

drivers/i2c/busses/i2c-sh_mobile.c: In function 'sh_mobile_i2c_isr':
drivers/i2c/busses/i2c-sh_mobile.c:399:26: warning: 'data' may be used uninitialized in this function [-Wmaybe-uninitialized]

Though the code looks okay and shouldn't ever use the variable
uninitialized. Fix the warning by moving the code around and getting rid
of 'data'.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
[wsa: minor updates to commit message]
Signed-off-by: Wolfram Sang <wsa@kernel.org>
drivers/i2c/busses/i2c-sh_mobile.c

index d83ca40..2cca1b2 100644 (file)
@@ -366,7 +366,6 @@ static int sh_mobile_i2c_isr_tx(struct sh_mobile_i2c_data *pd)
 
 static int sh_mobile_i2c_isr_rx(struct sh_mobile_i2c_data *pd)
 {
-       unsigned char data;
        int real_pos;
 
        /* switch from TX (address) to RX (data) adds two interrupts */
@@ -387,13 +386,11 @@ static int sh_mobile_i2c_isr_rx(struct sh_mobile_i2c_data *pd)
                if (real_pos < 0)
                        i2c_op(pd, OP_RX_STOP);
                else
-                       data = i2c_op(pd, OP_RX_STOP_DATA);
+                       pd->msg->buf[real_pos] = i2c_op(pd, OP_RX_STOP_DATA);
        } else if (real_pos >= 0) {
-               data = i2c_op(pd, OP_RX);
+               pd->msg->buf[real_pos] = i2c_op(pd, OP_RX);
        }
 
-       if (real_pos >= 0)
-               pd->msg->buf[real_pos] = data;
  done:
        pd->pos++;
        return pd->pos == (pd->msg->len + 2);