@@ -135,6 +135,7 @@ static int keystone_irq_map(struct irq_domain *h, unsigned int virq,
static const struct irq_domain_ops keystone_irq_ops = {
.map = keystone_irq_map,
.xlate = irq_domain_xlate_onecell,
+ .remove = irq_domain_dispose_mappings,
};
static int keystone_irq_probe(struct platform_device *pdev)
@@ -203,13 +204,9 @@ static int keystone_irq_probe(struct platform_device *pdev)
static int keystone_irq_remove(struct platform_device *pdev)
{
struct keystone_irq_device *kirq = platform_get_drvdata(pdev);
- int hwirq;
free_irq(kirq->irq, kirq);
- for (hwirq = 0; hwirq < KEYSTONE_N_IRQ; hwirq++)
- irq_dispose_mapping(irq_find_mapping(kirq->irqd, hwirq));
-
irq_domain_remove(kirq->irqd);
return 0;
}