Lines Matching refs:rxq
73 struct alx_rx_queue *rxq = alx->qnapi[0]->rxq;
79 next = cur = rxq->write_idx;
82 cur_buf = &rxq->bufs[cur];
84 while (!cur_buf->skb && next != rxq->read_idx) {
85 struct alx_rfd *rfd = &rxq->rfd[cur];
127 cur_buf = &rxq->bufs[cur];
134 rxq->write_idx = cur;
216 static int alx_clean_rx_irq(struct alx_rx_queue *rxq, int budget)
225 alx = netdev_priv(rxq->netdev);
228 rrd = &rxq->rrd[rxq->rrd_read_idx];
234 RRD_SI) != rxq->read_idx ||
241 rxb = &rxq->bufs[rxq->read_idx];
242 dma_unmap_single(rxq->dev,
260 skb->protocol = eth_type_trans(skb, rxq->netdev);
277 napi_gro_receive(&rxq->np->napi, skb);
281 if (++rxq->read_idx == rxq->count)
282 rxq->read_idx = 0;
283 if (++rxq->rrd_read_idx == rxq->count)
284 rxq->rrd_read_idx = 0;
307 if (np->rxq)
308 work = alx_clean_rx_irq(np->rxq, budget);
467 if (np->rxq) {
468 np->rxq->read_idx = 0;
469 np->rxq->write_idx = 0;
470 np->rxq->rrd_read_idx = 0;
471 alx_write_mem32(hw, ALX_RRD_ADDR_LO, np->rxq->rrd_dma);
472 alx_write_mem32(hw, ALX_RFD_ADDR_LO, np->rxq->rfd_dma);
506 static void alx_free_rxring_buf(struct alx_rx_queue *rxq)
511 if (!rxq->bufs)
514 for (i = 0; i < rxq->count; i++) {
515 cur_buf = rxq->bufs + i;
517 dma_unmap_single(rxq->dev,
528 rxq->write_idx = 0;
529 rxq->read_idx = 0;
530 rxq->rrd_read_idx = 0;
541 if (alx->qnapi[0] && alx->qnapi[0]->rxq)
542 alx_free_rxring_buf(alx->qnapi[0]->rxq);
630 static int alx_alloc_rx_ring(struct alx_priv *alx, struct alx_rx_queue *rxq,
633 rxq->bufs = kcalloc(rxq->count, sizeof(struct alx_buffer), GFP_KERNEL);
634 if (!rxq->bufs)
637 rxq->rrd = alx->descmem.virt + offset;
638 rxq->rrd_dma = alx->descmem.dma + offset;
639 offset += sizeof(struct alx_rrd) * rxq->count;
641 rxq->rfd = alx->descmem.virt + offset;
642 rxq->rfd_dma = alx->descmem.dma + offset;
643 offset += sizeof(struct alx_rfd) * rxq->count;
680 offset = alx_alloc_rx_ring(alx, alx->qnapi[0]->rxq, offset);
699 if (alx->qnapi[0] && alx->qnapi[0]->rxq)
700 kfree(alx->qnapi[0]->rxq->bufs);
721 kfree(np->rxq);
741 struct alx_rx_queue *rxq;
778 rxq = kzalloc(sizeof(*rxq), GFP_KERNEL);
779 if (!rxq)
782 np->rxq = rxq;
783 rxq->np = alx->qnapi[0];
784 rxq->queue_idx = 0;
785 rxq->count = alx->rx_ringsz;
786 rxq->netdev = alx->dev;
787 rxq->dev = &alx->hw.pdev->dev;
867 if (np->txq && np->rxq)
873 else if (np->rxq)
875 np->rxq->queue_idx);