Lines Matching full:rx
328 sc->rx.desc_ring[index].des0 = htole32((uint32_t)paddr); in eqos_setup_rxdesc()
329 sc->rx.desc_ring[index].des1 = htole32((uint32_t)(paddr >> 32)); in eqos_setup_rxdesc()
330 sc->rx.desc_ring[index].des2 = htole32(0); in eqos_setup_rxdesc()
331 bus_dmamap_sync(sc->rx.desc_tag, sc->rx.desc_map, BUS_DMASYNC_PREWRITE); in eqos_setup_rxdesc()
332 sc->rx.desc_ring[index].des3 = htole32(EQOS_RDES3_OWN | EQOS_RDES3_IOC | in eqos_setup_rxdesc()
344 error = bus_dmamap_load_mbuf_sg(sc->rx.buf_tag, in eqos_setup_rxbuf()
345 sc->rx.buf_map[index].map, m, &seg, &nsegs, 0); in eqos_setup_rxbuf()
349 bus_dmamap_sync(sc->rx.buf_tag, sc->rx.buf_map[index].map, in eqos_setup_rxbuf()
352 sc->rx.buf_map[index].mbuf = m; in eqos_setup_rxbuf()
479 (uint32_t)(sc->rx.desc_ring_paddr >> 32)); in eqos_init_rings()
481 (uint32_t)sc->rx.desc_ring_paddr); in eqos_init_rings()
485 (uint32_t)sc->rx.desc_ring_paddr + DESC_OFFSET(RX_DESC_COUNT)); in eqos_init_rings()
547 /* set RX queue mode. must be in DCB mode. */ in eqos_init()
685 rdes3 = le32toh(sc->rx.desc_ring[sc->rx.head].des3); in eqos_rxintr()
692 bus_dmamap_sync(sc->rx.buf_tag, in eqos_rxintr()
693 sc->rx.buf_map[sc->rx.head].map, BUS_DMASYNC_POSTREAD); in eqos_rxintr()
694 bus_dmamap_unload(sc->rx.buf_tag, in eqos_rxintr()
695 sc->rx.buf_map[sc->rx.head].map); in eqos_rxintr()
699 m = sc->rx.buf_map[sc->rx.head].mbuf; in eqos_rxintr()
714 if ((error = eqos_setup_rxbuf(sc, sc->rx.head, m))) in eqos_rxintr()
715 printf("ERROR: Hole in RX ring!!\n"); in eqos_rxintr()
723 (uint32_t)sc->rx.desc_ring_paddr + DESC_OFFSET(sc->rx.head)); in eqos_rxintr()
725 sc->rx.head = RX_NEXT(sc->rx.head); in eqos_rxintr()
864 device_printf(sc->dev, "RX/TX status interrupt\n"); in eqos_intr()
1044 /* Set up RX descriptor ring, descriptors, dma maps, and mbufs */ in eqos_setup_dma()
1050 NULL, NULL, &sc->rx.desc_tag))) { in eqos_setup_dma()
1051 device_printf(sc->dev, "could not create RX ring DMA tag.\n"); in eqos_setup_dma()
1055 if ((error = bus_dmamem_alloc(sc->rx.desc_tag, in eqos_setup_dma()
1056 (void **)&sc->rx.desc_ring, in eqos_setup_dma()
1058 &sc->rx.desc_map))) { in eqos_setup_dma()
1060 "could not allocate RX descriptor ring.\n"); in eqos_setup_dma()
1064 if ((error = bus_dmamap_load(sc->rx.desc_tag, sc->rx.desc_map, in eqos_setup_dma()
1065 sc->rx.desc_ring, RX_DESC_SIZE, eqos_get1paddr, in eqos_setup_dma()
1066 &sc->rx.desc_ring_paddr, 0))) { in eqos_setup_dma()
1068 "could not load RX descriptor ring map.\n"); in eqos_setup_dma()
1077 &sc->rx.buf_tag))) { in eqos_setup_dma()
1078 device_printf(sc->dev, "could not create RX buf DMA tag.\n"); in eqos_setup_dma()
1083 if ((error = bus_dmamap_create(sc->rx.buf_tag, BUS_DMA_COHERENT, in eqos_setup_dma()
1084 &sc->rx.buf_map[i].map))) { in eqos_setup_dma()
1085 device_printf(sc->dev, "cannot create RX buffer map\n"); in eqos_setup_dma()
1089 device_printf(sc->dev, "cannot allocate RX mbuf\n"); in eqos_setup_dma()
1093 device_printf(sc->dev, "cannot create RX buffer\n"); in eqos_setup_dma()
1099 device_printf(sc->dev, "TX ring @ 0x%lx, RX ring @ 0x%lx\n", in eqos_setup_dma()
1100 sc->tx.desc_ring_paddr, sc->rx.desc_ring_paddr); in eqos_setup_dma()
1247 if (sc->rx.desc_tag) { in eqos_detach()
1248 if (sc->rx.desc_map) { in eqos_detach()
1249 bus_dmamap_unload(sc->rx.desc_tag, sc->rx.desc_map); in eqos_detach()
1250 bus_dmamem_free(sc->rx.desc_tag, sc->rx.desc_ring, in eqos_detach()
1251 sc->rx.desc_map); in eqos_detach()
1253 bus_dma_tag_destroy(sc->rx.desc_tag); in eqos_detach()
1255 if (sc->rx.buf_tag) { in eqos_detach()
1257 m_free(sc->rx.buf_map[i].mbuf); in eqos_detach()
1258 bus_dmamap_destroy(sc->rx.buf_tag, in eqos_detach()
1259 sc->rx.buf_map[i].map); in eqos_detach()
1261 bus_dma_tag_destroy(sc->rx.buf_tag); in eqos_detach()