Lines Matching defs:bnapi
350 struct bnx2_napi *bnapi = &bp->bnx2_napi[0];
355 bnapi->cnic_present = 0;
360 bnapi->cnic_tag = bnapi->last_status_idx;
361 bnapi->cnic_present = 1;
368 ((unsigned long) bnapi->status_blk.msi +
403 struct bnx2_napi *bnapi = &bp->bnx2_napi[0];
408 bnapi->cnic_present = 0;
461 struct bnx2_napi *bnapi = &bp->bnx2_napi[0];
463 bnapi->cnic_tag = bnapi->last_status_idx;
595 struct bnx2_napi *bnapi;
598 bnapi = &bp->bnx2_napi[i];
599 BNX2_WR(bp, BNX2_PCICFG_INT_ACK_CMD, bnapi->int_num |
609 struct bnx2_napi *bnapi;
612 bnapi = &bp->bnx2_napi[i];
614 BNX2_WR(bp, BNX2_PCICFG_INT_ACK_CMD, bnapi->int_num |
617 bnapi->last_status_idx);
619 BNX2_WR(bp, BNX2_PCICFG_INT_ACK_CMD, bnapi->int_num |
621 bnapi->last_status_idx);
695 struct bnx2_napi *bnapi = &bp->bnx2_napi[i];
696 struct bnx2_tx_ring_info *txr = &bnapi->tx_ring;
715 struct bnx2_napi *bnapi = &bp->bnx2_napi[i];
716 struct bnx2_rx_ring_info *rxr = &bnapi->rx_ring;
747 struct bnx2_napi *bnapi = &bp->bnx2_napi[i];
748 struct bnx2_tx_ring_info *txr = &bnapi->tx_ring;
769 struct bnx2_napi *bnapi = &bp->bnx2_napi[i];
770 struct bnx2_rx_ring_info *rxr = &bnapi->rx_ring;
856 struct bnx2_napi *bnapi = &bp->bnx2_napi[0];
870 if (bnapi->status_blk.msi)
871 bnapi->status_blk.msi = NULL;
878 struct bnx2_napi *bnapi;
880 bnapi = &bp->bnx2_napi[0];
881 bnapi->status_blk.msi = bp->status_blk;
882 bnapi->hw_tx_cons_ptr =
883 &bnapi->status_blk.msi->status_tx_quick_consumer_index0;
884 bnapi->hw_rx_cons_ptr =
885 &bnapi->status_blk.msi->status_rx_quick_consumer_index0;
890 bnapi = &bp->bnx2_napi[i];
893 bnapi->status_blk.msix = sblk;
894 bnapi->hw_tx_cons_ptr =
896 bnapi->hw_rx_cons_ptr =
898 bnapi->int_num = i << 24;
2795 bnx2_phy_event_is_set(struct bnx2 *bp, struct bnx2_napi *bnapi, u32 event)
2797 struct status_block *sblk = bnapi->status_blk.msi;
2815 bnx2_phy_int(struct bnx2 *bp, struct bnx2_napi *bnapi)
2819 if (bnx2_phy_event_is_set(bp, bnapi, STATUS_ATTN_BITS_LINK_STATE))
2821 if (bnx2_phy_event_is_set(bp, bnapi, STATUS_ATTN_BITS_TIMER_ABORT))
2829 bnx2_get_hw_tx_cons(struct bnx2_napi *bnapi)
2833 cons = READ_ONCE(*bnapi->hw_tx_cons_ptr);
2841 bnx2_tx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget)
2843 struct bnx2_tx_ring_info *txr = &bnapi->tx_ring;
2849 index = (bnapi - bp->bnx2_napi);
2852 hw_cons = bnx2_get_hw_tx_cons(bnapi);
2909 hw_cons = bnx2_get_hw_tx_cons(bnapi);
3128 bnx2_get_hw_rx_cons(struct bnx2_napi *bnapi)
3132 cons = READ_ONCE(*bnapi->hw_rx_cons_ptr);
3140 bnx2_rx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget)
3142 struct bnx2_rx_ring_info *rxr = &bnapi->rx_ring;
3150 hw_cons = bnx2_get_hw_rx_cons(bnapi);
3273 skb_record_rx_queue(skb, bnapi - &bp->bnx2_napi[0]);
3274 napi_gro_receive(&bnapi->napi, skb);
3286 hw_cons = bnx2_get_hw_rx_cons(bnapi);
3310 struct bnx2_napi *bnapi = dev_instance;
3311 struct bnx2 *bp = bnapi->bp;
3313 prefetch(bnapi->status_blk.msi);
3322 napi_schedule(&bnapi->napi);
3330 struct bnx2_napi *bnapi = dev_instance;
3331 struct bnx2 *bp = bnapi->bp;
3333 prefetch(bnapi->status_blk.msi);
3339 napi_schedule(&bnapi->napi);
3347 struct bnx2_napi *bnapi = dev_instance;
3348 struct bnx2 *bp = bnapi->bp;
3349 struct status_block *sblk = bnapi->status_blk.msi;
3357 if ((sblk->status_idx == bnapi->last_status_idx) &&
3375 if (napi_schedule_prep(&bnapi->napi)) {
3376 bnapi->last_status_idx = sblk->status_idx;
3377 __napi_schedule(&bnapi->napi);
3384 bnx2_has_fast_work(struct bnx2_napi *bnapi)
3386 struct bnx2_tx_ring_info *txr = &bnapi->tx_ring;
3387 struct bnx2_rx_ring_info *rxr = &bnapi->rx_ring;
3389 if ((bnx2_get_hw_rx_cons(bnapi) != rxr->rx_cons) ||
3390 (bnx2_get_hw_tx_cons(bnapi) != txr->hw_tx_cons))
3399 bnx2_has_work(struct bnx2_napi *bnapi)
3401 struct status_block *sblk = bnapi->status_blk.msi;
3403 if (bnx2_has_fast_work(bnapi))
3407 if (bnapi->cnic_present && (bnapi->cnic_tag != sblk->status_idx))
3421 struct bnx2_napi *bnapi = &bp->bnx2_napi[0];
3424 if (bnx2_has_work(bnapi)) {
3429 if (bnapi->last_status_idx == bp->idle_chk_status_idx) {
3433 bnx2_msi(bp->irq_tbl[0].vector, bnapi);
3437 bp->idle_chk_status_idx = bnapi->last_status_idx;
3441 static void bnx2_poll_cnic(struct bnx2 *bp, struct bnx2_napi *bnapi)
3445 if (!bnapi->cnic_present)
3451 bnapi->cnic_tag = c_ops->cnic_handler(bp->cnic_data,
3452 bnapi->status_blk.msi);
3457 static void bnx2_poll_link(struct bnx2 *bp, struct bnx2_napi *bnapi)
3459 struct status_block *sblk = bnapi->status_blk.msi;
3466 bnx2_phy_int(bp, bnapi);
3477 static int bnx2_poll_work(struct bnx2 *bp, struct bnx2_napi *bnapi,
3480 struct bnx2_tx_ring_info *txr = &bnapi->tx_ring;
3481 struct bnx2_rx_ring_info *rxr = &bnapi->rx_ring;
3483 if (bnx2_get_hw_tx_cons(bnapi) != txr->hw_tx_cons)
3484 bnx2_tx_int(bp, bnapi, 0);
3486 if (bnx2_get_hw_rx_cons(bnapi) != rxr->rx_cons)
3487 work_done += bnx2_rx_int(bp, bnapi, budget - work_done);
3494 struct bnx2_napi *bnapi = container_of(napi, struct bnx2_napi, napi);
3495 struct bnx2 *bp = bnapi->bp;
3497 struct status_block_msix *sblk = bnapi->status_blk.msix;
3500 work_done = bnx2_poll_work(bp, bnapi, work_done, budget);
3504 bnapi->last_status_idx = sblk->status_idx;
3507 if (likely(!bnx2_has_fast_work(bnapi))) {
3510 BNX2_WR(bp, BNX2_PCICFG_INT_ACK_CMD, bnapi->int_num |
3512 bnapi->last_status_idx);
3521 struct bnx2_napi *bnapi = container_of(napi, struct bnx2_napi, napi);
3522 struct bnx2 *bp = bnapi->bp;
3524 struct status_block *sblk = bnapi->status_blk.msi;
3527 bnx2_poll_link(bp, bnapi);
3529 work_done = bnx2_poll_work(bp, bnapi, work_done, budget);
3532 bnx2_poll_cnic(bp, bnapi);
3535 /* bnapi->last_status_idx is used below to tell the hw how
3539 bnapi->last_status_idx = sblk->status_idx;
3545 if (likely(!bnx2_has_work(bnapi))) {
3550 bnapi->last_status_idx);
3556 bnapi->last_status_idx);
3560 bnapi->last_status_idx);
5110 struct bnx2_napi *bnapi;
5116 bnapi = &bp->bnx2_napi[i];
5117 txr = &bnapi->tx_ring;
5118 rxr = &bnapi->rx_ring;
5165 struct bnx2_napi *bnapi;
5168 bnapi = &bp->bnx2_napi[ring_num];
5169 txr = &bnapi->tx_ring;
5222 struct bnx2_napi *bnapi = &bp->bnx2_napi[ring_num];
5223 struct bnx2_rx_ring_info *rxr = &bnapi->rx_ring;
5416 struct bnx2_napi *bnapi = &bp->bnx2_napi[i];
5417 struct bnx2_tx_ring_info *txr = &bnapi->tx_ring;
5461 struct bnx2_napi *bnapi = &bp->bnx2_napi[i];
5462 struct bnx2_rx_ring_info *rxr = &bnapi->rx_ring;
5797 struct bnx2_napi *bnapi = &bp->bnx2_napi[0], *tx_napi;
5801 tx_napi = bnapi;
5804 rxr = &bnapi->rx_ring;
5842 rx_start_idx = bnx2_get_hw_rx_cons(bnapi);
5875 rx_idx = bnx2_get_hw_rx_cons(bnapi);
6582 struct bnx2_napi *bnapi;
6588 bnapi = &bp->bnx2_napi[i];
6589 txr = &bnapi->tx_ring;
8489 struct bnx2_napi *bnapi = &bp->bnx2_napi[i];
8498 bnapi->bp = bp;