Lines Matching refs:rxr

1179 	struct rx_ring		*rxr = &que->rxr;
1187 i = j = rxr->next_refresh;
1193 buf = &rxr->buffers[i];
1194 if (rxr->hdr_split == FALSE)
1208 error = bus_dmamap_load_mbuf_sg(rxr->htag,
1218 bus_dmamap_sync(rxr->htag, buf->hmap,
1220 rxr->base[i].read.hdr_addr =
1226 M_PKTHDR, rxr->mbuf_sz);
1232 mp->m_pkthdr.len = mp->m_len = rxr->mbuf_sz;
1234 error = bus_dmamap_load_mbuf_sg(rxr->ptag,
1244 bus_dmamap_sync(rxr->ptag, buf->pmap,
1246 rxr->base[i].read.pkt_addr =
1249 rxr->base[i].read.hdr_addr = 0;
1254 rxr->next_refresh = i;
1260 wr32(vsi->hw, rxr->tail, rxr->next_refresh);
1276 struct rx_ring *rxr = &que->rxr;
1293 &rxr->htag))) {
1309 &rxr->ptag))) {
1315 if (!(rxr->buffers =
1324 buf = &rxr->buffers[i];
1325 error = bus_dmamap_create(rxr->htag,
1331 error = bus_dmamap_create(rxr->ptag,
1334 bus_dmamap_destroy(rxr->htag, buf->hmap);
1343 buf = &rxr->buffers[i];
1344 bus_dmamap_destroy(rxr->ptag, buf->pmap);
1345 bus_dmamap_destroy(rxr->htag, buf->hmap);
1347 free(rxr->buffers, M_DEVBUF);
1348 rxr->buffers = NULL;
1350 bus_dma_tag_destroy(rxr->ptag);
1351 rxr->ptag = NULL;
1353 bus_dma_tag_destroy(rxr->htag);
1354 rxr->htag = NULL;
1367 struct rx_ring *rxr = &que->rxr;
1371 struct lro_ctrl *lro = &rxr->lro;
1381 IXL_RX_LOCK(rxr);
1389 bzero((void *)rxr->base, rsize);
1392 buf = &rxr->buffers[i];
1394 bus_dmamap_sync(rxr->htag, buf->hmap,
1396 bus_dmamap_unload(rxr->htag, buf->hmap);
1401 bus_dmamap_sync(rxr->ptag, buf->pmap,
1403 bus_dmamap_unload(rxr->ptag, buf->pmap);
1412 rxr->hdr_split = FALSE;
1418 buf = &rxr->buffers[j];
1433 netmap_load_map(na, rxr->dma.tag, buf->pmap, addr);
1435 rxr->base[j].read.pkt_addr = htole64(paddr);
1436 rxr->base[j].read.hdr_addr = 0;
1444 if (rxr->hdr_split == FALSE)
1458 error = bus_dmamap_load_mbuf_sg(rxr->htag,
1463 bus_dmamap_sync(rxr->htag,
1466 rxr->base[j].read.hdr_addr = htole64(hseg[0].ds_addr);
1471 M_PKTHDR, rxr->mbuf_sz);
1477 mp->m_pkthdr.len = mp->m_len = rxr->mbuf_sz;
1479 error = bus_dmamap_load_mbuf_sg(rxr->ptag,
1484 bus_dmamap_sync(rxr->ptag,
1487 rxr->base[j].read.pkt_addr = htole64(pseg[0].ds_addr);
1488 rxr->base[j].read.hdr_addr = 0;
1493 rxr->next_check = 0;
1494 rxr->next_refresh = 0;
1495 rxr->lro_enabled = FALSE;
1496 rxr->split = 0;
1497 rxr->bytes = 0;
1498 rxr->discard = FALSE;
1500 wr32(vsi->hw, rxr->tail, que->num_rx_desc - 1);
1514 rxr->lro_enabled = TRUE;
1519 bus_dmamap_sync(rxr->dma.tag, rxr->dma.map,
1523 IXL_RX_UNLOCK(rxr);
1536 struct rx_ring *rxr = &que->rxr;
1540 if (rxr->buffers != NULL) {
1542 buf = &rxr->buffers[i];
1545 ixl_rx_discard(rxr, i);
1547 bus_dmamap_destroy(rxr->htag, buf->hmap);
1548 bus_dmamap_destroy(rxr->ptag, buf->pmap);
1550 free(rxr->buffers, M_DEVBUF);
1551 rxr->buffers = NULL;
1554 if (rxr->htag != NULL) {
1555 bus_dma_tag_destroy(rxr->htag);
1556 rxr->htag = NULL;
1558 if (rxr->ptag != NULL) {
1559 bus_dma_tag_destroy(rxr->ptag);
1560 rxr->ptag = NULL;
1565 ixl_rx_input(struct rx_ring *rxr, struct ifnet *ifp, struct mbuf *m, u8 ptype)
1574 if (rxr->lro_enabled &&
1584 if (rxr->lro.lro_cnt != 0)
1585 if (tcp_lro_rx(&rxr->lro, m, 0) == 0)
1589 IXL_RX_UNLOCK(rxr);
1591 IXL_RX_LOCK(rxr);
1596 ixl_rx_discard(struct rx_ring *rxr, int i)
1600 KASSERT(rxr != NULL, ("Receive ring pointer cannot be null"));
1601 KASSERT(i < rxr->que->num_rx_desc, ("Descriptor index must be less than que->num_rx_desc"));
1603 rbuf = &rxr->buffers[i];
1607 bus_dmamap_sync(rxr->ptag, rbuf->pmap, BUS_DMASYNC_POSTREAD);
1617 bus_dmamap_sync(rxr->htag, rbuf->hmap, BUS_DMASYNC_POSTREAD);
1618 bus_dmamap_unload(rxr->htag, rbuf->hmap);
1624 bus_dmamap_sync(rxr->ptag, rbuf->pmap, BUS_DMASYNC_POSTREAD);
1625 bus_dmamap_unload(rxr->ptag, rbuf->pmap);
1704 struct rx_ring *rxr = &que->rxr;
1707 struct lro_ctrl *lro = &rxr->lro;
1713 IXL_RX_LOCK(rxr);
1717 IXL_RX_UNLOCK(rxr);
1722 for (i = rxr->next_check; count != 0;) {
1731 bus_dmamap_sync(rxr->dma.tag, rxr->dma.map,
1734 cur = &rxr->base[i];
1748 ++rxr->not_done;
1758 rbuf = &rxr->buffers[i];
1769 bus_dmamap_sync(rxr->htag, rbuf->hmap,
1771 bus_dmamap_unload(rxr->htag, rbuf->hmap);
1774 bus_dmamap_sync(rxr->ptag, rbuf->pmap,
1776 bus_dmamap_unload(rxr->ptag, rbuf->pmap);
1785 rxr->desc_errs++;
1786 ixl_rx_discard(rxr, i);
1795 nbuf = &rxr->buffers[nextp];
1810 if (rxr->hdr_split && (rbuf->fmp == NULL)) {
1832 rxr->split++;
1889 rxr->rx_packets++;
1890 rxr->rx_bytes += sendmp->m_pkthdr.len;
1892 rxr->packets++;
1893 rxr->bytes += sendmp->m_pkthdr.len;
1911 bus_dmamap_sync(rxr->dma.tag, rxr->dma.map,
1920 rxr->next_check = i;
1921 ixl_rx_input(rxr, ifp, sendmp, ptype);
1926 i = rxr->next_check;
1940 rxr->next_check = i;
1957 IXL_RX_UNLOCK(rxr);
2095 struct rx_ring *rxr;
2108 rxr = &(queues[q].rxr);
2135 CTLFLAG_RD, &(rxr->rx_packets),
2138 CTLFLAG_RD, &(rxr->rx_bytes),
2141 CTLFLAG_RD, &(rxr->desc_errs),
2144 CTLFLAG_RD, &(rxr->itr), 0,
2160 CTLFLAG_RD, &(rxr->not_done),
2163 CTLFLAG_RD, &(rxr->next_refresh), 0,
2166 CTLFLAG_RD, &(rxr->next_check), 0,
2260 val = rd32(que->vsi->hw, que->rxr.tail);