Lines Matching refs:tqp_vector
62 struct hns3_enet_tqp_vector *tqp_vector = vector; in hns3_irq_handle() local
64 napi_schedule(&tqp_vector->napi); in hns3_irq_handle()
75 tqp_vectors = &priv->tqp_vector[i]; in hns3_nic_uninit_irq()
96 tqp_vectors = &priv->tqp_vector[i]; in hns3_nic_init_irq()
136 static void hns3_mask_vector_irq(struct hns3_enet_tqp_vector *tqp_vector, in hns3_mask_vector_irq() argument
139 writel(mask_en, tqp_vector->mask_addr); in hns3_mask_vector_irq()
142 static void hns3_vector_enable(struct hns3_enet_tqp_vector *tqp_vector) in hns3_vector_enable() argument
144 napi_enable(&tqp_vector->napi); in hns3_vector_enable()
147 hns3_mask_vector_irq(tqp_vector, 1); in hns3_vector_enable()
150 static void hns3_vector_disable(struct hns3_enet_tqp_vector *tqp_vector) in hns3_vector_disable() argument
153 hns3_mask_vector_irq(tqp_vector, 0); in hns3_vector_disable()
155 disable_irq(tqp_vector->vector_irq); in hns3_vector_disable()
156 napi_disable(&tqp_vector->napi); in hns3_vector_disable()
159 void hns3_set_vector_coalesce_rl(struct hns3_enet_tqp_vector *tqp_vector, in hns3_set_vector_coalesce_rl() argument
169 if (rl_reg > 0 && !tqp_vector->tx_group.coal.gl_adapt_enable && in hns3_set_vector_coalesce_rl()
170 !tqp_vector->rx_group.coal.gl_adapt_enable) in hns3_set_vector_coalesce_rl()
176 writel(rl_reg, tqp_vector->mask_addr + HNS3_VECTOR_RL_OFFSET); in hns3_set_vector_coalesce_rl()
179 void hns3_set_vector_coalesce_rx_gl(struct hns3_enet_tqp_vector *tqp_vector, in hns3_set_vector_coalesce_rx_gl() argument
184 writel(rx_gl_reg, tqp_vector->mask_addr + HNS3_VECTOR_GL0_OFFSET); in hns3_set_vector_coalesce_rx_gl()
187 void hns3_set_vector_coalesce_tx_gl(struct hns3_enet_tqp_vector *tqp_vector, in hns3_set_vector_coalesce_tx_gl() argument
192 writel(tx_gl_reg, tqp_vector->mask_addr + HNS3_VECTOR_GL1_OFFSET); in hns3_set_vector_coalesce_tx_gl()
195 static void hns3_vector_gl_rl_init(struct hns3_enet_tqp_vector *tqp_vector, in hns3_vector_gl_rl_init() argument
206 tqp_vector->tx_group.coal.gl_adapt_enable = 1; in hns3_vector_gl_rl_init()
207 tqp_vector->rx_group.coal.gl_adapt_enable = 1; in hns3_vector_gl_rl_init()
209 tqp_vector->tx_group.coal.int_gl = HNS3_INT_GL_50K; in hns3_vector_gl_rl_init()
210 tqp_vector->rx_group.coal.int_gl = HNS3_INT_GL_50K; in hns3_vector_gl_rl_init()
215 tqp_vector->int_adapt_down = HNS3_INT_ADAPT_DOWN_START; in hns3_vector_gl_rl_init()
216 tqp_vector->rx_group.coal.flow_level = HNS3_FLOW_LOW; in hns3_vector_gl_rl_init()
217 tqp_vector->tx_group.coal.flow_level = HNS3_FLOW_LOW; in hns3_vector_gl_rl_init()
220 static void hns3_vector_gl_rl_init_hw(struct hns3_enet_tqp_vector *tqp_vector, in hns3_vector_gl_rl_init_hw() argument
225 hns3_set_vector_coalesce_tx_gl(tqp_vector, in hns3_vector_gl_rl_init_hw()
226 tqp_vector->tx_group.coal.int_gl); in hns3_vector_gl_rl_init_hw()
227 hns3_set_vector_coalesce_rx_gl(tqp_vector, in hns3_vector_gl_rl_init_hw()
228 tqp_vector->rx_group.coal.int_gl); in hns3_vector_gl_rl_init_hw()
229 hns3_set_vector_coalesce_rl(tqp_vector, h->kinfo.int_rl_setting); in hns3_vector_gl_rl_init_hw()
308 hns3_vector_enable(&priv->tqp_vector[i]); in hns3_nic_net_up()
321 hns3_vector_disable(&priv->tqp_vector[j]); in hns3_nic_net_up()
369 hns3_vector_disable(&priv->tqp_vector[i]); in hns3_nic_net_down()
1509 readl(tx_ring->tqp_vector->mask_addr)); in hns3_get_tx_timeo_queue_info()
1947 ring->tqp_vector->tx_group.total_bytes += bytes; in hns3_clean_tx_ring()
1948 ring->tqp_vector->tx_group.total_packets += pkts; in hns3_clean_tx_ring()
2129 napi_gro_receive(&ring->tqp_vector->napi, skb); in hns3_rx_skb()
2205 skb = *out_skb = napi_alloc_skb(&ring->tqp_vector->napi, in hns3_handle_rx_bd()
2308 ring->tqp_vector->rx_group.total_bytes += skb->len; in hns3_handle_rx_bd()
2370 struct hns3_enet_tqp_vector *tqp_vector = in hns3_get_new_int_gl() local
2371 ring_group->ring->tqp_vector; in hns3_get_new_int_gl()
2378 if (!ring_group->coal.int_gl || !tqp_vector->last_jiffies) in hns3_get_new_int_gl()
2396 jiffies_to_msecs(jiffies - tqp_vector->last_jiffies); in hns3_get_new_int_gl()
2432 &tqp_vector->rx_group == ring_group) in hns3_get_new_int_gl()
2462 static void hns3_update_new_int_gl(struct hns3_enet_tqp_vector *tqp_vector) in hns3_update_new_int_gl() argument
2464 struct hns3_enet_ring_group *rx_group = &tqp_vector->rx_group; in hns3_update_new_int_gl()
2465 struct hns3_enet_ring_group *tx_group = &tqp_vector->tx_group; in hns3_update_new_int_gl()
2468 if (tqp_vector->int_adapt_down > 0) { in hns3_update_new_int_gl()
2469 tqp_vector->int_adapt_down--; in hns3_update_new_int_gl()
2476 hns3_set_vector_coalesce_rx_gl(tqp_vector, in hns3_update_new_int_gl()
2481 tx_update = hns3_get_new_int_gl(&tqp_vector->tx_group); in hns3_update_new_int_gl()
2483 hns3_set_vector_coalesce_tx_gl(tqp_vector, in hns3_update_new_int_gl()
2487 tqp_vector->last_jiffies = jiffies; in hns3_update_new_int_gl()
2488 tqp_vector->int_adapt_down = HNS3_INT_ADAPT_DOWN_START; in hns3_update_new_int_gl()
2496 struct hns3_enet_tqp_vector *tqp_vector = in hns3_nic_common_poll() local
2504 hns3_for_each_ring(ring, tqp_vector->tx_group) { in hns3_nic_common_poll()
2510 rx_budget = max(budget / tqp_vector->num_tqps, 1); in hns3_nic_common_poll()
2512 hns3_for_each_ring(ring, tqp_vector->rx_group) { in hns3_nic_common_poll()
2522 tqp_vector->rx_group.total_packets += rx_pkt_total; in hns3_nic_common_poll()
2528 hns3_update_new_int_gl(tqp_vector); in hns3_nic_common_poll()
2529 hns3_mask_vector_irq(tqp_vector, 1); in hns3_nic_common_poll()
2534 static int hns3_get_vector_ring_chain(struct hns3_enet_tqp_vector *tqp_vector, in hns3_get_vector_ring_chain() argument
2537 struct pci_dev *pdev = tqp_vector->handle->pdev; in hns3_get_vector_ring_chain()
2543 tx_ring = tqp_vector->tx_group.ring; in hns3_get_vector_ring_chain()
2574 rx_ring = tqp_vector->rx_group.ring; in hns3_get_vector_ring_chain()
2606 static void hns3_free_vector_ring_chain(struct hns3_enet_tqp_vector *tqp_vector, in hns3_free_vector_ring_chain() argument
2609 struct pci_dev *pdev = tqp_vector->handle->pdev; in hns3_free_vector_ring_chain()
2634 struct hns3_enet_tqp_vector *tqp_vector; in hns3_nic_init_vector_data() local
2639 tqp_vector = &priv->tqp_vector[i]; in hns3_nic_init_vector_data()
2640 hns3_vector_gl_rl_init_hw(tqp_vector, priv); in hns3_nic_init_vector_data()
2641 tqp_vector->num_tqps = 0; in hns3_nic_init_vector_data()
2648 tqp_vector = &priv->tqp_vector[vector_i]; in hns3_nic_init_vector_data()
2650 hns3_add_ring_to_group(&tqp_vector->tx_group, in hns3_nic_init_vector_data()
2653 hns3_add_ring_to_group(&tqp_vector->rx_group, in hns3_nic_init_vector_data()
2656 priv->ring_data[i].ring->tqp_vector = tqp_vector; in hns3_nic_init_vector_data()
2657 priv->ring_data[i + tqp_num].ring->tqp_vector = tqp_vector; in hns3_nic_init_vector_data()
2658 tqp_vector->num_tqps++; in hns3_nic_init_vector_data()
2662 tqp_vector = &priv->tqp_vector[i]; in hns3_nic_init_vector_data()
2664 tqp_vector->rx_group.total_bytes = 0; in hns3_nic_init_vector_data()
2665 tqp_vector->rx_group.total_packets = 0; in hns3_nic_init_vector_data()
2666 tqp_vector->tx_group.total_bytes = 0; in hns3_nic_init_vector_data()
2667 tqp_vector->tx_group.total_packets = 0; in hns3_nic_init_vector_data()
2668 tqp_vector->handle = h; in hns3_nic_init_vector_data()
2670 ret = hns3_get_vector_ring_chain(tqp_vector, in hns3_nic_init_vector_data()
2676 tqp_vector->vector_irq, &vector_ring_chain); in hns3_nic_init_vector_data()
2678 hns3_free_vector_ring_chain(tqp_vector, &vector_ring_chain); in hns3_nic_init_vector_data()
2683 netif_napi_add(priv->netdev, &tqp_vector->napi, in hns3_nic_init_vector_data()
2693 struct hns3_enet_tqp_vector *tqp_vector; in hns3_nic_alloc_vector_data() local
2712 priv->tqp_vector = (struct hns3_enet_tqp_vector *) in hns3_nic_alloc_vector_data()
2713 devm_kcalloc(&pdev->dev, vector_num, sizeof(*priv->tqp_vector), in hns3_nic_alloc_vector_data()
2715 if (!priv->tqp_vector) { in hns3_nic_alloc_vector_data()
2721 tqp_vector = &priv->tqp_vector[i]; in hns3_nic_alloc_vector_data()
2722 tqp_vector->idx = i; in hns3_nic_alloc_vector_data()
2723 tqp_vector->mask_addr = vector[i].io_addr; in hns3_nic_alloc_vector_data()
2724 tqp_vector->vector_irq = vector[i].vector; in hns3_nic_alloc_vector_data()
2725 hns3_vector_gl_rl_init(tqp_vector, priv); in hns3_nic_alloc_vector_data()
2743 struct hns3_enet_tqp_vector *tqp_vector; in hns3_nic_uninit_vector_data() local
2747 tqp_vector = &priv->tqp_vector[i]; in hns3_nic_uninit_vector_data()
2749 ret = hns3_get_vector_ring_chain(tqp_vector, in hns3_nic_uninit_vector_data()
2755 tqp_vector->vector_irq, &vector_ring_chain); in hns3_nic_uninit_vector_data()
2759 hns3_free_vector_ring_chain(tqp_vector, &vector_ring_chain); in hns3_nic_uninit_vector_data()
2761 if (priv->tqp_vector[i].irq_init_flag == HNS3_VECTOR_INITED) { in hns3_nic_uninit_vector_data()
2763 priv->tqp_vector[i].vector_irq, in hns3_nic_uninit_vector_data()
2765 free_irq(priv->tqp_vector[i].vector_irq, in hns3_nic_uninit_vector_data()
2766 &priv->tqp_vector[i]); in hns3_nic_uninit_vector_data()
2770 hns3_clear_ring_group(&tqp_vector->rx_group); in hns3_nic_uninit_vector_data()
2771 hns3_clear_ring_group(&tqp_vector->tx_group); in hns3_nic_uninit_vector_data()
2772 netif_napi_del(&priv->tqp_vector[i].napi); in hns3_nic_uninit_vector_data()
2785 struct hns3_enet_tqp_vector *tqp_vector; in hns3_nic_dealloc_vector_data() local
2787 tqp_vector = &priv->tqp_vector[i]; in hns3_nic_dealloc_vector_data()
2788 ret = h->ae_algo->ops->put_vector(h, tqp_vector->vector_irq); in hns3_nic_dealloc_vector_data()
2793 devm_kfree(&pdev->dev, priv->tqp_vector); in hns3_nic_dealloc_vector_data()
3537 memcpy(&priv->tqp_vector[i].tx_group.coal, tx, in hns3_restore_coal()
3539 memcpy(&priv->tqp_vector[i].rx_group.coal, rx, in hns3_restore_coal()
3633 memcpy(&tx_coal, &priv->tqp_vector[0].tx_group.coal, in hns3_set_channels()
3635 memcpy(&rx_coal, &priv->tqp_vector[0].rx_group.coal, in hns3_set_channels()