Lines Matching defs:bnapi
664 static void bnxt_tx_int(struct bnxt *bp, struct bnxt_napi *bnapi, int nr_pkts)
666 struct bnxt_tx_ring_info *txr = bnapi->tx_ring;
909 struct bnxt_napi *bnapi = cpr->bnapi;
910 struct bnxt *bp = bnapi->bp;
911 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring;
990 skb = napi_alloc_skb(&rxr->bnapi->napi, payload);
1044 struct bnxt_napi *bnapi = cpr->bnapi;
1046 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring;
1129 static inline struct sk_buff *bnxt_copy_skb(struct bnxt_napi *bnapi, u8 *data,
1133 struct bnxt *bp = bnapi->bp;
1137 skb = napi_alloc_skb(&bnapi->napi, len);
1205 if (!rxr->bnapi->in_reset) {
1206 rxr->bnapi->in_reset = true;
1545 struct bnxt_napi *bnapi = cpr->bnapi;
1546 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring;
1556 if (unlikely(bnapi->in_reset)) {
1608 skb = bnxt_copy_skb(bnapi, data_ptr, len, mapping);
1694 static void bnxt_deliver_skb(struct bnxt *bp, struct bnxt_napi *bnapi,
1702 skb_record_rx_queue(skb, bnapi->index);
1703 napi_gro_receive(&bnapi->napi, skb);
1716 struct bnxt_napi *bnapi = cpr->bnapi;
1717 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring;
1773 bnxt_deliver_skb(bp, bnapi, skb);
1821 bnapi->cp_ring.sw_stats.rx.rx_buf_errors++;
1841 skb = bnxt_copy_skb(bnapi, data_ptr, len, dma_addr);
1911 bnapi->cp_ring.sw_stats.rx.rx_l4_csum_errors++;
1915 bnxt_deliver_skb(bp, bnapi, skb);
2007 u16 grp_idx = bp->rx_ring[i].bnapi->index;
2167 rxr = bp->bnapi[grp_idx]->rx_ring;
2224 struct bnxt_napi *bnapi = dev_instance;
2225 struct bnxt *bp = bnapi->bp;
2226 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
2231 napi_schedule(&bnapi->napi);
2248 struct bnxt_napi *bnapi = dev_instance;
2249 struct bnxt *bp = bnapi->bp;
2250 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
2270 napi_schedule(&bnapi->napi);
2277 struct bnxt_napi *bnapi = cpr->bnapi;
2347 struct bnxt_tx_ring_info *txr = bnapi->tx_ring;
2357 bnapi->tx_pkts += tx_pkts;
2358 bnapi->events |= event;
2362 static void __bnxt_poll_work_done(struct bnxt *bp, struct bnxt_napi *bnapi)
2364 if (bnapi->tx_pkts) {
2365 bnapi->tx_int(bp, bnapi, bnapi->tx_pkts);
2366 bnapi->tx_pkts = 0;
2369 if ((bnapi->events & BNXT_RX_EVENT) && !(bnapi->in_reset)) {
2370 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring;
2372 if (bnapi->events & BNXT_AGG_EVENT)
2376 bnapi->events = 0;
2382 struct bnxt_napi *bnapi = cpr->bnapi;
2393 __bnxt_poll_work_done(bp, bnapi);
2399 struct bnxt_napi *bnapi = container_of(napi, struct bnxt_napi, napi);
2400 struct bnxt *bp = bnapi->bp;
2401 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
2402 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring;
2475 struct bnxt_napi *bnapi = container_of(napi, struct bnxt_napi, napi);
2476 struct bnxt *bp = bnapi->bp;
2477 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
2507 static int __bnxt_poll_cqs(struct bnxt *bp, struct bnxt_napi *bnapi, int budget)
2509 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
2524 static void __bnxt_poll_cqs_done(struct bnxt *bp, struct bnxt_napi *bnapi,
2527 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
2541 __bnxt_poll_work_done(bp, bnapi);
2546 struct bnxt_napi *bnapi = container_of(napi, struct bnxt_napi, napi);
2547 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
2549 struct bnxt *bp = bnapi->bp;
2556 work_done = __bnxt_poll_cqs(bp, bnapi, budget);
2566 __bnxt_poll_cqs_done(bp, bnapi, DBR_TYPE_CQ_ARMALL);
2596 __bnxt_poll_cqs_done(bp, bnapi, DBR_TYPE_CQ);
3081 ring->grp_idx = txr->bnapi->index;
3114 if (!bp->bnapi)
3118 struct bnxt_napi *bnapi = bp->bnapi[i];
3123 if (!bnapi)
3126 cpr = &bnapi->cp_ring;
3179 struct bnxt_napi *bnapi = bp->bnapi[i];
3183 if (!bnapi)
3186 cpr = &bnapi->cp_ring;
3187 cpr->bnapi = bnapi;
3209 cpr2->bnapi = bnapi;
3219 cpr2->bnapi = bnapi;
3230 struct bnxt_napi *bnapi = bp->bnapi[i];
3237 if (!bnapi)
3240 cpr = &bnapi->cp_ring;
3249 rxr = bnapi->rx_ring;
3272 txr = bnapi->tx_ring;
3398 struct bnxt_cp_ring_info *cpr = &bp->bnapi[i]->cp_ring;
3950 struct bnxt_napi *bnapi = bp->bnapi[0];
3959 cpr = &bnapi->cp_ring;
4033 if (!bp->bnapi)
4037 struct bnxt_napi *bnapi = bp->bnapi[i];
4038 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
4052 struct bnxt_napi *bnapi = bp->bnapi[i];
4053 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
4111 if (!bp->bnapi)
4115 struct bnxt_napi *bnapi = bp->bnapi[i];
4120 if (!bnapi)
4123 cpr = &bnapi->cp_ring;
4126 txr = bnapi->tx_ring;
4132 rxr = bnapi->rx_ring;
4214 kfree(bp->bnapi);
4215 bp->bnapi = NULL;
4224 void *bnapi;
4227 /* Allocate bnapi mem pointer array and mem block for
4233 bnapi = kzalloc(arr_size + size * bp->cp_nr_rings, GFP_KERNEL);
4234 if (!bnapi)
4237 bp->bnapi = bnapi;
4238 bnapi += arr_size;
4239 for (i = 0; i < bp->cp_nr_rings; i++, bnapi += size) {
4240 bp->bnapi[i] = bnapi;
4241 bp->bnapi[i]->index = i;
4242 bp->bnapi[i]->bp = bp;
4245 &bp->bnapi[i]->cp_ring;
4267 rxr->bnapi = bp->bnapi[i];
4268 bp->bnapi[i]->rx_ring = &bp->rx_ring[i];
4294 txr->bnapi = bp->bnapi[j];
4295 bp->bnapi[j]->tx_ring = txr;
4299 bp->bnapi[j]->tx_int = bnxt_tx_int;
4301 bp->bnapi[j]->flags |= BNXT_NAPI_FLAG_XDP;
4302 bp->bnapi[j]->tx_int = bnxt_tx_int_xdp;
4350 if (!bp->bnapi)
4354 struct bnxt_napi *bnapi = bp->bnapi[i];
4355 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
4365 struct bnxt_napi *bnapi = bp->bnapi[n];
4368 cpr = &bnapi->cp_ring;
4392 struct bnxt_napi *bnapi = bp->bnapi[i];
4393 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
5079 struct bnxt_napi *bnapi = rxr->bnapi;
5082 cpr = bnapi->cp_ring.cp_ring_arr[BNXT_RX_HDL];
5092 struct bnxt_napi *bnapi = txr->bnapi;
5095 cpr = bnapi->cp_ring.cp_ring_arr[BNXT_TX_HDL];
5386 grp_idx = bp->rx_ring[ring].bnapi->index;
5442 grp_idx = bp->rx_ring[i].bnapi->index;
5523 unsigned int grp_idx = bp->rx_ring[i].bnapi->index;
5758 struct bnxt_napi *bnapi = bp->bnapi[i];
5759 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
5790 struct bnxt_napi *bnapi = txr->bnapi;
5794 cpr = &bnapi->cp_ring;
5798 map_idx = bnapi->index;
5818 struct bnxt_napi *bnapi = rxr->bnapi;
5819 u32 map_idx = bnapi->index;
5830 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
5904 if (!bp->bnapi)
5925 u32 grp_idx = rxr->bnapi->index;
5947 u32 grp_idx = rxr->bnapi->index;
5972 struct bnxt_napi *bnapi = bp->bnapi[i];
5973 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
6582 static int __bnxt_hwrm_set_coal_nq(struct bnxt *bp, struct bnxt_napi *bnapi,
6586 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
6607 int bnxt_hwrm_set_ring_coal(struct bnxt *bp, struct bnxt_napi *bnapi)
6610 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
6621 if (!bnapi->rx_ring)
6629 req_rx.ring_id = cpu_to_le16(bnxt_cp_ring_for_rx(bp, bnapi->rx_ring));
6651 struct bnxt_napi *bnapi = bp->bnapi[i];
6656 if (!bnapi->rx_ring) {
6657 ring_id = bnxt_cp_ring_for_tx(bp, bnapi->tx_ring);
6660 ring_id = bnxt_cp_ring_for_rx(bp, bnapi->rx_ring);
6672 if (bnapi->rx_ring && bnapi->tx_ring) {
6674 ring_id = bnxt_cp_ring_for_tx(bp, bnapi->tx_ring);
6681 if (bnapi->rx_ring)
6685 __bnxt_hwrm_set_coal_nq(bp, bnapi, hw_coal);
6697 if (!bp->bnapi)
6708 struct bnxt_napi *bnapi = bp->bnapi[i];
6709 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
6743 struct bnxt_napi *bnapi = bp->bnapi[i];
6744 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
7903 struct bnxt_napi *bnapi = bp->bnapi[i];
7907 cpr = &bnapi->cp_ring;
8795 if (!bp->irq_tbl || !bp->bnapi)
8808 free_irq(irq->vector, bp->bnapi[i]);
8840 if (rmap && bp->bnapi[i]->rx_ring) {
8849 bp->bnapi[i]);
8877 if (!bp->bnapi)
8881 struct bnxt_napi *bnapi = bp->bnapi[i];
8883 __netif_napi_del(&bnapi->napi);
8895 struct bnxt_napi *bnapi;
8905 bnapi = bp->bnapi[i];
8906 netif_napi_add(bp->dev, &bnapi->napi, poll_fn, 64);
8909 bnapi = bp->bnapi[cp_nr_rings];
8910 netif_napi_add(bp->dev, &bnapi->napi,
8914 bnapi = bp->bnapi[0];
8915 netif_napi_add(bp->dev, &bnapi->napi, bnxt_poll, 64);
8923 if (!bp->bnapi)
8927 struct bnxt_cp_ring_info *cpr = &bp->bnapi[i]->cp_ring;
8929 napi_disable(&bp->bnapi[i]->napi);
8930 if (bp->bnapi[i]->rx_ring)
8940 struct bnxt_napi *bnapi = bp->bnapi[i];
8943 cpr = &bnapi->cp_ring;
8944 if (bnapi->in_reset)
8946 bnapi->in_reset = false;
8948 if (bnapi->rx_ring) {
8952 napi_enable(&bnapi->napi);
10034 if (bp->bnapi && irq_re_init)
10179 struct bnxt_napi *bnapi = bp->bnapi[i];
10180 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
10662 static void bnxt_dump_tx_sw_state(struct bnxt_napi *bnapi)
10664 struct bnxt_tx_ring_info *txr = bnapi->tx_ring;
10665 int i = bnapi->index;
10670 netdev_info(bnapi->bp->dev, "[%d]: tx{fw_ring: %d prod: %x cons: %x}\n",
10675 static void bnxt_dump_rx_sw_state(struct bnxt_napi *bnapi)
10677 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring;
10678 int i = bnapi->index;
10683 netdev_info(bnapi->bp->dev, "[%d]: rx{fw_ring: %d prod: %x} rx_agg{fw_ring: %d agg_prod: %x sw_agg_prod: %x}\n",
10689 static void bnxt_dump_cp_sw_state(struct bnxt_napi *bnapi)
10691 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
10692 int i = bnapi->index;
10694 netdev_info(bnapi->bp->dev, "[%d]: cp{fw_ring: %d raw_cons: %x}\n",
10701 struct bnxt_napi *bnapi;
10704 bnapi = bp->bnapi[i];
10706 bnxt_dump_tx_sw_state(bnapi);
10707 bnxt_dump_rx_sw_state(bnapi);
10708 bnxt_dump_cp_sw_state(bnapi);
10717 struct bnxt_napi *bnapi = rxr->bnapi;
10721 cpr = &bnapi->cp_ring;
10725 req.ring_id = cpu_to_le16(bp->grp_info[bnapi->index].fw_grp_id);
10885 if (!rxr->bnapi->in_reset)
10903 rxr->bnapi->in_reset = false;
10905 cpr = &rxr->bnapi->cp_ring;
11064 struct bnxt_napi *bnapi = bp->bnapi[i];
11069 if (!bnapi)
11072 cpr = &bnapi->cp_ring;