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