static irqreturn_t ath10k_ahb_interrupt_handler(int irq, void *arg) { struct ath10k *ar = arg; if (!ath10k_pci_irq_pending(ar)) return IRQ_NONE; ath10k_pci_disable_and_clear_legacy_irq(ar); ath10k_pci_irq_msi_fw_mask(ar); napi_schedule(&ar->napi); return IRQ_HANDLED; }
static irqreturn_t ath10k_ahb_interrupt_handler(int irq, void *arg) { struct ath10k *ar = arg; struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); if (!ath10k_pci_irq_pending(ar)) return IRQ_NONE; ath10k_pci_disable_and_clear_legacy_irq(ar); tasklet_schedule(&ar_pci->intr_tq); return IRQ_HANDLED; }
static int ath10k_pci_interrupt_handler(void *arg) { struct ath10k_pci *ar_pci = arg; struct ath10k *ar = &ar_pci->sc_sc; if (ar->sc_invalid) return (FILTER_STRAY); /* * Check for shared interrupts if we're not doing MSI. */ if ((ar_pci->num_msi_intrs == 0) && (! ath10k_pci_irq_pending(ar_pci))) return (FILTER_STRAY); // trace_ath10k_intr(ar, 0, 1); if (ar_pci->num_msi_intrs == 0) ath10k_pci_disable_and_clear_legacy_irq(ar_pci); return (FILTER_SCHEDULE_THREAD); }
static void ath10k_ahb_irq_disable(struct ath10k *ar) { ath10k_ce_disable_interrupts(ar); ath10k_pci_disable_and_clear_legacy_irq(ar); }