Revert "spmi: pmic_arb: use handle_fasteoi_irq handler"
This reverts commit 3b1bda734d
("spmi: pmic_arb: use
handle_fasteoi_irq handler")
PMIC interrupt are not aligned to be used as fasteoi, this
is because
* most of the PMIC interrupts are threaded and are configured as
ONESHOT. Fasteoi handlers do not support ONESHOT semantics
* There is a chance of losing edge interrupts that trigger while
the handler is running. This is because fasteoi handler signals
EOI after the handler is run. So edge interrupts that trigger
while the handler is running get acknowledged without being
handled.
CRs-Fixed: 1001770
Change-Id: I622fd971201b6c0001212a696c3d12aea409c11b
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
This commit is contained in:
parent
9847f9ca84
commit
7753ddba59
1 changed files with 8 additions and 9 deletions
|
@ -651,7 +651,6 @@ static int qpnpint_get_irqchip_state(struct irq_data *d,
|
||||||
static struct irq_chip pmic_arb_irqchip = {
|
static struct irq_chip pmic_arb_irqchip = {
|
||||||
.name = "pmic_arb",
|
.name = "pmic_arb",
|
||||||
.irq_ack = qpnpint_irq_ack,
|
.irq_ack = qpnpint_irq_ack,
|
||||||
.irq_eoi = qpnpint_irq_ack,
|
|
||||||
.irq_mask = qpnpint_irq_mask,
|
.irq_mask = qpnpint_irq_mask,
|
||||||
.irq_unmask = qpnpint_irq_unmask,
|
.irq_unmask = qpnpint_irq_unmask,
|
||||||
.irq_set_type = qpnpint_irq_set_type,
|
.irq_set_type = qpnpint_irq_set_type,
|
||||||
|
@ -716,7 +715,7 @@ static int qpnpint_irq_domain_map(struct irq_domain *d,
|
||||||
|
|
||||||
dev_dbg(&pa->spmic->dev, "virq = %u, hwirq = %lu\n", virq, hwirq);
|
dev_dbg(&pa->spmic->dev, "virq = %u, hwirq = %lu\n", virq, hwirq);
|
||||||
|
|
||||||
irq_set_chip_and_handler(virq, &pmic_arb_irqchip, handle_fasteoi_irq);
|
irq_set_chip_and_handler(virq, &pmic_arb_irqchip, handle_level_irq);
|
||||||
irq_set_chip_data(virq, d->host_data);
|
irq_set_chip_data(virq, d->host_data);
|
||||||
irq_set_noprobe(virq);
|
irq_set_noprobe(virq);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Add table
Reference in a new issue