mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-30 11:16:48 +07:00
i2c: mxs: detect No Slave Ack on SELECT in PIO mode
i2cdetect scanned i2c bus slow because the i2c-mxs driver ignored the NO_SLAVE_ACK bit during busy-waiting loop. Thanks to the patch, the speedup happens. Signed-off-by: Janusz Uzycki <j.uzycki@elproma.com.pl> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
This commit is contained in:
parent
d8e0a86f97
commit
030f940a53
@ -307,6 +307,9 @@ static int mxs_i2c_pio_wait_xfer_end(struct mxs_i2c_dev *i2c)
|
|||||||
unsigned long timeout = jiffies + msecs_to_jiffies(1000);
|
unsigned long timeout = jiffies + msecs_to_jiffies(1000);
|
||||||
|
|
||||||
while (readl(i2c->regs + MXS_I2C_CTRL0) & MXS_I2C_CTRL0_RUN) {
|
while (readl(i2c->regs + MXS_I2C_CTRL0) & MXS_I2C_CTRL0_RUN) {
|
||||||
|
if (readl(i2c->regs + MXS_I2C_CTRL1) &
|
||||||
|
MXS_I2C_CTRL1_NO_SLAVE_ACK_IRQ)
|
||||||
|
return -ENXIO;
|
||||||
if (time_after(jiffies, timeout))
|
if (time_after(jiffies, timeout))
|
||||||
return -ETIMEDOUT;
|
return -ETIMEDOUT;
|
||||||
cond_resched();
|
cond_resched();
|
||||||
|
Loading…
Reference in New Issue
Block a user