diff options
Diffstat (limited to 'drivers/i2c/algos/i2c-algo-pcf.c')
-rw-r--r-- | drivers/i2c/algos/i2c-algo-pcf.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/i2c/algos/i2c-algo-pcf.c b/drivers/i2c/algos/i2c-algo-pcf.c index 270d84bfc2c6..5c29a4d397cf 100644 --- a/drivers/i2c/algos/i2c-algo-pcf.c +++ b/drivers/i2c/algos/i2c-algo-pcf.c | |||
@@ -291,13 +291,9 @@ static int pcf_readbytes(struct i2c_adapter *i2c_adap, char *buf, | |||
291 | static int pcf_doAddress(struct i2c_algo_pcf_data *adap, | 291 | static int pcf_doAddress(struct i2c_algo_pcf_data *adap, |
292 | struct i2c_msg *msg) | 292 | struct i2c_msg *msg) |
293 | { | 293 | { |
294 | unsigned short flags = msg->flags; | 294 | unsigned char addr = i2c_8bit_addr_from_msg(msg); |
295 | unsigned char addr; | ||
296 | 295 | ||
297 | addr = msg->addr << 1; | 296 | if (msg->flags & I2C_M_REV_DIR_ADDR) |
298 | if (flags & I2C_M_RD) | ||
299 | addr |= 1; | ||
300 | if (flags & I2C_M_REV_DIR_ADDR) | ||
301 | addr ^= 1; | 297 | addr ^= 1; |
302 | i2c_outb(adap, addr); | 298 | i2c_outb(adap, addr); |
303 | 299 | ||