Searched hist:"124913556 c4b99909f40b4bf4ceaefe2b555d6f8" (Results 1 – 1 of 1) sorted by relevance
| /rk3399_rockchip-uboot/drivers/i2c/ |
| H A D | mxs_i2c.c | 124913556c4b99909f40b4bf4ceaefe2b555d6f8 Mon Nov 04 13:29:12 UTC 2013 Marek Vasut <marex@denx.de> 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 <marex@denx.de> Cc: Fabio Estevam <fabio.estevam@freescale.com> Cc: Heiko Schocher <hs@denx.de> Cc: Stefano Babic <sbabic@denx.de>
|