void octeon_eth_send_queue_flush_fetch(struct octeon_eth_softc *sc) { #ifndef OCTEON_ETH_DEBUG if (!sc->sc_prefetch) return; #endif OCTEON_ETH_KASSERT(sc->sc_prefetch == 1); sc->sc_hard_done_cnt = cn30xxfau_op_inc_read_8(&sc->sc_fau_done); OCTEON_ETH_KASSERT(sc->sc_hard_done_cnt <= 0); sc->sc_prefetch = 0; }
void octeon_eth_send_queue_flush_sync(struct octeon_eth_softc *sc) { if (sc->sc_flush == 0) return; OCTEON_ETH_KASSERT(sc->sc_flush > 0); /* XXX */ cn30xxfau_op_inc_read_8(&sc->sc_fau_done); sc->sc_soft_req_cnt -= sc->sc_flush; OCTEON_ETH_KASSERT(sc->sc_soft_req_cnt >= 0); /* XXX */ sc->sc_flush = 0; }