Ejemplo n.º 1
0
Archivo: ahb.c Proyecto: Anjali05/linux
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;
}
Ejemplo n.º 2
0
Archivo: ahb.c Proyecto: AK101111/linux
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;
}
Ejemplo n.º 3
0
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);
}