diff options
author | Amaury Pouly <amaury.pouly@gmail.com> | 2013-10-21 01:09:09 +0200 |
---|---|---|
committer | Amaury Pouly <amaury.pouly@gmail.com> | 2013-10-21 01:23:13 +0200 |
commit | 6006eb59b1064cdc115583d2eab3fe7bab4ffa4d (patch) | |
tree | 23f773852a3ecaa1c98c4263e61d7ff4bd16015e /firmware/target/arm/imx233 | |
parent | efc591e42d967c3324787f2ef4865055d6894565 (diff) | |
download | rockbox-6006eb59b1064cdc115583d2eab3fe7bab4ffa4d.tar.gz rockbox-6006eb59b1064cdc115583d2eab3fe7bab4ffa4d.zip |
imx233/i2c: always reset the i2c block on timeout
On targets like stmp3700, resetting the dma channel on "soft" timeout
drives the whole block crazy unless it goes through complete reset.
Change-Id: I830b252279989bf9f9cd9c138240a6ea9b003527
Diffstat (limited to 'firmware/target/arm/imx233')
-rw-r--r-- | firmware/target/arm/imx233/i2c-imx233.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/firmware/target/arm/imx233/i2c-imx233.c b/firmware/target/arm/imx233/i2c-imx233.c index 57f0f7356a..4d066a4152 100644 --- a/firmware/target/arm/imx233/i2c-imx233.c +++ b/firmware/target/arm/imx233/i2c-imx233.c | |||
@@ -205,6 +205,7 @@ enum imx233_i2c_error_t imx233_i2c_end(unsigned timeout) | |||
205 | if(semaphore_wait(&i2c_sema, timeout) == OBJ_WAIT_TIMEDOUT) | 205 | if(semaphore_wait(&i2c_sema, timeout) == OBJ_WAIT_TIMEDOUT) |
206 | { | 206 | { |
207 | imx233_dma_reset_channel(APB_I2C); | 207 | imx233_dma_reset_channel(APB_I2C); |
208 | imx233_i2c_reset(); | ||
208 | ret = I2C_TIMEOUT; | 209 | ret = I2C_TIMEOUT; |
209 | } | 210 | } |
210 | else if(BF_RD(I2C_CTRL1, MASTER_LOSS_IRQ)) | 211 | else if(BF_RD(I2C_CTRL1, MASTER_LOSS_IRQ)) |