svn commit: r204539 - head/sys/dev/msk
Pyun YongHyeon
yongari at FreeBSD.org
Mon Mar 1 22:43:23 UTC 2010
Author: yongari
Date: Mon Mar 1 22:43:22 2010
New Revision: 204539
URL: http://svn.freebsd.org/changeset/base/204539
Log:
Properly sync status LEs after processing.
Modified:
head/sys/dev/msk/if_msk.c
Modified: head/sys/dev/msk/if_msk.c
==============================================================================
--- head/sys/dev/msk/if_msk.c Mon Mar 1 21:30:44 2010 (r204538)
+++ head/sys/dev/msk/if_msk.c Mon Mar 1 22:43:22 2010 (r204539)
@@ -3376,7 +3376,6 @@ msk_handle_events(struct msk_softc *sc)
/* Sync status LEs. */
bus_dmamap_sync(sc->msk_stat_tag, sc->msk_stat_map,
BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE);
- /* XXX Sync Rx LEs here. */
rxput[MSK_PORT_A] = rxput[MSK_PORT_B] = 0;
@@ -3386,13 +3385,6 @@ msk_handle_events(struct msk_softc *sc)
control = le32toh(sd->msk_control);
if ((control & HW_OWNER) == 0)
break;
- /*
- * Marvell's FreeBSD driver updates status LE after clearing
- * HW_OWNER. However we don't have a way to sync single LE
- * with bus_dma(9) API. bus_dma(9) provides a way to sync
- * an entire DMA map. So don't sync LE until we have a better
- * way to sync LEs.
- */
control &= ~HW_OWNER;
sd->msk_control = htole32(control);
status = le32toh(sd->msk_status);
@@ -3453,7 +3445,8 @@ msk_handle_events(struct msk_softc *sc)
}
sc->msk_stat_cons = cons;
- /* XXX We should sync status LEs here. See above notes. */
+ bus_dmamap_sync(sc->msk_stat_tag, sc->msk_stat_map,
+ BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE);
if (rxput[MSK_PORT_A] > 0)
msk_rxput(sc->msk_if[MSK_PORT_A]);
More information about the svn-src-head
mailing list