diff options
author | ticso <ticso@FreeBSD.org> | 2010-09-27 15:55:30 +0000 |
---|---|---|
committer | ticso <ticso@FreeBSD.org> | 2010-09-27 15:55:30 +0000 |
commit | 79e7676578199d8350e163adc8e9ade72450929a (patch) | |
tree | c6c3e166d0e95d118142745d467286cfd2985724 /sys/arm | |
parent | 4eb4bc749de2e5c5522a10481871dc1e50e646d5 (diff) | |
download | FreeBSD-src-79e7676578199d8350e163adc8e9ade72450929a.zip FreeBSD-src-79e7676578199d8350e163adc8e9ade72450929a.tar.gz |
fix off by one error for twi reads with len != 1.
STOP must be requested before the last byte is received.
Diffstat (limited to 'sys/arm')
-rw-r--r-- | sys/arm/at91/at91_twi.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/arm/at91/at91_twi.c b/sys/arm/at91/at91_twi.c index 33ef8c0..6442d07 100644 --- a/sys/arm/at91/at91_twi.c +++ b/sys/arm/at91/at91_twi.c @@ -348,7 +348,7 @@ at91_twi_transfer(device_t dev, struct iic_msg *msgs, uint32_t nmsgs) if ((sr = RD4(sc, TWI_SR)) & TWI_SR_RXRDY) { len--; *buf++ = RD4(sc, TWI_RHR) & 0xff; - if (len == 0 && msgs[i].len != 1) + if (len == 1) WR4(sc, TWI_CR, TWI_CR_STOP); } } |