projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
| inline |
side by side
i2c-cpm: Detect and report NAK right away instead of timing out
[firefly-linux-kernel-4.4.55.git]
/
drivers
/
i2c
/
busses
/
i2c-cpm.c
diff --git
a/drivers/i2c/busses/i2c-cpm.c
b/drivers/i2c/busses/i2c-cpm.c
index 228f75723063968c4e77fbb374e5421e5c87e393..3fcf78e906db185187d10c87466786fb3c3280c2 100644
(file)
--- a/
drivers/i2c/busses/i2c-cpm.c
+++ b/
drivers/i2c/busses/i2c-cpm.c
@@
-365,6
+365,7
@@
static int cpm_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num)
pmsg = &msgs[tptr];
if (pmsg->flags & I2C_M_RD)
ret = wait_event_interruptible_timeout(cpm->i2c_wait,
+ (in_be16(&tbdf[tptr].cbd_sc) & BD_SC_NAK) ||
!(in_be16(&rbdf[rptr].cbd_sc) & BD_SC_EMPTY),
1 * HZ);
else