From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko Schocher Date: Wed, 13 Nov 2013 07:36:05 +0100 Subject: [U-Boot] [U-Boot,V2] i2c: mxs_i2c: Squash endless loop In-Reply-To: <1383571752-18546-1-git-send-email-marex@denx.de> References: <1383571752-18546-1-git-send-email-marex@denx.de> Message-ID: <52831DD5.2050104@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hello Marek, Am 04.11.2013 14:29, schrieb Marek Vasut: > 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 > Cc: Fabio Estevam > Cc: Heiko Schocher > Cc: Stefano Babic > > --- > drivers/i2c/mxs_i2c.c | 15 ++++++++++++--- > 1 file changed, 12 insertions(+), 3 deletions(-) Thanks! Applied to u-boot-i2c.git bye, Heiko -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany