Lines Matching defs:ring

1104 nfe_alloc_rx_ring(struct nfe_softc *sc, struct nfe_rx_ring *ring)
1112 desc = ring->desc64;
1115 desc = ring->desc32;
1119 ring->cur = ring->next = 0;
1130 &ring->rx_desc_tag);
1137 error = bus_dmamem_alloc(ring->rx_desc_tag, &desc, BUS_DMA_WAITOK |
1138 BUS_DMA_COHERENT | BUS_DMA_ZERO, &ring->rx_desc_map);
1144 ring->desc64 = desc;
1146 ring->desc32 = desc;
1150 error = bus_dmamap_load(ring->rx_desc_tag, ring->rx_desc_map, desc,
1156 ring->physaddr = ctx.nfe_busaddr;
1167 &ring->rx_data_tag);
1173 error = bus_dmamap_create(ring->rx_data_tag, 0, &ring->rx_spare_map);
1181 * Pre-allocate Rx buffers and populate Rx ring.
1187 error = bus_dmamap_create(ring->rx_data_tag, 0,
1202 nfe_alloc_jrx_ring(struct nfe_softc *sc, struct nfe_jrx_ring *ring)
1218 desc = ring->jdesc64;
1221 desc = ring->jdesc32;
1225 ring->jcur = ring->jnext = 0;
1227 /* Create DMA tag for jumbo Rx ring. */
1238 &ring->jrx_desc_tag);
1241 "could not create jumbo ring DMA tag\n");
1256 &ring->jrx_data_tag);
1263 /* Allocate DMA'able memory and load the DMA map for jumbo Rx ring. */
1264 error = bus_dmamem_alloc(ring->jrx_desc_tag, &desc, BUS_DMA_WAITOK |
1265 BUS_DMA_COHERENT | BUS_DMA_ZERO, &ring->jrx_desc_map);
1268 "could not allocate DMA'able memory for jumbo Rx ring\n");
1272 ring->jdesc64 = desc;
1274 ring->jdesc32 = desc;
1277 error = bus_dmamap_load(ring->jrx_desc_tag, ring->jrx_desc_map, desc,
1281 "could not load DMA'able memory for jumbo Rx ring\n");
1284 ring->jphysaddr = ctx.nfe_busaddr;
1287 error = bus_dmamap_create(ring->jrx_data_tag, 0, &ring->jrx_spare_map);
1298 error = bus_dmamap_create(ring->jrx_data_tag, 0,
1314 nfe_free_jrx_ring(sc, ring);
1322 nfe_init_rx_ring(struct nfe_softc *sc, struct nfe_rx_ring *ring)
1328 ring->cur = ring->next = 0;
1330 desc = ring->desc64;
1333 desc = ring->desc32;
1342 bus_dmamap_sync(ring->rx_desc_tag, ring->rx_desc_map,
1350 nfe_init_jrx_ring(struct nfe_softc *sc, struct nfe_jrx_ring *ring)
1356 ring->jcur = ring->jnext = 0;
1358 desc = ring->jdesc64;
1361 desc = ring->jdesc32;
1370 bus_dmamap_sync(ring->jrx_desc_tag, ring->jrx_desc_map,
1378 nfe_free_rx_ring(struct nfe_softc *sc, struct nfe_rx_ring *ring)
1385 desc = ring->desc64;
1387 desc = ring->desc32;
1390 data = &ring->data[i];
1392 bus_dmamap_destroy(ring->rx_data_tag,
1401 if (ring->rx_data_tag != NULL) {
1402 if (ring->rx_spare_map != NULL) {
1403 bus_dmamap_destroy(ring->rx_data_tag,
1404 ring->rx_spare_map);
1405 ring->rx_spare_map = NULL;
1407 bus_dma_tag_destroy(ring->rx_data_tag);
1408 ring->rx_data_tag = NULL;
1412 bus_dmamap_unload(ring->rx_desc_tag, ring->rx_desc_map);
1413 bus_dmamem_free(ring->rx_desc_tag, desc, ring->rx_desc_map);
1414 ring->desc64 = NULL;
1415 ring->desc32 = NULL;
1417 if (ring->rx_desc_tag != NULL) {
1418 bus_dma_tag_destroy(ring->rx_desc_tag);
1419 ring->rx_desc_tag = NULL;
1425 nfe_free_jrx_ring(struct nfe_softc *sc, struct nfe_jrx_ring *ring)
1435 desc = ring->jdesc64;
1438 desc = ring->jdesc32;
1443 data = &ring->jdata[i];
1445 bus_dmamap_destroy(ring->jrx_data_tag,
1454 if (ring->jrx_data_tag != NULL) {
1455 if (ring->jrx_spare_map != NULL) {
1456 bus_dmamap_destroy(ring->jrx_data_tag,
1457 ring->jrx_spare_map);
1458 ring->jrx_spare_map = NULL;
1460 bus_dma_tag_destroy(ring->jrx_data_tag);
1461 ring->jrx_data_tag = NULL;
1465 bus_dmamap_unload(ring->jrx_desc_tag, ring->jrx_desc_map);
1466 bus_dmamem_free(ring->jrx_desc_tag, desc, ring->jrx_desc_map);
1467 ring->jdesc64 = NULL;
1468 ring->jdesc32 = NULL;
1471 if (ring->jrx_desc_tag != NULL) {
1472 bus_dma_tag_destroy(ring->jrx_desc_tag);
1473 ring->jrx_desc_tag = NULL;
1479 nfe_alloc_tx_ring(struct nfe_softc *sc, struct nfe_tx_ring *ring)
1487 desc = ring->desc64;
1490 desc = ring->desc32;
1494 ring->queued = 0;
1495 ring->cur = ring->next = 0;
1506 &ring->tx_desc_tag);
1512 error = bus_dmamem_alloc(ring->tx_desc_tag, &desc, BUS_DMA_WAITOK |
1513 BUS_DMA_COHERENT | BUS_DMA_ZERO, &ring->tx_desc_map);
1519 ring->desc64 = desc;
1521 ring->desc32 = desc;
1524 error = bus_dmamap_load(ring->tx_desc_tag, ring->tx_desc_map, desc,
1530 ring->physaddr = ctx.nfe_busaddr;
1542 &ring->tx_data_tag);
1549 error = bus_dmamap_create(ring->tx_data_tag, 0,
1550 &ring->data[i].tx_data_map);
1564 nfe_init_tx_ring(struct nfe_softc *sc, struct nfe_tx_ring *ring)
1570 ring->queued = 0;
1571 ring->cur = ring->next = 0;
1573 desc = ring->desc64;
1576 desc = ring->desc32;
1581 bus_dmamap_sync(ring->tx_desc_tag, ring->tx_desc_map,
1587 nfe_free_tx_ring(struct nfe_softc *sc, struct nfe_tx_ring *ring)
1594 desc = ring->desc64;
1597 desc = ring->desc32;
1602 data = &ring->data[i];
1605 bus_dmamap_sync(ring->tx_data_tag, data->tx_data_map,
1607 bus_dmamap_unload(ring->tx_data_tag, data->tx_data_map);
1612 bus_dmamap_destroy(ring->tx_data_tag,
1618 if (ring->tx_data_tag != NULL) {
1619 bus_dma_tag_destroy(ring->tx_data_tag);
1620 ring->tx_data_tag = NULL;
1624 bus_dmamap_sync(ring->tx_desc_tag, ring->tx_desc_map,
1626 bus_dmamap_unload(ring->tx_desc_tag, ring->tx_desc_map);
1627 bus_dmamem_free(ring->tx_desc_tag, desc, ring->tx_desc_map);
1628 ring->desc64 = NULL;
1629 ring->desc32 = NULL;
1630 bus_dma_tag_destroy(ring->tx_desc_tag);
1631 ring->tx_desc_tag = NULL;
1924 /* check Rx ring */
1929 /* check Tx ring */