Lines Matching refs:q_vector
311 skb = napi_alloc_skb(&rx_ring->q_vector->napi, in fm10k_fetch_rx_buffer()
548 static void fm10k_receive_skb(struct fm10k_q_vector *q_vector, in fm10k_receive_skb() argument
551 napi_gro_receive(&q_vector->napi, skb); in fm10k_receive_skb()
554 static int fm10k_clean_rx_irq(struct fm10k_q_vector *q_vector, in fm10k_clean_rx_irq() argument
604 fm10k_receive_skb(q_vector, skb); in fm10k_clean_rx_irq()
620 q_vector->rx.total_packets += total_packets; in fm10k_clean_rx_irq()
621 q_vector->rx.total_bytes += total_bytes; in fm10k_clean_rx_irq()
1107 struct fm10k_intfc *interface = ring->q_vector->interface; in fm10k_get_tx_pending()
1171 static bool fm10k_clean_tx_irq(struct fm10k_q_vector *q_vector, in fm10k_clean_tx_irq() argument
1174 struct fm10k_intfc *interface = q_vector->interface; in fm10k_clean_tx_irq()
1178 unsigned int budget = q_vector->tx.work_limit; in fm10k_clean_tx_irq()
1266 q_vector->tx.total_bytes += total_bytes; in fm10k_clean_tx_irq()
1267 q_vector->tx.total_packets += total_packets; in fm10k_clean_tx_irq()
1392 static void fm10k_qv_enable(struct fm10k_q_vector *q_vector) in fm10k_qv_enable() argument
1398 fm10k_update_itr(&q_vector->tx); in fm10k_qv_enable()
1401 fm10k_update_itr(&q_vector->rx); in fm10k_qv_enable()
1404 itr |= (q_vector->tx.itr & FM10K_ITR_MAX); in fm10k_qv_enable()
1407 itr |= (q_vector->rx.itr & FM10K_ITR_MAX) << FM10K_ITR_INTERVAL1_SHIFT; in fm10k_qv_enable()
1410 writel(itr, q_vector->itr); in fm10k_qv_enable()
1415 struct fm10k_q_vector *q_vector = in fm10k_poll() local
1421 fm10k_for_each_ring(ring, q_vector->tx) { in fm10k_poll()
1422 if (!fm10k_clean_tx_irq(q_vector, ring, budget)) in fm10k_poll()
1433 if (q_vector->rx.count > 1) in fm10k_poll()
1434 per_ring_budget = max(budget / q_vector->rx.count, 1); in fm10k_poll()
1438 fm10k_for_each_ring(ring, q_vector->rx) { in fm10k_poll()
1439 int work = fm10k_clean_rx_irq(q_vector, ring, per_ring_budget); in fm10k_poll()
1454 fm10k_qv_enable(q_vector); in fm10k_poll()
1586 struct fm10k_q_vector *q_vector; in fm10k_alloc_q_vector() local
1593 q_vector = kzalloc(struct_size(q_vector, ring, ring_count), GFP_KERNEL); in fm10k_alloc_q_vector()
1594 if (!q_vector) in fm10k_alloc_q_vector()
1598 netif_napi_add(interface->netdev, &q_vector->napi, in fm10k_alloc_q_vector()
1602 interface->q_vector[v_idx] = q_vector; in fm10k_alloc_q_vector()
1603 q_vector->interface = interface; in fm10k_alloc_q_vector()
1604 q_vector->v_idx = v_idx; in fm10k_alloc_q_vector()
1607 ring = q_vector->ring; in fm10k_alloc_q_vector()
1610 q_vector->tx.ring = ring; in fm10k_alloc_q_vector()
1611 q_vector->tx.work_limit = FM10K_DEFAULT_TX_WORK; in fm10k_alloc_q_vector()
1612 q_vector->tx.itr = interface->tx_itr; in fm10k_alloc_q_vector()
1613 q_vector->tx.itr_scale = interface->hw.mac.itr_scale; in fm10k_alloc_q_vector()
1614 q_vector->tx.count = txr_count; in fm10k_alloc_q_vector()
1622 ring->q_vector = q_vector; in fm10k_alloc_q_vector()
1640 q_vector->rx.ring = ring; in fm10k_alloc_q_vector()
1641 q_vector->rx.itr = interface->rx_itr; in fm10k_alloc_q_vector()
1642 q_vector->rx.itr_scale = interface->hw.mac.itr_scale; in fm10k_alloc_q_vector()
1643 q_vector->rx.count = rxr_count; in fm10k_alloc_q_vector()
1652 ring->q_vector = q_vector; in fm10k_alloc_q_vector()
1669 fm10k_dbg_q_vector_init(q_vector); in fm10k_alloc_q_vector()
1685 struct fm10k_q_vector *q_vector = interface->q_vector[v_idx]; in fm10k_free_q_vector() local
1688 fm10k_dbg_q_vector_exit(q_vector); in fm10k_free_q_vector()
1690 fm10k_for_each_ring(ring, q_vector->tx) in fm10k_free_q_vector()
1693 fm10k_for_each_ring(ring, q_vector->rx) in fm10k_free_q_vector()
1696 interface->q_vector[v_idx] = NULL; in fm10k_free_q_vector()
1697 netif_napi_del(&q_vector->napi); in fm10k_free_q_vector()
1698 kfree_rcu(q_vector, rcu); in fm10k_free_q_vector()