Lines Matching refs:tqp_vector
96 struct hns3_enet_tqp_vector *tqp_vector = vector; in hns3_irq_handle() local
98 napi_schedule_irqoff(&tqp_vector->napi); in hns3_irq_handle()
109 tqp_vectors = &priv->tqp_vector[i]; in hns3_nic_uninit_irq()
133 tqp_vectors = &priv->tqp_vector[i]; in hns3_nic_init_irq()
180 static void hns3_mask_vector_irq(struct hns3_enet_tqp_vector *tqp_vector, in hns3_mask_vector_irq() argument
183 writel(mask_en, tqp_vector->mask_addr); in hns3_mask_vector_irq()
186 static void hns3_vector_enable(struct hns3_enet_tqp_vector *tqp_vector) in hns3_vector_enable() argument
188 napi_enable(&tqp_vector->napi); in hns3_vector_enable()
189 enable_irq(tqp_vector->vector_irq); in hns3_vector_enable()
192 hns3_mask_vector_irq(tqp_vector, 1); in hns3_vector_enable()
195 static void hns3_vector_disable(struct hns3_enet_tqp_vector *tqp_vector) in hns3_vector_disable() argument
198 hns3_mask_vector_irq(tqp_vector, 0); in hns3_vector_disable()
200 disable_irq(tqp_vector->vector_irq); in hns3_vector_disable()
201 napi_disable(&tqp_vector->napi); in hns3_vector_disable()
204 void hns3_set_vector_coalesce_rl(struct hns3_enet_tqp_vector *tqp_vector, in hns3_set_vector_coalesce_rl() argument
214 if (rl_reg > 0 && !tqp_vector->tx_group.coal.gl_adapt_enable && in hns3_set_vector_coalesce_rl()
215 !tqp_vector->rx_group.coal.gl_adapt_enable) in hns3_set_vector_coalesce_rl()
221 writel(rl_reg, tqp_vector->mask_addr + HNS3_VECTOR_RL_OFFSET); in hns3_set_vector_coalesce_rl()
224 void hns3_set_vector_coalesce_rx_gl(struct hns3_enet_tqp_vector *tqp_vector, in hns3_set_vector_coalesce_rx_gl() argument
229 writel(rx_gl_reg, tqp_vector->mask_addr + HNS3_VECTOR_GL0_OFFSET); in hns3_set_vector_coalesce_rx_gl()
232 void hns3_set_vector_coalesce_tx_gl(struct hns3_enet_tqp_vector *tqp_vector, in hns3_set_vector_coalesce_tx_gl() argument
237 writel(tx_gl_reg, tqp_vector->mask_addr + HNS3_VECTOR_GL1_OFFSET); in hns3_set_vector_coalesce_tx_gl()
240 static void hns3_vector_gl_rl_init(struct hns3_enet_tqp_vector *tqp_vector, in hns3_vector_gl_rl_init() argument
249 tqp_vector->tx_group.coal.gl_adapt_enable = 1; in hns3_vector_gl_rl_init()
250 tqp_vector->rx_group.coal.gl_adapt_enable = 1; in hns3_vector_gl_rl_init()
252 tqp_vector->tx_group.coal.int_gl = HNS3_INT_GL_50K; in hns3_vector_gl_rl_init()
253 tqp_vector->rx_group.coal.int_gl = HNS3_INT_GL_50K; in hns3_vector_gl_rl_init()
255 tqp_vector->rx_group.coal.flow_level = HNS3_FLOW_LOW; in hns3_vector_gl_rl_init()
256 tqp_vector->tx_group.coal.flow_level = HNS3_FLOW_LOW; in hns3_vector_gl_rl_init()
259 static void hns3_vector_gl_rl_init_hw(struct hns3_enet_tqp_vector *tqp_vector, in hns3_vector_gl_rl_init_hw() argument
264 hns3_set_vector_coalesce_tx_gl(tqp_vector, in hns3_vector_gl_rl_init_hw()
265 tqp_vector->tx_group.coal.int_gl); in hns3_vector_gl_rl_init_hw()
266 hns3_set_vector_coalesce_rx_gl(tqp_vector, in hns3_vector_gl_rl_init_hw()
267 tqp_vector->rx_group.coal.int_gl); in hns3_vector_gl_rl_init_hw()
268 hns3_set_vector_coalesce_rl(tqp_vector, h->kinfo.int_rl_setting); in hns3_vector_gl_rl_init_hw()
356 struct hns3_enet_tqp_vector *tqp_vector; in hns3_set_rx_cpu_rmap() local
366 tqp_vector = &priv->tqp_vector[i]; in hns3_set_rx_cpu_rmap()
368 tqp_vector->vector_irq); in hns3_set_rx_cpu_rmap()
393 hns3_vector_enable(&priv->tqp_vector[i]); in hns3_nic_net_up()
407 hns3_vector_disable(&priv->tqp_vector[j]); in hns3_nic_net_up()
418 struct hns3_enet_tqp_vector *tqp_vector = &priv->tqp_vector[i]; in hns3_config_xps() local
419 struct hns3_enet_ring *ring = tqp_vector->tx_group.ring; in hns3_config_xps()
425 &tqp_vector->affinity_mask, in hns3_config_xps()
495 hns3_vector_disable(&priv->tqp_vector[i]); in hns3_nic_net_down()
1876 napi = &tx_ring->tqp_vector->napi; in hns3_get_tx_timeo_queue_info()
1926 readl(tx_ring->tqp_vector->mask_addr)); in hns3_get_tx_timeo_queue_info()
2568 ring->tqp_vector->tx_group.total_bytes += bytes; in hns3_clean_tx_ring()
2569 ring->tqp_vector->tx_group.total_packets += pkts; in hns3_clean_tx_ring()
2807 napi_gro_flush(&ring->tqp_vector->napi, false); in hns3_rx_skb()
2809 napi_gro_receive(&ring->tqp_vector->napi, skb); in hns3_rx_skb()
2882 ring->skb = napi_alloc_skb(&ring->tqp_vector->napi, HNS3_RX_HEAD_SIZE); in hns3_alloc_skb()
2945 new_skb = napi_alloc_skb(&ring->tqp_vector->napi, 0); in hns3_add_frag()
3098 ring->tqp_vector->rx_group.total_bytes += len; in hns3_handle_bdinfo()
3225 struct hns3_enet_tqp_vector *tqp_vector; in hns3_get_new_flow_lvl() local
3229 tqp_vector = ring_group->ring->tqp_vector; in hns3_get_new_flow_lvl()
3231 jiffies_to_msecs(jiffies - tqp_vector->last_jiffies); in hns3_get_new_flow_lvl()
3269 &tqp_vector->rx_group == ring_group) in hns3_get_new_flow_lvl()
3281 struct hns3_enet_tqp_vector *tqp_vector; in hns3_get_new_int_gl() local
3287 tqp_vector = ring_group->ring->tqp_vector; in hns3_get_new_int_gl()
3288 if (!tqp_vector->last_jiffies) in hns3_get_new_int_gl()
3325 static void hns3_update_new_int_gl(struct hns3_enet_tqp_vector *tqp_vector) in hns3_update_new_int_gl() argument
3327 struct hns3_enet_ring_group *rx_group = &tqp_vector->rx_group; in hns3_update_new_int_gl()
3328 struct hns3_enet_ring_group *tx_group = &tqp_vector->tx_group; in hns3_update_new_int_gl()
3333 tqp_vector->last_jiffies + msecs_to_jiffies(1000))) in hns3_update_new_int_gl()
3339 hns3_set_vector_coalesce_rx_gl(tqp_vector, in hns3_update_new_int_gl()
3346 hns3_set_vector_coalesce_tx_gl(tqp_vector, in hns3_update_new_int_gl()
3350 tqp_vector->last_jiffies = jiffies; in hns3_update_new_int_gl()
3359 struct hns3_enet_tqp_vector *tqp_vector = in hns3_nic_common_poll() local
3372 hns3_for_each_ring(ring, tqp_vector->tx_group) in hns3_nic_common_poll()
3376 if (tqp_vector->num_tqps > 1) in hns3_nic_common_poll()
3377 rx_budget = max(budget / tqp_vector->num_tqps, 1); in hns3_nic_common_poll()
3379 hns3_for_each_ring(ring, tqp_vector->rx_group) { in hns3_nic_common_poll()
3389 tqp_vector->rx_group.total_packets += rx_pkt_total; in hns3_nic_common_poll()
3396 hns3_update_new_int_gl(tqp_vector); in hns3_nic_common_poll()
3397 hns3_mask_vector_irq(tqp_vector, 1); in hns3_nic_common_poll()
3403 static int hns3_get_vector_ring_chain(struct hns3_enet_tqp_vector *tqp_vector, in hns3_get_vector_ring_chain() argument
3406 struct pci_dev *pdev = tqp_vector->handle->pdev; in hns3_get_vector_ring_chain()
3412 tx_ring = tqp_vector->tx_group.ring; in hns3_get_vector_ring_chain()
3443 rx_ring = tqp_vector->rx_group.ring; in hns3_get_vector_ring_chain()
3486 static void hns3_free_vector_ring_chain(struct hns3_enet_tqp_vector *tqp_vector, in hns3_free_vector_ring_chain() argument
3489 struct pci_dev *pdev = tqp_vector->handle->pdev; in hns3_free_vector_ring_chain()
3513 struct hns3_enet_tqp_vector *tqp_vector; in hns3_nic_set_cpumask() local
3521 tqp_vector = &priv->tqp_vector[vector_i]; in hns3_nic_set_cpumask()
3523 &tqp_vector->affinity_mask); in hns3_nic_set_cpumask()
3531 struct hns3_enet_tqp_vector *tqp_vector; in hns3_nic_init_vector_data() local
3538 tqp_vector = &priv->tqp_vector[i]; in hns3_nic_init_vector_data()
3539 hns3_vector_gl_rl_init_hw(tqp_vector, priv); in hns3_nic_init_vector_data()
3540 tqp_vector->num_tqps = 0; in hns3_nic_init_vector_data()
3547 tqp_vector = &priv->tqp_vector[vector_i]; in hns3_nic_init_vector_data()
3549 hns3_add_ring_to_group(&tqp_vector->tx_group, in hns3_nic_init_vector_data()
3552 hns3_add_ring_to_group(&tqp_vector->rx_group, in hns3_nic_init_vector_data()
3555 priv->ring[i].tqp_vector = tqp_vector; in hns3_nic_init_vector_data()
3556 priv->ring[i + tqp_num].tqp_vector = tqp_vector; in hns3_nic_init_vector_data()
3557 tqp_vector->num_tqps++; in hns3_nic_init_vector_data()
3561 tqp_vector = &priv->tqp_vector[i]; in hns3_nic_init_vector_data()
3563 tqp_vector->rx_group.total_bytes = 0; in hns3_nic_init_vector_data()
3564 tqp_vector->rx_group.total_packets = 0; in hns3_nic_init_vector_data()
3565 tqp_vector->tx_group.total_bytes = 0; in hns3_nic_init_vector_data()
3566 tqp_vector->tx_group.total_packets = 0; in hns3_nic_init_vector_data()
3567 tqp_vector->handle = h; in hns3_nic_init_vector_data()
3569 ret = hns3_get_vector_ring_chain(tqp_vector, in hns3_nic_init_vector_data()
3575 tqp_vector->vector_irq, &vector_ring_chain); in hns3_nic_init_vector_data()
3577 hns3_free_vector_ring_chain(tqp_vector, &vector_ring_chain); in hns3_nic_init_vector_data()
3582 netif_napi_add(priv->netdev, &tqp_vector->napi, in hns3_nic_init_vector_data()
3590 netif_napi_del(&priv->tqp_vector[i].napi); in hns3_nic_init_vector_data()
3600 struct hns3_enet_tqp_vector *tqp_vector; in hns3_nic_alloc_vector_data() local
3622 priv->tqp_vector = (struct hns3_enet_tqp_vector *) in hns3_nic_alloc_vector_data()
3623 devm_kcalloc(&pdev->dev, vector_num, sizeof(*priv->tqp_vector), in hns3_nic_alloc_vector_data()
3625 if (!priv->tqp_vector) { in hns3_nic_alloc_vector_data()
3631 tqp_vector = &priv->tqp_vector[i]; in hns3_nic_alloc_vector_data()
3632 tqp_vector->idx = i; in hns3_nic_alloc_vector_data()
3633 tqp_vector->mask_addr = vector[i].io_addr; in hns3_nic_alloc_vector_data()
3634 tqp_vector->vector_irq = vector[i].vector; in hns3_nic_alloc_vector_data()
3635 hns3_vector_gl_rl_init(tqp_vector, priv); in hns3_nic_alloc_vector_data()
3653 struct hns3_enet_tqp_vector *tqp_vector; in hns3_nic_uninit_vector_data() local
3657 tqp_vector = &priv->tqp_vector[i]; in hns3_nic_uninit_vector_data()
3659 if (!tqp_vector->rx_group.ring && !tqp_vector->tx_group.ring) in hns3_nic_uninit_vector_data()
3666 if (hns3_get_vector_ring_chain(tqp_vector, &vector_ring_chain)) in hns3_nic_uninit_vector_data()
3670 tqp_vector->vector_irq, &vector_ring_chain); in hns3_nic_uninit_vector_data()
3672 hns3_free_vector_ring_chain(tqp_vector, &vector_ring_chain); in hns3_nic_uninit_vector_data()
3674 hns3_clear_ring_group(&tqp_vector->rx_group); in hns3_nic_uninit_vector_data()
3675 hns3_clear_ring_group(&tqp_vector->tx_group); in hns3_nic_uninit_vector_data()
3676 netif_napi_del(&priv->tqp_vector[i].napi); in hns3_nic_uninit_vector_data()
3687 struct hns3_enet_tqp_vector *tqp_vector; in hns3_nic_dealloc_vector_data() local
3689 tqp_vector = &priv->tqp_vector[i]; in hns3_nic_dealloc_vector_data()
3690 ret = h->ae_algo->ops->put_vector(h, tqp_vector->vector_irq); in hns3_nic_dealloc_vector_data()
3695 devm_kfree(&pdev->dev, priv->tqp_vector); in hns3_nic_dealloc_vector_data()
4355 memcpy(&priv->tx_coal, &priv->tqp_vector[0].tx_group.coal, in hns3_store_coal()
4357 memcpy(&priv->rx_coal, &priv->tqp_vector[0].rx_group.coal, in hns3_store_coal()
4367 memcpy(&priv->tqp_vector[i].tx_group.coal, &priv->tx_coal, in hns3_restore_coal()
4369 memcpy(&priv->tqp_vector[i].rx_group.coal, &priv->rx_coal, in hns3_restore_coal()