Lines Matching refs:q_vector
320 skb = napi_alloc_skb(&rx_ring->q_vector->napi, in fm10k_fetch_rx_buffer()
557 static void fm10k_receive_skb(struct fm10k_q_vector *q_vector, in fm10k_receive_skb() argument
560 napi_gro_receive(&q_vector->napi, skb); in fm10k_receive_skb()
563 static int fm10k_clean_rx_irq(struct fm10k_q_vector *q_vector, in fm10k_clean_rx_irq() argument
613 fm10k_receive_skb(q_vector, skb); in fm10k_clean_rx_irq()
629 q_vector->rx.total_packets += total_packets; in fm10k_clean_rx_irq()
630 q_vector->rx.total_bytes += total_bytes; in fm10k_clean_rx_irq()
1125 struct fm10k_intfc *interface = ring->q_vector->interface; in fm10k_get_tx_pending()
1189 static bool fm10k_clean_tx_irq(struct fm10k_q_vector *q_vector, in fm10k_clean_tx_irq() argument
1192 struct fm10k_intfc *interface = q_vector->interface; in fm10k_clean_tx_irq()
1196 unsigned int budget = q_vector->tx.work_limit; in fm10k_clean_tx_irq()
1284 q_vector->tx.total_bytes += total_bytes; in fm10k_clean_tx_irq()
1285 q_vector->tx.total_packets += total_packets; in fm10k_clean_tx_irq()
1410 static void fm10k_qv_enable(struct fm10k_q_vector *q_vector) in fm10k_qv_enable() argument
1416 fm10k_update_itr(&q_vector->tx); in fm10k_qv_enable()
1419 fm10k_update_itr(&q_vector->rx); in fm10k_qv_enable()
1422 itr |= (q_vector->tx.itr & FM10K_ITR_MAX); in fm10k_qv_enable()
1425 itr |= (q_vector->rx.itr & FM10K_ITR_MAX) << FM10K_ITR_INTERVAL1_SHIFT; in fm10k_qv_enable()
1428 writel(itr, q_vector->itr); in fm10k_qv_enable()
1433 struct fm10k_q_vector *q_vector = in fm10k_poll() local
1439 fm10k_for_each_ring(ring, q_vector->tx) { in fm10k_poll()
1440 if (!fm10k_clean_tx_irq(q_vector, ring, budget)) in fm10k_poll()
1451 if (q_vector->rx.count > 1) in fm10k_poll()
1452 per_ring_budget = max(budget / q_vector->rx.count, 1); in fm10k_poll()
1456 fm10k_for_each_ring(ring, q_vector->rx) { in fm10k_poll()
1457 int work = fm10k_clean_rx_irq(q_vector, ring, per_ring_budget); in fm10k_poll()
1472 fm10k_qv_enable(q_vector); in fm10k_poll()
1604 struct fm10k_q_vector *q_vector; in fm10k_alloc_q_vector() local
1613 q_vector = kzalloc(size, GFP_KERNEL); in fm10k_alloc_q_vector()
1614 if (!q_vector) in fm10k_alloc_q_vector()
1618 netif_napi_add(interface->netdev, &q_vector->napi, in fm10k_alloc_q_vector()
1622 interface->q_vector[v_idx] = q_vector; in fm10k_alloc_q_vector()
1623 q_vector->interface = interface; in fm10k_alloc_q_vector()
1624 q_vector->v_idx = v_idx; in fm10k_alloc_q_vector()
1627 ring = q_vector->ring; in fm10k_alloc_q_vector()
1630 q_vector->tx.ring = ring; in fm10k_alloc_q_vector()
1631 q_vector->tx.work_limit = FM10K_DEFAULT_TX_WORK; in fm10k_alloc_q_vector()
1632 q_vector->tx.itr = interface->tx_itr; in fm10k_alloc_q_vector()
1633 q_vector->tx.itr_scale = interface->hw.mac.itr_scale; in fm10k_alloc_q_vector()
1634 q_vector->tx.count = txr_count; in fm10k_alloc_q_vector()
1642 ring->q_vector = q_vector; in fm10k_alloc_q_vector()
1660 q_vector->rx.ring = ring; in fm10k_alloc_q_vector()
1661 q_vector->rx.itr = interface->rx_itr; in fm10k_alloc_q_vector()
1662 q_vector->rx.itr_scale = interface->hw.mac.itr_scale; in fm10k_alloc_q_vector()
1663 q_vector->rx.count = rxr_count; in fm10k_alloc_q_vector()
1672 ring->q_vector = q_vector; in fm10k_alloc_q_vector()
1689 fm10k_dbg_q_vector_init(q_vector); in fm10k_alloc_q_vector()
1705 struct fm10k_q_vector *q_vector = interface->q_vector[v_idx]; in fm10k_free_q_vector() local
1708 fm10k_dbg_q_vector_exit(q_vector); in fm10k_free_q_vector()
1710 fm10k_for_each_ring(ring, q_vector->tx) in fm10k_free_q_vector()
1713 fm10k_for_each_ring(ring, q_vector->rx) in fm10k_free_q_vector()
1716 interface->q_vector[v_idx] = NULL; in fm10k_free_q_vector()
1717 netif_napi_del(&q_vector->napi); in fm10k_free_q_vector()
1718 kfree_rcu(q_vector, rcu); in fm10k_free_q_vector()