Lines Matching refs:q_vector
337 skb = napi_alloc_skb(&rx_ring->q_vector->napi, in fm10k_fetch_rx_buffer()
433 struct fm10k_intfc *interface = rx_ring->q_vector->interface; in fm10k_rx_hwtstamp()
590 static void fm10k_receive_skb(struct fm10k_q_vector *q_vector, in fm10k_receive_skb() argument
593 napi_gro_receive(&q_vector->napi, skb); in fm10k_receive_skb()
596 static int fm10k_clean_rx_irq(struct fm10k_q_vector *q_vector, in fm10k_clean_rx_irq() argument
646 fm10k_receive_skb(q_vector, skb); in fm10k_clean_rx_irq()
662 q_vector->rx.total_packets += total_packets; in fm10k_clean_rx_irq()
663 q_vector->rx.total_bytes += total_bytes; in fm10k_clean_rx_irq()
1204 static bool fm10k_clean_tx_irq(struct fm10k_q_vector *q_vector, in fm10k_clean_tx_irq() argument
1207 struct fm10k_intfc *interface = q_vector->interface; in fm10k_clean_tx_irq()
1211 unsigned int budget = q_vector->tx.work_limit; in fm10k_clean_tx_irq()
1299 q_vector->tx.total_bytes += total_bytes; in fm10k_clean_tx_irq()
1300 q_vector->tx.total_packets += total_packets; in fm10k_clean_tx_irq()
1399 static void fm10k_qv_enable(struct fm10k_q_vector *q_vector) in fm10k_qv_enable() argument
1405 fm10k_update_itr(&q_vector->tx); in fm10k_qv_enable()
1408 fm10k_update_itr(&q_vector->rx); in fm10k_qv_enable()
1411 itr |= (q_vector->tx.itr & FM10K_ITR_MAX); in fm10k_qv_enable()
1414 itr |= (q_vector->rx.itr & FM10K_ITR_MAX) << FM10K_ITR_INTERVAL1_SHIFT; in fm10k_qv_enable()
1417 writel(itr, q_vector->itr); in fm10k_qv_enable()
1422 struct fm10k_q_vector *q_vector = in fm10k_poll() local
1428 fm10k_for_each_ring(ring, q_vector->tx) in fm10k_poll()
1429 clean_complete &= fm10k_clean_tx_irq(q_vector, ring); in fm10k_poll()
1434 if (q_vector->rx.count > 1) in fm10k_poll()
1435 per_ring_budget = max(budget/q_vector->rx.count, 1); in fm10k_poll()
1439 fm10k_for_each_ring(ring, q_vector->rx) { in fm10k_poll()
1440 int work = fm10k_clean_rx_irq(q_vector, ring, per_ring_budget); in fm10k_poll()
1454 fm10k_qv_enable(q_vector); in fm10k_poll()
1574 struct fm10k_q_vector *q_vector; in fm10k_alloc_q_vector() local
1583 q_vector = kzalloc(size, GFP_KERNEL); in fm10k_alloc_q_vector()
1584 if (!q_vector) in fm10k_alloc_q_vector()
1588 netif_napi_add(interface->netdev, &q_vector->napi, in fm10k_alloc_q_vector()
1592 interface->q_vector[v_idx] = q_vector; in fm10k_alloc_q_vector()
1593 q_vector->interface = interface; in fm10k_alloc_q_vector()
1594 q_vector->v_idx = v_idx; in fm10k_alloc_q_vector()
1597 ring = q_vector->ring; in fm10k_alloc_q_vector()
1600 q_vector->tx.ring = ring; in fm10k_alloc_q_vector()
1601 q_vector->tx.work_limit = FM10K_DEFAULT_TX_WORK; in fm10k_alloc_q_vector()
1602 q_vector->tx.itr = interface->tx_itr; in fm10k_alloc_q_vector()
1603 q_vector->tx.count = txr_count; in fm10k_alloc_q_vector()
1611 ring->q_vector = q_vector; in fm10k_alloc_q_vector()
1629 q_vector->rx.ring = ring; in fm10k_alloc_q_vector()
1630 q_vector->rx.itr = interface->rx_itr; in fm10k_alloc_q_vector()
1631 q_vector->rx.count = rxr_count; in fm10k_alloc_q_vector()
1640 ring->q_vector = q_vector; in fm10k_alloc_q_vector()
1657 fm10k_dbg_q_vector_init(q_vector); in fm10k_alloc_q_vector()
1673 struct fm10k_q_vector *q_vector = interface->q_vector[v_idx]; in fm10k_free_q_vector() local
1676 fm10k_dbg_q_vector_exit(q_vector); in fm10k_free_q_vector()
1678 fm10k_for_each_ring(ring, q_vector->tx) in fm10k_free_q_vector()
1681 fm10k_for_each_ring(ring, q_vector->rx) in fm10k_free_q_vector()
1684 interface->q_vector[v_idx] = NULL; in fm10k_free_q_vector()
1685 netif_napi_del(&q_vector->napi); in fm10k_free_q_vector()
1686 kfree_rcu(q_vector, rcu); in fm10k_free_q_vector()