summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorPyun YongHyeon <yongari@FreeBSD.org>2010-08-15 22:44:28 +0000
committerPyun YongHyeon <yongari@FreeBSD.org>2010-08-15 22:44:28 +0000
commite5e941c12d516a25475f52a75493f54aa94e0e05 (patch)
tree4278ebf23d947d310b59a355709cba6a890ddd15 /sys
parentfea9cdf33fd1d475f841d6825d7753e4b70627dc (diff)
Notes
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/bge/if_bge.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/sys/dev/bge/if_bge.c b/sys/dev/bge/if_bge.c
index 1148e809bd28..a31f3454af58 100644
--- a/sys/dev/bge/if_bge.c
+++ b/sys/dev/bge/if_bge.c
@@ -1787,15 +1787,19 @@ bge_blockinit(struct bge_softc *sc)
BGE_ADDR_HI(sc->bge_ldata.bge_status_block_paddr));
CSR_WRITE_4(sc, BGE_HCC_STATUSBLK_ADDR_LO,
BGE_ADDR_LO(sc->bge_ldata.bge_status_block_paddr));
- sc->bge_ldata.bge_status_block->bge_idx[0].bge_rx_prod_idx = 0;
- sc->bge_ldata.bge_status_block->bge_idx[0].bge_tx_cons_idx = 0;
/* Set up status block size. */
if (sc->bge_asicrev == BGE_ASICREV_BCM5700 &&
- sc->bge_chipid != BGE_CHIPID_BCM5700_C0)
+ sc->bge_chipid != BGE_CHIPID_BCM5700_C0) {
val = BGE_STATBLKSZ_FULL;
- else
+ bzero(sc->bge_ldata.bge_status_block, BGE_STATUS_BLK_SZ);
+ } else {
val = BGE_STATBLKSZ_32BYTE;
+ bzero(sc->bge_ldata.bge_status_block, 32);
+ }
+ bus_dmamap_sync(sc->bge_cdata.bge_status_tag,
+ sc->bge_cdata.bge_status_map,
+ BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE);
/* Turn on host coalescing state machine */
CSR_WRITE_4(sc, BGE_HCC_MODE, val | BGE_HCCMODE_ENABLE);