Lines Matching refs:eqo
2140 static int be_get_new_eqd(struct be_eq_obj *eqo) in be_get_new_eqd() argument
2142 struct be_adapter *adapter = eqo->adapter; in be_get_new_eqd()
2152 aic = &adapter->aic_obj[eqo->idx]; in be_get_new_eqd()
2160 for_all_rx_queues_on_eq(adapter, eqo, rxo, i) { in be_get_new_eqd()
2167 for_all_tx_queues_on_eq(adapter, eqo, txo, i) { in be_get_new_eqd()
2202 static u32 be_get_eq_delay_mult_enc(struct be_eq_obj *eqo) in be_get_eq_delay_mult_enc() argument
2204 struct be_adapter *adapter = eqo->adapter; in be_get_eq_delay_mult_enc()
2205 struct be_aic_obj *aic = &adapter->aic_obj[eqo->idx]; in be_get_eq_delay_mult_enc()
2216 eqd = be_get_new_eqd(eqo); in be_get_eq_delay_mult_enc()
2236 struct be_eq_obj *eqo; in be_eqd_update() local
2239 for_all_evt_queues(adapter, eqo, i) { in be_eqd_update()
2240 aic = &adapter->aic_obj[eqo->idx]; in be_eqd_update()
2241 eqd = be_get_new_eqd(eqo); in be_eqd_update()
2244 set_eqd[num].eq_id = eqo->q.id; in be_eqd_update()
2787 static inline int events_get(struct be_eq_obj *eqo) in events_get() argument
2793 eqe = queue_tail_node(&eqo->q); in events_get()
2800 queue_tail_inc(&eqo->q); in events_get()
2807 static void be_eq_clean(struct be_eq_obj *eqo) in be_eq_clean() argument
2809 int num = events_get(eqo); in be_eq_clean()
2811 be_eq_notify(eqo->adapter, eqo->q.id, false, true, num, 0); in be_eq_clean()
2939 struct be_eq_obj *eqo; in be_evt_queues_destroy() local
2942 for_all_evt_queues(adapter, eqo, i) { in be_evt_queues_destroy()
2943 if (eqo->q.created) { in be_evt_queues_destroy()
2944 be_eq_clean(eqo); in be_evt_queues_destroy()
2945 be_cmd_q_destroy(adapter, &eqo->q, QTYPE_EQ); in be_evt_queues_destroy()
2946 netif_napi_del(&eqo->napi); in be_evt_queues_destroy()
2947 free_cpumask_var(eqo->affinity_mask); in be_evt_queues_destroy()
2949 be_queue_free(adapter, &eqo->q); in be_evt_queues_destroy()
2956 struct be_eq_obj *eqo; in be_evt_queues_create() local
2965 for_all_evt_queues(adapter, eqo, i) { in be_evt_queues_create()
2969 eqo->adapter = adapter; in be_evt_queues_create()
2970 eqo->idx = i; in be_evt_queues_create()
2974 eq = &eqo->q; in be_evt_queues_create()
2980 rc = be_cmd_eq_create(adapter, eqo); in be_evt_queues_create()
2984 if (!zalloc_cpumask_var(&eqo->affinity_mask, GFP_KERNEL)) in be_evt_queues_create()
2987 eqo->affinity_mask); in be_evt_queues_create()
2988 netif_napi_add(adapter->netdev, &eqo->napi, be_poll, in be_evt_queues_create()
3065 struct be_eq_obj *eqo; in be_tx_qs_create() local
3083 eqo = &adapter->eq_obj[i % adapter->num_evt_qs]; in be_tx_qs_create()
3084 status = be_cmd_cq_create(adapter, cq, &eqo->q, false, 3); in be_tx_qs_create()
3097 netif_set_xps_queue(adapter->netdev, eqo->affinity_mask, in be_tx_qs_create()
3098 eqo->idx); in be_tx_qs_create()
3164 struct be_eq_obj *eqo = dev; in be_intx() local
3165 struct be_adapter *adapter = eqo->adapter; in be_intx()
3176 if (napi_schedule_prep(&eqo->napi)) { in be_intx()
3177 num_evts = events_get(eqo); in be_intx()
3178 __napi_schedule(&eqo->napi); in be_intx()
3180 eqo->spurious_intr = 0; in be_intx()
3182 be_eq_notify(adapter, eqo->q.id, false, true, num_evts, 0); in be_intx()
3188 if (num_evts || eqo->spurious_intr++ == 0) in be_intx()
3196 struct be_eq_obj *eqo = dev; in be_msix() local
3198 be_eq_notify(eqo->adapter, eqo->q.id, false, true, 0, 0); in be_msix()
3199 napi_schedule(&eqo->napi); in be_msix()
3298 struct be_eq_obj *eqo = container_of(napi, struct be_eq_obj, napi); in be_poll() local
3299 struct be_adapter *adapter = eqo->adapter; in be_poll()
3305 num_evts = events_get(eqo); in be_poll()
3307 for_all_tx_queues_on_eq(adapter, eqo, txo, i) in be_poll()
3314 for_all_rx_queues_on_eq(adapter, eqo, rxo, i) { in be_poll()
3319 if (is_mcc_eqo(eqo)) in be_poll()
3329 mult_enc = be_get_eq_delay_mult_enc(eqo); in be_poll()
3331 be_eq_notify(adapter, eqo->q.id, true, false, num_evts, in be_poll()
3335 be_eq_notify(adapter, eqo->q.id, false, false, num_evts, 0); in be_poll()
3479 struct be_eq_obj *eqo) in be_msix_vec_get() argument
3481 return adapter->msix_entries[eqo->msix_idx].vector; in be_msix_vec_get()
3487 struct be_eq_obj *eqo; in be_msix_register() local
3490 for_all_evt_queues(adapter, eqo, i) { in be_msix_register()
3494 vec = be_msix_vec_get(adapter, eqo); in be_msix_register()
3495 status = request_irq(vec, be_msix, 0, irq_name, eqo); in be_msix_register()
3499 irq_set_affinity_hint(vec, eqo->affinity_mask); in be_msix_register()
3505 eqo = &adapter->eq_obj[i]; in be_msix_register()
3506 free_irq(be_msix_vec_get(adapter, eqo), eqo); in be_msix_register()
3545 struct be_eq_obj *eqo; in be_irq_unregister() local
3558 for_all_evt_queues(adapter, eqo, i) { in be_irq_unregister()
3559 vec = be_msix_vec_get(adapter, eqo); in be_irq_unregister()
3561 free_irq(vec, eqo); in be_irq_unregister()
3640 struct be_eq_obj *eqo; in be_close() local
3657 for_all_evt_queues(adapter, eqo, i) { in be_close()
3658 napi_disable(&eqo->napi); in be_close()
3673 for_all_evt_queues(adapter, eqo, i) { in be_close()
3675 synchronize_irq(be_msix_vec_get(adapter, eqo)); in be_close()
3678 be_eq_clean(eqo); in be_close()
3800 struct be_eq_obj *eqo; in be_open() local
3826 for_all_evt_queues(adapter, eqo, i) { in be_open()
3827 napi_enable(&eqo->napi); in be_open()
3828 be_eq_notify(adapter, eqo->q.id, true, true, 0, 0); in be_open()
4914 struct be_eq_obj *eqo; in be_netpoll() local
4917 for_all_evt_queues(adapter, eqo, i) { in be_netpoll()
4918 be_eq_notify(eqo->adapter, eqo->q.id, false, true, 0, 0); in be_netpoll()
4919 napi_schedule(&eqo->napi); in be_netpoll()