summaryrefslogtreecommitdiffstats
path: root/sys/arm
diff options
context:
space:
mode:
authorticso <ticso@FreeBSD.org>2010-09-27 15:55:30 +0000
committerticso <ticso@FreeBSD.org>2010-09-27 15:55:30 +0000
commit79e7676578199d8350e163adc8e9ade72450929a (patch)
treec6c3e166d0e95d118142745d467286cfd2985724 /sys/arm
parent4eb4bc749de2e5c5522a10481871dc1e50e646d5 (diff)
downloadFreeBSD-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.c2
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);
}
}
OpenPOWER on IntegriCloud