Lines Matching defs:rxr
717 struct bnx2_rx_ring_info *rxr = &bnapi->rx_ring;
721 if (rxr->rx_desc_ring[j])
723 rxr->rx_desc_ring[j],
724 rxr->rx_desc_mapping[j]);
725 rxr->rx_desc_ring[j] = NULL;
727 vfree(rxr->rx_buf_ring);
728 rxr->rx_buf_ring = NULL;
731 if (rxr->rx_pg_desc_ring[j])
733 rxr->rx_pg_desc_ring[j],
734 rxr->rx_pg_desc_mapping[j]);
735 rxr->rx_pg_desc_ring[j] = NULL;
737 vfree(rxr->rx_pg_ring);
738 rxr->rx_pg_ring = NULL;
771 struct bnx2_rx_ring_info *rxr = &bnapi->rx_ring;
774 rxr->rx_buf_ring =
776 if (!rxr->rx_buf_ring)
780 rxr->rx_desc_ring[j] =
783 &rxr->rx_desc_mapping[j],
785 if (!rxr->rx_desc_ring[j])
791 rxr->rx_pg_ring =
794 if (!rxr->rx_pg_ring)
800 rxr->rx_pg_desc_ring[j] =
803 &rxr->rx_pg_desc_mapping[j],
805 if (!rxr->rx_pg_desc_ring[j])
2722 bnx2_alloc_rx_page(struct bnx2 *bp, struct bnx2_rx_ring_info *rxr, u16 index, gfp_t gfp)
2725 struct bnx2_sw_pg *rx_pg = &rxr->rx_pg_ring[index];
2727 &rxr->rx_pg_desc_ring[BNX2_RX_RING(index)][BNX2_RX_IDX(index)];
2747 bnx2_free_rx_page(struct bnx2 *bp, struct bnx2_rx_ring_info *rxr, u16 index)
2749 struct bnx2_sw_pg *rx_pg = &rxr->rx_pg_ring[index];
2763 bnx2_alloc_rx_data(struct bnx2 *bp, struct bnx2_rx_ring_info *rxr, u16 index, gfp_t gfp)
2766 struct bnx2_sw_bd *rx_buf = &rxr->rx_buf_ring[index];
2769 &rxr->rx_desc_ring[BNX2_RX_RING(index)][BNX2_RX_IDX(index)];
2790 rxr->rx_prod_bseq += bp->rx_buf_use_size;
2937 bnx2_reuse_rx_skb_pages(struct bnx2 *bp, struct bnx2_rx_ring_info *rxr,
2944 u16 cons = rxr->rx_pg_cons;
2946 cons_rx_pg = &rxr->rx_pg_ring[cons];
2965 hw_prod = rxr->rx_pg_prod;
2970 prod_rx_pg = &rxr->rx_pg_ring[prod];
2971 cons_rx_pg = &rxr->rx_pg_ring[cons];
2972 cons_bd = &rxr->rx_pg_desc_ring[BNX2_RX_RING(cons)]
2974 prod_bd = &rxr->rx_pg_desc_ring[BNX2_RX_RING(prod)]
2990 rxr->rx_pg_prod = hw_prod;
2991 rxr->rx_pg_cons = cons;
2995 bnx2_reuse_rx_data(struct bnx2 *bp, struct bnx2_rx_ring_info *rxr,
3001 cons_rx_buf = &rxr->rx_buf_ring[cons];
3002 prod_rx_buf = &rxr->rx_buf_ring[prod];
3008 rxr->rx_prod_bseq += bp->rx_buf_use_size;
3018 cons_bd = &rxr->rx_desc_ring[BNX2_RX_RING(cons)][BNX2_RX_IDX(cons)];
3019 prod_bd = &rxr->rx_desc_ring[BNX2_RX_RING(prod)][BNX2_RX_IDX(prod)];
3025 bnx2_rx_skb(struct bnx2 *bp, struct bnx2_rx_ring_info *rxr, u8 *data,
3033 err = bnx2_alloc_rx_data(bp, rxr, prod, GFP_ATOMIC);
3035 bnx2_reuse_rx_data(bp, rxr, data, (u16) (ring_idx >> 16), prod);
3041 bnx2_reuse_rx_skb_pages(bp, rxr, NULL, pages);
3060 u16 pg_cons = rxr->rx_pg_cons;
3061 u16 pg_prod = rxr->rx_pg_prod;
3074 rxr->rx_pg_cons = pg_cons;
3075 rxr->rx_pg_prod = pg_prod;
3076 bnx2_reuse_rx_skb_pages(bp, rxr, NULL,
3089 rx_pg = &rxr->rx_pg_ring[pg_cons];
3101 err = bnx2_alloc_rx_page(bp, rxr,
3105 rxr->rx_pg_cons = pg_cons;
3106 rxr->rx_pg_prod = pg_prod;
3107 bnx2_reuse_rx_skb_pages(bp, rxr, skb,
3123 rxr->rx_pg_prod = pg_prod;
3124 rxr->rx_pg_cons = pg_cons;
3144 struct bnx2_rx_ring_info *rxr = &bnapi->rx_ring;
3153 sw_cons = rxr->rx_cons;
3154 sw_prod = rxr->rx_prod;
3172 rx_buf = &rxr->rx_buf_ring[sw_ring_cons];
3186 next_rx_buf = &rxr->rx_buf_ring[next_ring_idx];
3207 bnx2_reuse_rx_data(bp, rxr, data, sw_ring_cons,
3214 bnx2_reuse_rx_skb_pages(bp, rxr, NULL, pages);
3224 bnx2_reuse_rx_data(bp, rxr, data, sw_ring_cons,
3236 bnx2_reuse_rx_data(bp, rxr, data,
3240 skb = bnx2_rx_skb(bp, rxr, data, len, hdr_len, dma_addr,
3292 rxr->rx_cons = sw_cons;
3293 rxr->rx_prod = sw_prod;
3296 BNX2_WR16(bp, rxr->rx_pg_bidx_addr, rxr->rx_pg_prod);
3298 BNX2_WR16(bp, rxr->rx_bidx_addr, sw_prod);
3300 BNX2_WR(bp, rxr->rx_bseq_addr, rxr->rx_prod_bseq);
3389 struct bnx2_rx_ring_info *rxr = &bnapi->rx_ring;
3391 if ((bnx2_get_hw_rx_cons(bnapi) != rxr->rx_cons) ||
3483 struct bnx2_rx_ring_info *rxr = &bnapi->rx_ring;
3488 if (bnx2_get_hw_rx_cons(bnapi) != rxr->rx_cons)
5129 struct bnx2_rx_ring_info *rxr;
5135 rxr = &bnapi->rx_ring;
5139 rxr->rx_prod_bseq = 0;
5140 rxr->rx_prod = 0;
5141 rxr->rx_cons = 0;
5142 rxr->rx_pg_prod = 0;
5143 rxr->rx_pg_cons = 0;
5240 struct bnx2_rx_ring_info *rxr = &bnapi->rx_ring;
5249 bnx2_init_rxbd_rings(rxr->rx_desc_ring, rxr->rx_desc_mapping,
5261 bnx2_init_rxbd_rings(rxr->rx_pg_desc_ring,
5262 rxr->rx_pg_desc_mapping,
5269 val = (u64) rxr->rx_pg_desc_mapping[0] >> 32;
5272 val = (u64) rxr->rx_pg_desc_mapping[0] & 0xffffffff;
5279 val = (u64) rxr->rx_desc_mapping[0] >> 32;
5282 val = (u64) rxr->rx_desc_mapping[0] & 0xffffffff;
5285 ring_prod = prod = rxr->rx_pg_prod;
5287 if (bnx2_alloc_rx_page(bp, rxr, ring_prod, GFP_KERNEL) < 0) {
5295 rxr->rx_pg_prod = prod;
5297 ring_prod = prod = rxr->rx_prod;
5299 if (bnx2_alloc_rx_data(bp, rxr, ring_prod, GFP_KERNEL) < 0) {
5307 rxr->rx_prod = prod;
5309 rxr->rx_bidx_addr = MB_GET_CID_ADDR(cid) + BNX2_L2CTX_HOST_BDIDX;
5310 rxr->rx_bseq_addr = MB_GET_CID_ADDR(cid) + BNX2_L2CTX_HOST_BSEQ;
5311 rxr->rx_pg_bidx_addr = MB_GET_CID_ADDR(cid) + BNX2_L2CTX_HOST_PG_BDIDX;
5313 BNX2_WR16(bp, rxr->rx_pg_bidx_addr, rxr->rx_pg_prod);
5314 BNX2_WR16(bp, rxr->rx_bidx_addr, prod);
5316 BNX2_WR(bp, rxr->rx_bseq_addr, rxr->rx_prod_bseq);
5478 struct bnx2_rx_ring_info *rxr = &bnapi->rx_ring;
5481 if (!rxr->rx_buf_ring)
5485 struct bnx2_sw_bd *rx_buf = &rxr->rx_buf_ring[j];
5501 bnx2_free_rx_page(bp, rxr, j);
5815 struct bnx2_rx_ring_info *rxr;
5820 rxr = &bnapi->rx_ring;
5896 rx_buf = &rxr->rx_buf_ring[rx_start_idx];