Lines Matching refs:irq_grp

221 static void ath11k_ahb_ext_grp_disable(struct ath11k_ext_irq_grp *irq_grp)  in ath11k_ahb_ext_grp_disable()  argument
225 for (i = 0; i < irq_grp->num_irq; i++) in ath11k_ahb_ext_grp_disable()
226 disable_irq_nosync(irq_grp->ab->irq_num[irq_grp->irqs[i]]); in ath11k_ahb_ext_grp_disable()
234 struct ath11k_ext_irq_grp *irq_grp = &ab->ext_irq_grp[i]; in __ath11k_ahb_ext_irq_disable() local
236 ath11k_ahb_ext_grp_disable(irq_grp); in __ath11k_ahb_ext_irq_disable()
238 if (irq_grp->napi_enabled) { in __ath11k_ahb_ext_irq_disable()
239 napi_synchronize(&irq_grp->napi); in __ath11k_ahb_ext_irq_disable()
240 napi_disable(&irq_grp->napi); in __ath11k_ahb_ext_irq_disable()
241 irq_grp->napi_enabled = false; in __ath11k_ahb_ext_irq_disable()
246 static void ath11k_ahb_ext_grp_enable(struct ath11k_ext_irq_grp *irq_grp) in ath11k_ahb_ext_grp_enable() argument
250 for (i = 0; i < irq_grp->num_irq; i++) in ath11k_ahb_ext_grp_enable()
251 enable_irq(irq_grp->ab->irq_num[irq_grp->irqs[i]]); in ath11k_ahb_ext_grp_enable()
332 struct ath11k_ext_irq_grp *irq_grp = &ab->ext_irq_grp[i]; in ath11k_ahb_sync_ext_irqs() local
334 for (j = 0; j < irq_grp->num_irq; j++) { in ath11k_ahb_sync_ext_irqs()
335 irq_idx = irq_grp->irqs[j]; in ath11k_ahb_sync_ext_irqs()
376 struct ath11k_ext_irq_grp *irq_grp = &ab->ext_irq_grp[i]; in ath11k_ahb_ext_irq_enable() local
378 if (!irq_grp->napi_enabled) { in ath11k_ahb_ext_irq_enable()
379 dev_set_threaded(&irq_grp->napi_ndev, true); in ath11k_ahb_ext_irq_enable()
380 napi_enable(&irq_grp->napi); in ath11k_ahb_ext_irq_enable()
381 irq_grp->napi_enabled = true; in ath11k_ahb_ext_irq_enable()
383 ath11k_ahb_ext_grp_enable(irq_grp); in ath11k_ahb_ext_irq_enable()
464 struct ath11k_ext_irq_grp *irq_grp = &ab->ext_irq_grp[i]; in ath11k_ahb_free_ext_irq() local
466 for (j = 0; j < irq_grp->num_irq; j++) in ath11k_ahb_free_ext_irq()
467 free_irq(ab->irq_num[irq_grp->irqs[j]], irq_grp); in ath11k_ahb_free_ext_irq()
469 netif_napi_del(&irq_grp->napi); in ath11k_ahb_free_ext_irq()
516 struct ath11k_ext_irq_grp *irq_grp = container_of(napi, in ath11k_ahb_ext_grp_napi_poll() local
519 struct ath11k_base *ab = irq_grp->ab; in ath11k_ahb_ext_grp_napi_poll()
522 work_done = ath11k_dp_service_srng(ab, irq_grp, budget); in ath11k_ahb_ext_grp_napi_poll()
525 ath11k_ahb_ext_grp_enable(irq_grp); in ath11k_ahb_ext_grp_napi_poll()
536 struct ath11k_ext_irq_grp *irq_grp = arg; in ath11k_ahb_ext_interrupt_handler() local
539 irq_grp->timestamp = jiffies; in ath11k_ahb_ext_interrupt_handler()
541 ath11k_ahb_ext_grp_disable(irq_grp); in ath11k_ahb_ext_interrupt_handler()
543 napi_schedule(&irq_grp->napi); in ath11k_ahb_ext_interrupt_handler()
556 struct ath11k_ext_irq_grp *irq_grp = &ab->ext_irq_grp[i]; in ath11k_ahb_config_ext_irq() local
559 irq_grp->ab = ab; in ath11k_ahb_config_ext_irq()
560 irq_grp->grp_id = i; in ath11k_ahb_config_ext_irq()
561 init_dummy_netdev(&irq_grp->napi_ndev); in ath11k_ahb_config_ext_irq()
562 netif_napi_add(&irq_grp->napi_ndev, &irq_grp->napi, in ath11k_ahb_config_ext_irq()
567 irq_grp->irqs[num_irq++] = in ath11k_ahb_config_ext_irq()
572 irq_grp->irqs[num_irq++] = in ath11k_ahb_config_ext_irq()
577 irq_grp->irqs[num_irq++] = reo2host_exception; in ath11k_ahb_config_ext_irq()
580 irq_grp->irqs[num_irq++] = wbm2host_rx_release; in ath11k_ahb_config_ext_irq()
583 irq_grp->irqs[num_irq++] = reo2host_status; in ath11k_ahb_config_ext_irq()
587 irq_grp->irqs[num_irq++] = in ath11k_ahb_config_ext_irq()
593 irq_grp->irqs[num_irq++] = in ath11k_ahb_config_ext_irq()
599 irq_grp->irqs[num_irq++] = in ath11k_ahb_config_ext_irq()
602 irq_grp->irqs[num_irq++] = in ath11k_ahb_config_ext_irq()
608 irq_grp->num_irq = num_irq; in ath11k_ahb_config_ext_irq()
610 for (j = 0; j < irq_grp->num_irq; j++) { in ath11k_ahb_config_ext_irq()
611 int irq_idx = irq_grp->irqs[j]; in ath11k_ahb_config_ext_irq()
619 irq_name[irq_idx], irq_grp); in ath11k_ahb_config_ext_irq()