Commit bb7c0209 authored by Hans Hu's avatar Hans Hu Committed by Wolfram Sang

i2c: wmt: Reduce redundant: REG_CR setting

These Settings for the same register, REG_CR,
can be put together to reduce code redundancy.
Signed-off-by: default avatarHans Hu <hanshu-oc@zhaoxin.com>
Signed-off-by: default avatarWolfram Sang <wsa@kernel.org>
parent 4c541c6a
...@@ -143,9 +143,6 @@ static int wmt_i2c_write(struct wmt_i2c_dev *i2c_dev, struct i2c_msg *pmsg, ...@@ -143,9 +143,6 @@ static int wmt_i2c_write(struct wmt_i2c_dev *i2c_dev, struct i2c_msg *pmsg,
if (!(pmsg->flags & I2C_M_NOSTART)) { if (!(pmsg->flags & I2C_M_NOSTART)) {
val = readw(i2c_dev->base + REG_CR); val = readw(i2c_dev->base + REG_CR);
val &= ~CR_TX_END; val &= ~CR_TX_END;
writew(val, i2c_dev->base + REG_CR);
val = readw(i2c_dev->base + REG_CR);
val |= CR_CPU_RDY; val |= CR_CPU_RDY;
writew(val, i2c_dev->base + REG_CR); writew(val, i2c_dev->base + REG_CR);
} }
...@@ -201,24 +198,15 @@ static int wmt_i2c_read(struct wmt_i2c_dev *i2c_dev, struct i2c_msg *pmsg) ...@@ -201,24 +198,15 @@ static int wmt_i2c_read(struct wmt_i2c_dev *i2c_dev, struct i2c_msg *pmsg)
u32 xfer_len = 0; u32 xfer_len = 0;
val = readw(i2c_dev->base + REG_CR); val = readw(i2c_dev->base + REG_CR);
val &= ~CR_TX_END; val &= ~(CR_TX_END | CR_TX_NEXT_NO_ACK);
writew(val, i2c_dev->base + REG_CR);
val = readw(i2c_dev->base + REG_CR); if (!(pmsg->flags & I2C_M_NOSTART))
val &= ~CR_TX_NEXT_NO_ACK;
writew(val, i2c_dev->base + REG_CR);
if (!(pmsg->flags & I2C_M_NOSTART)) {
val = readw(i2c_dev->base + REG_CR);
val |= CR_CPU_RDY; val |= CR_CPU_RDY;
writew(val, i2c_dev->base + REG_CR);
}
if (pmsg->len == 1) { if (pmsg->len == 1)
val = readw(i2c_dev->base + REG_CR);
val |= CR_TX_NEXT_NO_ACK; val |= CR_TX_NEXT_NO_ACK;
writew(val, i2c_dev->base + REG_CR);
} writew(val, i2c_dev->base + REG_CR);
reinit_completion(&i2c_dev->complete); reinit_completion(&i2c_dev->complete);
...@@ -240,15 +228,10 @@ static int wmt_i2c_read(struct wmt_i2c_dev *i2c_dev, struct i2c_msg *pmsg) ...@@ -240,15 +228,10 @@ static int wmt_i2c_read(struct wmt_i2c_dev *i2c_dev, struct i2c_msg *pmsg)
pmsg->buf[xfer_len] = readw(i2c_dev->base + REG_CDR) >> 8; pmsg->buf[xfer_len] = readw(i2c_dev->base + REG_CDR) >> 8;
xfer_len++; xfer_len++;
if (xfer_len == pmsg->len - 1) { val = readw(i2c_dev->base + REG_CR) | CR_CPU_RDY;
val = readw(i2c_dev->base + REG_CR); if (xfer_len == pmsg->len - 1)
val |= (CR_TX_NEXT_NO_ACK | CR_CPU_RDY); val |= CR_TX_NEXT_NO_ACK;
writew(val, i2c_dev->base + REG_CR); writew(val, i2c_dev->base + REG_CR);
} else {
val = readw(i2c_dev->base + REG_CR);
val |= CR_CPU_RDY;
writew(val, i2c_dev->base + REG_CR);
}
} }
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment