Zero entire status block and add missing bus_dmamap_sync(9).
This commit is contained in:
parent
061b7e5463
commit
864104fe59
@ -1760,15 +1760,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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user