diff options
author | yongari <yongari@FreeBSD.org> | 2012-02-23 05:10:00 +0000 |
---|---|---|
committer | yongari <yongari@FreeBSD.org> | 2012-02-23 05:10:00 +0000 |
commit | ee39e5dc9c34849f86dddd21737ff4bbb66f072d (patch) | |
tree | 38fe00e1432751295262c7c75cbd730c21788a50 | |
parent | 9859b8a5d674086d9d378f063205276bdc1bfad5 (diff) | |
download | FreeBSD-src-ee39e5dc9c34849f86dddd21737ff4bbb66f072d.zip FreeBSD-src-ee39e5dc9c34849f86dddd21737ff4bbb66f072d.tar.gz |
Give hardware chance to drain active DMA cycles.
-rw-r--r-- | sys/dev/sf/if_sf.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/dev/sf/if_sf.c b/sys/dev/sf/if_sf.c index 251f310..6a8b49f 100644 --- a/sys/dev/sf/if_sf.c +++ b/sys/dev/sf/if_sf.c @@ -2329,6 +2329,9 @@ sf_stop(struct sf_softc *sc) /* Disable Tx/Rx egine. */ csr_write_4(sc, SF_GEN_ETH_CTL, 0); + /* Give hardware chance to drain active DMA cycles. */ + DELAY(1000); + csr_write_4(sc, SF_CQ_CONSIDX, 0); csr_write_4(sc, SF_CQ_PRODIDX, 0); csr_write_4(sc, SF_RXDQ_ADDR_Q1, 0); |