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:
Abhijeet Dharmapurikar 2016-04-19 19:58:30 -07:00 committed by Jeevan Shriram
parent 9847f9ca84
commit 7753ddba59

View file

@ -651,7 +651,6 @@ static int qpnpint_get_irqchip_state(struct irq_data *d,
static struct irq_chip pmic_arb_irqchip = {
.name = "pmic_arb",
.irq_ack = qpnpint_irq_ack,
.irq_eoi = qpnpint_irq_ack,
.irq_mask = qpnpint_irq_mask,
.irq_unmask = qpnpint_irq_unmask,
.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);
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_noprobe(virq);
return 0;