Lines Matching refs:irq_grp
302 struct ath11k_ext_irq_grp *irq_grp = &ab->ext_irq_grp[i]; in ath11k_pcic_free_ext_irq() local
304 for (j = 0; j < irq_grp->num_irq; j++) in ath11k_pcic_free_ext_irq()
305 free_irq(ab->irq_num[irq_grp->irqs[j]], irq_grp); in ath11k_pcic_free_ext_irq()
307 netif_napi_del(&irq_grp->napi); in ath11k_pcic_free_ext_irq()
410 static void ath11k_pcic_ext_grp_disable(struct ath11k_ext_irq_grp *irq_grp) in ath11k_pcic_ext_grp_disable() argument
412 struct ath11k_base *ab = irq_grp->ab; in ath11k_pcic_ext_grp_disable()
421 for (i = 0; i < irq_grp->num_irq; i++) in ath11k_pcic_ext_grp_disable()
422 disable_irq_nosync(irq_grp->ab->irq_num[irq_grp->irqs[i]]); in ath11k_pcic_ext_grp_disable()
432 struct ath11k_ext_irq_grp *irq_grp = &sc->ext_irq_grp[i]; in __ath11k_pcic_ext_irq_disable() local
434 ath11k_pcic_ext_grp_disable(irq_grp); in __ath11k_pcic_ext_irq_disable()
436 if (irq_grp->napi_enabled) { in __ath11k_pcic_ext_irq_disable()
437 napi_synchronize(&irq_grp->napi); in __ath11k_pcic_ext_irq_disable()
438 napi_disable(&irq_grp->napi); in __ath11k_pcic_ext_irq_disable()
439 irq_grp->napi_enabled = false; in __ath11k_pcic_ext_irq_disable()
444 static void ath11k_pcic_ext_grp_enable(struct ath11k_ext_irq_grp *irq_grp) in ath11k_pcic_ext_grp_enable() argument
446 struct ath11k_base *ab = irq_grp->ab; in ath11k_pcic_ext_grp_enable()
455 for (i = 0; i < irq_grp->num_irq; i++) in ath11k_pcic_ext_grp_enable()
456 enable_irq(irq_grp->ab->irq_num[irq_grp->irqs[i]]); in ath11k_pcic_ext_grp_enable()
466 struct ath11k_ext_irq_grp *irq_grp = &ab->ext_irq_grp[i]; in ath11k_pcic_ext_irq_enable() local
468 if (!irq_grp->napi_enabled) { in ath11k_pcic_ext_irq_enable()
469 dev_set_threaded(&irq_grp->napi_ndev, true); in ath11k_pcic_ext_irq_enable()
470 napi_enable(&irq_grp->napi); in ath11k_pcic_ext_irq_enable()
471 irq_grp->napi_enabled = true; in ath11k_pcic_ext_irq_enable()
473 ath11k_pcic_ext_grp_enable(irq_grp); in ath11k_pcic_ext_irq_enable()
483 struct ath11k_ext_irq_grp *irq_grp = &ab->ext_irq_grp[i]; in ath11k_pcic_sync_ext_irqs() local
485 for (j = 0; j < irq_grp->num_irq; j++) { in ath11k_pcic_sync_ext_irqs()
486 irq_idx = irq_grp->irqs[j]; in ath11k_pcic_sync_ext_irqs()
501 struct ath11k_ext_irq_grp *irq_grp = container_of(napi, in ath11k_pcic_ext_grp_napi_poll() local
504 struct ath11k_base *ab = irq_grp->ab; in ath11k_pcic_ext_grp_napi_poll()
508 work_done = ath11k_dp_service_srng(ab, irq_grp, budget); in ath11k_pcic_ext_grp_napi_poll()
511 for (i = 0; i < irq_grp->num_irq; i++) in ath11k_pcic_ext_grp_napi_poll()
512 enable_irq(irq_grp->ab->irq_num[irq_grp->irqs[i]]); in ath11k_pcic_ext_grp_napi_poll()
523 struct ath11k_ext_irq_grp *irq_grp = arg; in ath11k_pcic_ext_interrupt_handler() local
524 struct ath11k_base *ab = irq_grp->ab; in ath11k_pcic_ext_interrupt_handler()
530 ath11k_dbg(irq_grp->ab, ATH11K_DBG_PCI, "ext irq:%d\n", irq); in ath11k_pcic_ext_interrupt_handler()
533 irq_grp->timestamp = jiffies; in ath11k_pcic_ext_interrupt_handler()
535 for (i = 0; i < irq_grp->num_irq; i++) in ath11k_pcic_ext_interrupt_handler()
536 disable_irq_nosync(irq_grp->ab->irq_num[irq_grp->irqs[i]]); in ath11k_pcic_ext_interrupt_handler()
538 napi_schedule(&irq_grp->napi); in ath11k_pcic_ext_interrupt_handler()
566 struct ath11k_ext_irq_grp *irq_grp = &ab->ext_irq_grp[i]; in ath11k_pcic_ext_irq_config() local
569 irq_grp->ab = ab; in ath11k_pcic_ext_irq_config()
570 irq_grp->grp_id = i; in ath11k_pcic_ext_irq_config()
571 init_dummy_netdev(&irq_grp->napi_ndev); in ath11k_pcic_ext_irq_config()
572 netif_napi_add(&irq_grp->napi_ndev, &irq_grp->napi, in ath11k_pcic_ext_irq_config()
586 irq_grp->num_irq = num_irq; in ath11k_pcic_ext_irq_config()
587 irq_grp->irqs[0] = ATH11K_PCI_IRQ_DP_OFFSET + i; in ath11k_pcic_ext_irq_config()
589 for (j = 0; j < irq_grp->num_irq; j++) { in ath11k_pcic_ext_irq_config()
590 int irq_idx = irq_grp->irqs[j]; in ath11k_pcic_ext_irq_config()
604 irq_flags, "DP_EXT_IRQ", irq_grp); in ath11k_pcic_ext_irq_config()
611 ath11k_pcic_ext_grp_disable(irq_grp); in ath11k_pcic_ext_irq_config()