Lines Matching defs:q_vector

318 		skb = napi_alloc_skb(&rx_ring->q_vector->napi,
552 * @q_vector: structure containing interrupt and ring information
555 static void fm10k_receive_skb(struct fm10k_q_vector *q_vector,
558 napi_gro_receive(&q_vector->napi, skb);
561 static int fm10k_clean_rx_irq(struct fm10k_q_vector *q_vector,
611 fm10k_receive_skb(q_vector, skb);
627 q_vector->rx.total_packets += total_packets;
628 q_vector->rx.total_bytes += total_bytes;
1114 struct fm10k_intfc *interface = ring->q_vector->interface;
1174 * @q_vector: structure containing interrupt and ring information
1178 static bool fm10k_clean_tx_irq(struct fm10k_q_vector *q_vector,
1181 struct fm10k_intfc *interface = q_vector->interface;
1185 unsigned int budget = q_vector->tx.work_limit;
1273 q_vector->tx.total_bytes += total_bytes;
1274 q_vector->tx.total_packets += total_packets;
1399 static void fm10k_qv_enable(struct fm10k_q_vector *q_vector)
1405 fm10k_update_itr(&q_vector->tx);
1408 fm10k_update_itr(&q_vector->rx);
1411 itr |= (q_vector->tx.itr & FM10K_ITR_MAX);
1414 itr |= (q_vector->rx.itr & FM10K_ITR_MAX) << FM10K_ITR_INTERVAL1_SHIFT;
1417 writel(itr, q_vector->itr);
1422 struct fm10k_q_vector *q_vector =
1428 fm10k_for_each_ring(ring, q_vector->tx) {
1429 if (!fm10k_clean_tx_irq(q_vector, ring, budget))
1440 if (q_vector->rx.count > 1)
1441 per_ring_budget = max(budget / q_vector->rx.count, 1);
1445 fm10k_for_each_ring(ring, q_vector->rx) {
1446 int work = fm10k_clean_rx_irq(q_vector, ring, per_ring_budget);
1461 fm10k_qv_enable(q_vector);
1586 * We allocate one q_vector. If allocation fails we return -ENOMEM.
1593 struct fm10k_q_vector *q_vector;
1599 /* allocate q_vector and rings */
1600 q_vector = kzalloc(struct_size(q_vector, ring, ring_count), GFP_KERNEL);
1601 if (!q_vector)
1605 netif_napi_add(interface->netdev, &q_vector->napi, fm10k_poll);
1607 /* tie q_vector and interface together */
1608 interface->q_vector[v_idx] = q_vector;
1609 q_vector->interface = interface;
1610 q_vector->v_idx = v_idx;
1613 ring = q_vector->ring;
1616 q_vector->tx.ring = ring;
1617 q_vector->tx.work_limit = FM10K_DEFAULT_TX_WORK;
1618 q_vector->tx.itr = interface->tx_itr;
1619 q_vector->tx.itr_scale = interface->hw.mac.itr_scale;
1620 q_vector->tx.count = txr_count;
1628 ring->q_vector = q_vector;
1646 q_vector->rx.ring = ring;
1647 q_vector->rx.itr = interface->rx_itr;
1648 q_vector->rx.itr_scale = interface->hw.mac.itr_scale;
1649 q_vector->rx.count = rxr_count;
1658 ring->q_vector = q_vector;
1675 fm10k_dbg_q_vector_init(q_vector);
1685 * This function frees the memory allocated to the q_vector. In addition if
1687 * to freeing the q_vector.
1691 struct fm10k_q_vector *q_vector = interface->q_vector[v_idx];
1694 fm10k_dbg_q_vector_exit(q_vector);
1696 fm10k_for_each_ring(ring, q_vector->tx)
1699 fm10k_for_each_ring(ring, q_vector->rx)
1702 interface->q_vector[v_idx] = NULL;
1703 netif_napi_del(&q_vector->napi);
1704 kfree_rcu(q_vector, rcu);
1711 * We allocate one q_vector per queue interrupt. If allocation fails we
1770 * to freeing the q_vector.