Lines Matching defs:rxr

378 	struct igc_rxring *rxr;
428 rxr = &sc->rx_rings[i];
429 rxr->sc = sc;
430 rxr->me = i;
431 timeout_set(&rxr->rx_refill, igc_rxrefill, rxr);
433 if (igc_dma_malloc(sc, rsize, &rxr->rxdma)) {
438 rxr->rx_base = (union igc_adv_rx_desc *)rxr->rxdma.dma_vaddr;
439 bzero((void *)rxr->rx_base, rsize);
447 iq->rxr = &sc->rx_rings[i];
454 for (rxr = sc->rx_rings; rxconf > 0; rxr++, rxconf--)
455 igc_dma_free(sc, &rxr->rxdma);
839 struct igc_rxring *rxr = &sc->rx_rings[i];
844 ifiq->ifiq_softc = rxr;
845 rxr->ifiq = ifiq;
854 struct igc_rxring *rxr;
919 rxr = &sc->rx_rings[i];
920 igc_rxfill(rxr);
921 if (if_rxr_inuse(&rxr->rx_ring) == 0) {
928 (rxr->last_desc_filled + 1) % sc->num_rx_desc);
1227 struct igc_rxring *rxr;
1234 rxr = &sc->rx_rings[i];
1237 ifr[n].ifr_info = rxr->rx_ring;
1248 igc_rxfill(struct igc_rxring *rxr)
1250 struct igc_softc *sc = rxr->sc;
1254 bus_dmamap_sync(rxr->rxdma.dma_tag, rxr->rxdma.dma_map, 0,
1255 rxr->rxdma.dma_map->dm_mapsize, BUS_DMASYNC_POSTWRITE);
1257 i = rxr->last_desc_filled;
1258 for (slots = if_rxr_get(&rxr->rx_ring, sc->num_rx_desc); slots > 0;
1263 if (igc_get_buf(rxr, i) != 0)
1266 rxr->last_desc_filled = i;
1270 bus_dmamap_sync(rxr->rxdma.dma_tag, rxr->rxdma.dma_map, 0,
1271 rxr->rxdma.dma_map->dm_mapsize, BUS_DMASYNC_PREWRITE);
1273 if_rxr_put(&rxr->rx_ring, slots);
1281 struct igc_rxring *rxr = xrxr;
1282 struct igc_softc *sc = rxr->sc;
1284 if (igc_rxfill(rxr)) {
1285 IGC_WRITE_REG(&sc->hw, IGC_RDT(rxr->me),
1286 (rxr->last_desc_filled + 1) % sc->num_rx_desc);
1288 else if (if_rxr_inuse(&rxr->rx_ring) == 0)
1289 timeout_add(&rxr->rx_refill, 1);
1300 igc_rxeof(struct igc_rxring *rxr)
1302 struct igc_softc *sc = rxr->sc;
1316 i = rxr->next_to_check;
1317 while (if_rxr_inuse(&rxr->rx_ring) > 0) {
1321 bus_dmamap_sync(rxr->rxdma.dma_tag, rxr->rxdma.dma_map,
1325 rxdesc = &rxr->rx_base[i];
1328 bus_dmamap_sync(rxr->rxdma.dma_tag, rxr->rxdma.dma_map,
1336 rxbuf = &rxr->rx_buffers[i];
1339 bus_dmamap_sync(rxr->rxdma.dma_tag, rxbuf->map, 0,
1341 bus_dmamap_unload(rxr->rxdma.dma_tag, rxbuf->map);
1367 if_rxr_inuse(&rxr->rx_ring), rxr->last_desc_filled);
1377 nxbuf = &rxr->rx_buffers[nextp];
1415 if_rxr_put(&rxr->rx_ring, 1);
1416 bus_dmamap_sync(rxr->rxdma.dma_tag, rxr->rxdma.dma_map,
1424 rxr->next_to_check = i;
1426 if (ifiq_input(rxr->ifiq, &ml))
1427 if_rxr_livelocked(&rxr->rx_ring);
1661 igc_get_buf(struct igc_rxring *rxr, int i)
1663 struct igc_softc *sc = rxr->sc;
1669 rxbuf = &rxr->rx_buffers[i];
1670 rxdesc = &rxr->rx_base[i];
1683 error = bus_dmamap_load_mbuf(rxr->rxdma.dma_tag, rxbuf->map, m,
1690 bus_dmamap_sync(rxr->rxdma.dma_tag, rxbuf->map, 0,
1816 struct igc_rxring *rxr = iq->rxr;
1821 igc_rxeof(rxr);
1822 igc_rxrefill(rxr);
2144 igc_allocate_receive_buffers(struct igc_rxring *rxr)
2146 struct igc_softc *sc = rxr->sc;
2150 rxr->rx_buffers = mallocarray(sc->num_rx_desc,
2152 if (rxr->rx_buffers == NULL) {
2159 rxbuf = rxr->rx_buffers;
2161 error = bus_dmamap_create(rxr->rxdma.dma_tag,
2170 bus_dmamap_sync(rxr->rxdma.dma_tag, rxr->rxdma.dma_map, 0,
2171 rxr->rxdma.dma_map->dm_mapsize,
2187 struct igc_rxring *rxr = sc->rx_rings;
2190 for (i = 0; i < sc->sc_nqueues; i++, rxr++) {
2191 if (igc_setup_receive_ring(rxr))
2207 igc_setup_receive_ring(struct igc_rxring *rxr)
2209 struct igc_softc *sc = rxr->sc;
2217 bzero((void *)rxr->rx_base, rsize);
2219 if (igc_allocate_receive_buffers(rxr))
2223 rxr->next_to_check = 0;
2224 rxr->last_desc_filled = sc->num_rx_desc - 1;
2226 if_rxr_init(&rxr->rx_ring,
2243 struct igc_rxring *rxr = sc->rx_rings;
2305 for (i = 0; i < sc->sc_nqueues; i++, rxr++) {
2307 uint64_t bus_addr = rxr->rxdma.dma_map->dm_segs[0].ds_addr;
2347 struct igc_rxring *rxr;
2350 for (i = 0, rxr = sc->rx_rings; i < sc->sc_nqueues; i++, rxr++)
2351 if_rxr_init(&rxr->rx_ring, 0, 0);
2353 for (i = 0, rxr = sc->rx_rings; i < sc->sc_nqueues; i++, rxr++)
2354 igc_free_receive_buffers(rxr);
2363 igc_free_receive_buffers(struct igc_rxring *rxr)
2365 struct igc_softc *sc = rxr->sc;
2369 if (rxr->rx_buffers != NULL) {
2371 rxbuf = &rxr->rx_buffers[i];
2373 bus_dmamap_sync(rxr->rxdma.dma_tag, rxbuf->map,
2376 bus_dmamap_unload(rxr->rxdma.dma_tag,
2381 bus_dmamap_destroy(rxr->rxdma.dma_tag, rxbuf->map);
2384 free(rxr->rx_buffers, M_DEVBUF,
2386 rxr->rx_buffers = NULL;