Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 14772a0d authored by Tony Truong's avatar Tony Truong
Browse files

msm: msi: add hooks for MSI enable/disable



There are cases where MSI IRQ mask/unmask does not
correctly disable the source IRQ. Add enable and
disable hooks to handle these cases.

Change-Id: Ifdad14fc7af3b11ad1cdd54edcf991349ee83733
Signed-off-by: default avatarTony Truong <truong@codeaurora.org>
parent 7f3b0bb0
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -87,6 +87,8 @@ static void msm_msi_unmask_irq(struct irq_data *data)


static struct irq_chip msm_msi_irq_chip = {
static struct irq_chip msm_msi_irq_chip = {
	.name = "msm_pci_msi",
	.name = "msm_pci_msi",
	.irq_enable = msm_msi_unmask_irq,
	.irq_disable = msm_msi_mask_irq,
	.irq_mask = msm_msi_mask_irq,
	.irq_mask = msm_msi_mask_irq,
	.irq_unmask = msm_msi_unmask_irq,
	.irq_unmask = msm_msi_unmask_irq,
};
};
@@ -237,7 +239,6 @@ static int msm_msi_irq_domain_alloc(struct irq_domain *domain,
				msi->irqs[pos].hwirq,
				msi->irqs[pos].hwirq,
				&msm_msi_bottom_irq_chip, client,
				&msm_msi_bottom_irq_chip, client,
				handle_simple_irq, NULL, NULL);
				handle_simple_irq, NULL, NULL);
		irq_set_status_flags(msi->irqs[pos].virq, IRQ_DISABLE_UNLAZY);
		client->nr_irqs++;
		client->nr_irqs++;
		pos++;
		pos++;
	}
	}