diff options
author | loos <loos@FreeBSD.org> | 2014-11-12 03:07:46 +0000 |
---|---|---|
committer | loos <loos@FreeBSD.org> | 2014-11-12 03:07:46 +0000 |
commit | 8fddc417c9c63cb5342b72d6216583e1d9b55632 (patch) | |
tree | 54f82c9f43857e2ecf0d6ede0f6c33f0bf0ef513 /sys/arm/broadcom | |
parent | 6810cd7aa8b1370942f999924f1b69f0043230d7 (diff) | |
download | FreeBSD-src-8fddc417c9c63cb5342b72d6216583e1d9b55632.zip FreeBSD-src-8fddc417c9c63cb5342b72d6216583e1d9b55632.tar.gz |
Fix the error checking, broken on r273337, to _not_ ignore controller
errors.
Without this fix you can't even scan the bus (all operations will always
succeed).
MFC with: r273337
Pointy hat to: loos
Diffstat (limited to 'sys/arm/broadcom')
-rw-r--r-- | sys/arm/broadcom/bcm2835/bcm2835_bsc.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/arm/broadcom/bcm2835/bcm2835_bsc.c b/sys/arm/broadcom/bcm2835/bcm2835_bsc.c index 4c69765..58fa09e 100644 --- a/sys/arm/broadcom/bcm2835/bcm2835_bsc.c +++ b/sys/arm/broadcom/bcm2835/bcm2835_bsc.c @@ -441,7 +441,7 @@ bcm_bsc_transfer(device_t dev, struct iic_msg *msgs, uint32_t nmsgs) err = mtx_sleep(dev, &sc->sc_mtx, 0, "bsciow", hz); /* Check for errors. */ - if (err != 0 && (sc->sc_flags & BCM_I2C_ERROR)) + if (err == 0 && (sc->sc_flags & BCM_I2C_ERROR)) err = EIO; if (err != 0) break; |