summaryrefslogtreecommitdiffstats
path: root/drivers/spmi
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/spmi')
-rw-r--r--drivers/spmi/spmi-pmic-arb.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/spmi/spmi-pmic-arb.c b/drivers/spmi/spmi-pmic-arb.c
index 928759242e42..bc7dc1d6e4b2 100644
--- a/drivers/spmi/spmi-pmic-arb.c
+++ b/drivers/spmi/spmi-pmic-arb.c
@@ -745,10 +745,15 @@ static void qpnpint_irq_domain_map(struct spmi_pmic_arb *pmic_arb,
745 irq_hw_number_t hwirq, unsigned int type) 745 irq_hw_number_t hwirq, unsigned int type)
746{ 746{
747 irq_flow_handler_t handler; 747 irq_flow_handler_t handler;
748 unsigned int old_virq;
748 749
749 dev_dbg(&pmic_arb->spmic->dev, "virq = %u, hwirq = %lu, type = %u\n", 750 dev_dbg(&pmic_arb->spmic->dev, "virq = %u, hwirq = %lu, type = %u\n",
750 virq, hwirq, type); 751 virq, hwirq, type);
751 752
753 old_virq = irq_find_mapping(domain, hwirq);
754 if (old_virq)
755 irq_domain_disassociate(domain, old_virq);
756
752 if (type & IRQ_TYPE_EDGE_BOTH) 757 if (type & IRQ_TYPE_EDGE_BOTH)
753 handler = handle_edge_irq; 758 handler = handle_edge_irq;
754 else 759 else