Lines Matching refs:rxq

74 	struct alx_rx_queue *rxq = alx->qnapi[0]->rxq;
80 next = cur = rxq->write_idx;
83 cur_buf = &rxq->bufs[cur];
85 while (!cur_buf->skb && next != rxq->read_idx) {
86 struct alx_rfd *rfd = &rxq->rfd[cur];
128 cur_buf = &rxq->bufs[cur];
135 rxq->write_idx = cur;
217 static int alx_clean_rx_irq(struct alx_rx_queue *rxq, int budget)
226 alx = netdev_priv(rxq->netdev);
229 rrd = &rxq->rrd[rxq->rrd_read_idx];
235 RRD_SI) != rxq->read_idx ||
242 rxb = &rxq->bufs[rxq->read_idx];
243 dma_unmap_single(rxq->dev,
261 skb->protocol = eth_type_trans(skb, rxq->netdev);
278 napi_gro_receive(&rxq->np->napi, skb);
282 if (++rxq->read_idx == rxq->count)
283 rxq->read_idx = 0;
284 if (++rxq->rrd_read_idx == rxq->count)
285 rxq->rrd_read_idx = 0;
308 if (np->rxq)
309 work = alx_clean_rx_irq(np->rxq, budget);
468 if (np->rxq) {
469 np->rxq->read_idx = 0;
470 np->rxq->write_idx = 0;
471 np->rxq->rrd_read_idx = 0;
472 alx_write_mem32(hw, ALX_RRD_ADDR_LO, np->rxq->rrd_dma);
473 alx_write_mem32(hw, ALX_RFD_ADDR_LO, np->rxq->rfd_dma);
507 static void alx_free_rxring_buf(struct alx_rx_queue *rxq)
512 if (!rxq->bufs)
515 for (i = 0; i < rxq->count; i++) {
516 cur_buf = rxq->bufs + i;
518 dma_unmap_single(rxq->dev,
529 rxq->write_idx = 0;
530 rxq->read_idx = 0;
531 rxq->rrd_read_idx = 0;
542 if (alx->qnapi[0] && alx->qnapi[0]->rxq)
543 alx_free_rxring_buf(alx->qnapi[0]->rxq);
631 static int alx_alloc_rx_ring(struct alx_priv *alx, struct alx_rx_queue *rxq,
634 rxq->bufs = kcalloc(rxq->count, sizeof(struct alx_buffer), GFP_KERNEL);
635 if (!rxq->bufs)
638 rxq->rrd = alx->descmem.virt + offset;
639 rxq->rrd_dma = alx->descmem.dma + offset;
640 offset += sizeof(struct alx_rrd) * rxq->count;
642 rxq->rfd = alx->descmem.virt + offset;
643 rxq->rfd_dma = alx->descmem.dma + offset;
644 offset += sizeof(struct alx_rfd) * rxq->count;
681 offset = alx_alloc_rx_ring(alx, alx->qnapi[0]->rxq, offset);
700 if (alx->qnapi[0] && alx->qnapi[0]->rxq)
701 kfree(alx->qnapi[0]->rxq->bufs);
722 kfree(np->rxq);
742 struct alx_rx_queue *rxq;
779 rxq = kzalloc(sizeof(*rxq), GFP_KERNEL);
780 if (!rxq)
783 np->rxq = rxq;
784 rxq->np = alx->qnapi[0];
785 rxq->queue_idx = 0;
786 rxq->count = alx->rx_ringsz;
787 rxq->netdev = alx->dev;
788 rxq->dev = &alx->hw.pdev->dev;
868 if (np->txq && np->rxq)
874 else if (np->rxq)
876 np->rxq->queue_idx);