Lines Matching defs:rxr

2273 	struct ixl_rx_ring *rxr;
2289 rxr = ixl_rxr_alloc(sc, i);
2290 if (rxr == NULL)
2295 ixl_rxr_free(sc, rxr);
2301 iv->iv_rxr = rxr;
2309 ifiq->ifiq_softc = rxr;
2310 rxr->rxr_ifiq = ifiq;
2317 rxr = iv->iv_rxr;
2322 ixl_rxr_config(sc, rxr);
2328 ixl_wr(sc, rxr->rxr_tail, 0);
2329 ixl_rxfill(sc, rxr);
2342 rxr = iv->iv_rxr;
2345 if (ixl_rxr_enabled(sc, rxr) != 0)
2428 rxr = iv->iv_rxr;
2431 if (rxr == NULL) {
2440 ixl_rxr_free(sc, rxr);
2500 struct ixl_rx_ring *rxr;
2530 rxr = iv->iv_rxr;
2537 timeout_del_barrier(&rxr->rxr_refill);
2558 rxr = iv->iv_rxr;
2564 if (ixl_rxr_disabled(sc, rxr) != 0)
2570 rxr = iv->iv_rxr;
2574 ixl_rxr_unconfig(sc, rxr);
2577 ixl_rxr_clean(sc, rxr);
2580 ixl_rxr_free(sc, rxr);
3061 struct ixl_rx_ring *rxr;
3065 rxr = malloc(sizeof(*rxr), M_DEVBUF, M_WAITOK|M_CANFAIL);
3066 if (rxr == NULL)
3074 if (ixl_dmamem_alloc(sc, &rxr->rxr_mem,
3091 rxr->rxr_sc = sc;
3092 if_rxr_init(&rxr->rxr_acct, 17, sc->sc_rx_ring_ndescs - 1);
3093 timeout_set(&rxr->rxr_refill, ixl_rxrefill, rxr);
3094 rxr->rxr_cons = rxr->rxr_prod = 0;
3095 rxr->rxr_m_head = NULL;
3096 rxr->rxr_m_tail = &rxr->rxr_m_head;
3097 rxr->rxr_maps = maps;
3099 rxr->rxr_tail = I40E_QRX_TAIL(qid);
3100 rxr->rxr_qid = qid;
3102 return (rxr);
3114 ixl_dmamem_free(sc, &rxr->rxr_mem);
3118 free(rxr, M_DEVBUF, sizeof(*rxr));
3123 ixl_rxr_clean(struct ixl_softc *sc, struct ixl_rx_ring *rxr)
3129 timeout_del_barrier(&rxr->rxr_refill);
3131 maps = rxr->rxr_maps;
3147 m_freem(rxr->rxr_m_head);
3148 rxr->rxr_m_head = NULL;
3149 rxr->rxr_m_tail = &rxr->rxr_m_head;
3151 rxr->rxr_prod = rxr->rxr_cons = 0;
3155 ixl_rxr_enabled(struct ixl_softc *sc, struct ixl_rx_ring *rxr)
3157 bus_size_t ena = I40E_QRX_ENA(rxr->rxr_qid);
3173 ixl_rxr_disabled(struct ixl_softc *sc, struct ixl_rx_ring *rxr)
3175 bus_size_t ena = I40E_QRX_ENA(rxr->rxr_qid);
3191 ixl_rxr_config(struct ixl_softc *sc, struct ixl_rx_ring *rxr)
3200 IXL_DMA_DVA(&rxr->rxr_mem) / IXL_HMC_RXQ_BASE_UNIT);
3217 hmc = ixl_hmc_kva(sc, IXL_HMC_LAN_RX, rxr->rxr_qid);
3223 ixl_rxr_unconfig(struct ixl_softc *sc, struct ixl_rx_ring *rxr)
3227 hmc = ixl_hmc_kva(sc, IXL_HMC_LAN_RX, rxr->rxr_qid);
3232 ixl_rxr_free(struct ixl_softc *sc, struct ixl_rx_ring *rxr)
3237 maps = rxr->rxr_maps;
3244 ixl_dmamem_free(sc, &rxr->rxr_mem);
3246 free(rxr, M_DEVBUF, sizeof(*rxr));
3250 ixl_rxeof(struct ixl_softc *sc, struct ixl_rx_ring *rxr)
3252 struct ifiqueue *ifiq = rxr->rxr_ifiq;
3265 prod = rxr->rxr_prod;
3266 cons = rxr->rxr_cons;
3271 bus_dmamap_sync(sc->sc_dmat, IXL_DMA_MAP(&rxr->rxr_mem),
3272 0, IXL_DMA_LEN(&rxr->rxr_mem),
3275 ring = IXL_DMA_KVA(&rxr->rxr_mem);
3285 if_rxr_put(&rxr->rxr_acct, 1);
3287 rxm = &rxr->rxr_maps[cons];
3302 *rxr->rxr_m_tail = m;
3303 rxr->rxr_m_tail = &m->m_next;
3305 m = rxr->rxr_m_head;
3333 rxr->rxr_m_head = NULL;
3334 rxr->rxr_m_tail = &rxr->rxr_m_head;
3344 rxr->rxr_cons = cons;
3346 if_rxr_livelocked(&rxr->rxr_acct);
3347 ixl_rxfill(sc, rxr);
3350 bus_dmamap_sync(sc->sc_dmat, IXL_DMA_MAP(&rxr->rxr_mem),
3351 0, IXL_DMA_LEN(&rxr->rxr_mem),
3358 ixl_rxfill(struct ixl_softc *sc, struct ixl_rx_ring *rxr)
3369 slots = if_rxr_get(&rxr->rxr_acct, sc->sc_rx_ring_ndescs);
3373 prod = rxr->rxr_prod;
3375 ring = IXL_DMA_KVA(&rxr->rxr_mem);
3379 rxm = &rxr->rxr_maps[prod];
3411 if_rxr_put(&rxr->rxr_acct, slots);
3413 if (if_rxr_inuse(&rxr->rxr_acct) == 0)
3414 timeout_add(&rxr->rxr_refill, 1);
3416 rxr->rxr_prod = prod;
3417 ixl_wr(sc, rxr->rxr_tail, prod);
3424 struct ixl_rx_ring *rxr = arg;
3425 struct ixl_softc *sc = rxr->rxr_sc;
3427 ixl_rxfill(sc, rxr);