PERFORCE change 110322 for review

Warner Losh imp at FreeBSD.org
Tue Nov 21 16:21:08 UTC 2006


http://perforce.freebsd.org/chv.cgi?CH=110322

Change 110322 by imp at imp_lighthouse on 2006/11/21 00:54:04

	Don't return EIO when reset works (doesn't matter though)
	Add silly printf
	at91_twi_wait() returns 0 for success, not failure.
	
	We now seem to read things, but the data isn't returned to
	userland for reasosn unknown.

Affected files ...

.. //depot/projects/arm/src/sys/arm/at91/at91_twi.c#27 edit

Differences ...

==== //depot/projects/arm/src/sys/arm/at91/at91_twi.c#27 (text+ko) ====

@@ -396,7 +396,7 @@
 	WR4(sc, TWI_CR, TWI_CR_MSEN | TWI_CR_SVDIS);
 	WR4(sc, TWI_CWGR, sc->cwgr);
 
-	return EIO;
+	return 0;
 }
 
 static int
@@ -435,6 +435,8 @@
 		 * See http://lists.arm.linux.org.uk/pipermail/linux-arm-kernel/2004-September/024411.html
 		 * for details.
 		 */
+	    printf("%d: flags %#x len %d buf %p\n", i, msgs[i].flags,
+	      msgs[i].len, msgs[i].buf);
 		rdwr = (msgs[i].flags & IIC_M_RD) ? TWI_MMR_MREAD : 0;
 		WR4(sc, TWI_MMR, TWI_MMR_DADR(msgs[i].slave) | rdwr);
 		len = msgs[i].len;
@@ -446,7 +448,7 @@
 			while (len--) {
 				if (len == 0)
 					WR4(sc, TWI_CR, TWI_CR_STOP);
-				if (!at91_twi_wait(sc, TWI_SR_RXRDY)) {
+				if (at91_twi_wait(sc, TWI_SR_RXRDY)) {
 					printf("1\n");
 					return (EIO);
 				}
@@ -457,13 +459,13 @@
 				WR4(sc, TWI_THR, *buf++);
 				if (len == 0)
 					WR4(sc, TWI_CR, TWI_CR_STOP);
-				if (!at91_twi_wait(sc, TWI_SR_TXRDY)) {
+				if (at91_twi_wait(sc, TWI_SR_TXRDY)) {
 					printf("3\n");
 					return (EIO);
 				}
 			}
 		}
-		if (!at91_twi_wait(sc, TWI_SR_TXCOMP)) {
+		if (at91_twi_wait(sc, TWI_SR_TXCOMP)) {
 			printf("2\n");
 			return (EIO);
 		}


More information about the p4-projects mailing list