diff options
Diffstat (limited to 'drivers/spmi')
-rw-r--r-- | drivers/spmi/spmi-pmic-arb.c | 5 |
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 |