summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorMarek Vasut <[email protected]>2013-11-04 14:29:12 +0100
committerHeiko Schocher <[email protected]>2013-11-13 06:08:31 +0100
commit124913556c4b99909f40b4bf4ceaefe2b555d6f8 (patch)
treedb5e072f22de6055075a620e21004ced7026e096 /include/linux
parent2035d77d790044f389a18c0e6baa05e86d4b32a0 (diff)
i2c: mxs_i2c: Squash endless loop
The endless waiting for a bit to be set can cause a hang, add a timeout so we prevent such situation. A testcase for such a hang is below. The testcase assumes a device to be present at address 0x50 and a device to NOT be present at address 0x42 . Also note that the "sleep 1" induced delays are imperative for this bug to manifest . i2c read 0x42 0x0.2 0x10 0x42000000 ; sleep 1 ; \ i2c read 0x50 0x0.2 0x10 0x42000000 ; sleep 1 ; \ i2c read 0x42 0x0.2 0x10 0x42000000 The expected result of the above command is: Error reading the chip. Error reading the chip. While without this patch, we observe a hang in the last read from 0x42 precisely when waiting for this bit to be set. Signed-off-by: Marek Vasut <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Heiko Schocher <[email protected]> Cc: Stefano Babic <[email protected]>
Diffstat (limited to 'include/linux')
0 files changed, 0 insertions, 0 deletions