svn commit: r238895 - head/sys/arm/at91

Warner Losh imp at FreeBSD.org
Mon Jul 30 06:00:32 UTC 2012


Author: imp
Date: Mon Jul 30 06:00:31 2012
New Revision: 238895
URL: http://svn.freebsd.org/changeset/base/238895

Log:
  Fix a couple of comments about the rm9200, and fix a couple of indentation
  issues.  Add note that we need to implement at91sam9260 erratum workaround.

Modified:
  head/sys/arm/at91/if_ate.c

Modified: head/sys/arm/at91/if_ate.c
==============================================================================
--- head/sys/arm/at91/if_ate.c	Mon Jul 30 03:00:58 2012	(r238894)
+++ head/sys/arm/at91/if_ate.c	Mon Jul 30 06:00:31 2012	(r238895)
@@ -569,8 +569,6 @@ ate_activate(device_t dev)
 
 	/*
 	 * DMA tag and map for the TX descriptors.
-	 * XXX Old EMAC (not EMACB) doesn't really need DMA'able
-	 * memory. We could just malloc it. gja XXX
 	 */
 	if (bus_dma_tag_create(bus_get_dma_tag(dev), sizeof(eth_tx_desc_t),
 	    0, BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL,
@@ -606,11 +604,10 @@ ate_activate(device_t dev)
 	if (sc->is_emacb) {
 		/* Write the descriptor queue address. */
 		WR4(sc, ETHB_TBQP, sc->tx_desc_phys);
-	}
 
-	/* EMACB: Enable transceiver input clock */
-	if (sc->is_emacb)
+		/* EMACB: Enable transceiver input clock */
 		WR4(sc, ETHB_UIO, RD4(sc, ETHB_UIO) | ETHB_UIO_CLKE);
+	}
 
 	return (0);
 
@@ -676,7 +673,7 @@ ate_deactivate(struct ate_softc *sc)
 	}
 
 	if (sc->is_emacb)
-	    WR4(sc, ETHB_UIO, RD4(sc, ETHB_UIO) & ~ETHB_UIO_CLKE);
+		WR4(sc, ETHB_UIO, RD4(sc, ETHB_UIO) & ~ETHB_UIO_CLKE);
 }
 
 /*
@@ -849,12 +846,11 @@ ate_intr(void *xsc)
 		return;
 
 	if (status & ETH_ISR_RCOM) {
-
-	    bus_dmamap_sync(sc->rx_desc_tag, sc->rx_desc_map,
+		bus_dmamap_sync(sc->rx_desc_tag, sc->rx_desc_map,
 		    BUS_DMASYNC_POSTREAD);
 
-	    rxdhead = &sc->rx_descs[sc->rxhead];
-	    while (rxdhead->addr & ETH_CPU_OWNER) {
+		rxdhead = &sc->rx_descs[sc->rxhead];
+		while (rxdhead->addr & ETH_CPU_OWNER) {
 			if (!sc->is_emacb) {
 				/*
 				 * Simulate SAM9 FIRST/LAST bits for RM9200.
@@ -933,7 +929,8 @@ ate_intr(void *xsc)
 
 						/* XXX Performance robbing copy. Could
 						 * recieve directly to mbufs if not an
-						 * RM9200. XXX  */
+						 * RM9200. And even then we could likely
+						 * copy just the protocol headers. XXX  */
 						m_append(mb, count, sc->rx_buf[sc->rxhead]);
 						remain -= count;
 				}
@@ -1014,6 +1011,9 @@ ate_intr(void *xsc)
 		BARRIER(sc, ETH_CTL, 4, BUS_SPACE_BARRIER_WRITE);
 		WR4(sc, ETH_CTL, reg | ETH_CTL_RE);
 	}
+
+	/* XXX need to work around SAM9260 errata 43.2.4.1:
+	 * disable the mac, reset tx buffer, enable mac on TUND */
 }
 
 /*
@@ -1269,7 +1269,7 @@ atestop(struct ate_softc *sc)
 
 	/* Turn off transeiver input clock */
 	if (sc->is_emacb)
-	    WR4(sc, ETHB_UIO, RD4(sc, ETHB_UIO) & ~ETHB_UIO_CLKE);
+		WR4(sc, ETHB_UIO, RD4(sc, ETHB_UIO) & ~ETHB_UIO_CLKE);
 
 	/*
 	 * XXX we should power down the EMAC if it isn't in use, after


More information about the svn-src-all mailing list