i2c: algos: make use of i2c_8bit_addr_from_msg
authorPeter Rosin <peda@axentia.se>
Wed, 16 May 2018 07:16:46 +0000 (09:16 +0200)
committerWolfram Sang <wsa@the-dreams.de>
Tue, 29 May 2018 18:30:06 +0000 (20:30 +0200)
Because it looks neater.

Signed-off-by: Peter Rosin <peda@axentia.se>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
drivers/i2c/algos/i2c-algo-bit.c
drivers/i2c/algos/i2c-algo-pca.c
drivers/i2c/algos/i2c-algo-pcf.c

index 3df0efd..4a34f31 100644 (file)
@@ -519,9 +519,7 @@ static int bit_doAddress(struct i2c_adapter *i2c_adap, struct i2c_msg *msg)
                        }
                }
        } else {                /* normal 7bit address  */
-               addr = msg->addr << 1;
-               if (flags & I2C_M_RD)
-                       addr |= 1;
+               addr = i2c_8bit_addr_from_msg(msg);
                if (flags & I2C_M_REV_DIR_ADDR)
                        addr ^= 1;
                ret = try_address(i2c_adap, addr, retries);
index e370804..883a290 100644 (file)
@@ -112,11 +112,8 @@ static int pca_address(struct i2c_algo_pca_data *adap,
                       struct i2c_msg *msg)
 {
        int sta = pca_get_con(adap);
-       int addr;
+       int addr = i2c_8bit_addr_from_msg(msg);
 
-       addr = ((0x7f & msg->addr) << 1);
-       if (msg->flags & I2C_M_RD)
-               addr |= 1;
        DEB2("=== SLAVE ADDRESS %#04x+%c=%#04x\n",
             msg->addr, msg->flags & I2C_M_RD ? 'R' : 'W', addr);
 
index 270d84b..5c29a4d 100644 (file)
@@ -291,13 +291,9 @@ static int pcf_readbytes(struct i2c_adapter *i2c_adap, char *buf,
 static int pcf_doAddress(struct i2c_algo_pcf_data *adap,
                         struct i2c_msg *msg)
 {
-       unsigned short flags = msg->flags;
-       unsigned char addr;
+       unsigned char addr = i2c_8bit_addr_from_msg(msg);
 
-       addr = msg->addr << 1;
-       if (flags & I2C_M_RD)
-               addr |= 1;
-       if (flags & I2C_M_REV_DIR_ADDR)
+       if (msg->flags & I2C_M_REV_DIR_ADDR)
                addr ^= 1;
        i2c_outb(adap, addr);