[PATCH v7 10/10] irqchip/imx-irqsteer: Use devm_irq_domain_create_linear()

From: Zhipeng . wang_1

Date: Wed Nov 04 2026 - 02:41:12 EST


From: Zhipeng Wang <zhipeng.wang_1@xxxxxxx>

Replace irq_domain_create_linear() with the new
devm_irq_domain_create_linear() helper, so the IRQ domain is released
automatically on unbind and remove() no longer has to call
irq_domain_remove(). No functional change.

Signed-off-by: Zhipeng Wang <zhipeng.wang_1@xxxxxxx>
---
drivers/irqchip/irq-imx-irqsteer.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/irqchip/irq-imx-irqsteer.c b/drivers/irqchip/irq-imx-irqsteer.c
index d15b806b278c..da6e8d1bbec1 100644
--- a/drivers/irqchip/irq-imx-irqsteer.c
+++ b/drivers/irqchip/irq-imx-irqsteer.c
@@ -248,8 +248,9 @@ static int imx_irqsteer_probe(struct platform_device *pdev)
if (ret)
return ret;

- data->domain = irq_domain_create_linear(dev_fwnode(&pdev->dev), data->reg_num * 32,
- &imx_irqsteer_domain_ops, data);
+ data->domain = devm_irq_domain_create_linear(&pdev->dev, dev_fwnode(&pdev->dev),
+ data->reg_num * 32,
+ &imx_irqsteer_domain_ops, data);
if (!data->domain) {
dev_err(&pdev->dev, "failed to create IRQ domain\n");
return -ENOMEM;
@@ -298,8 +299,6 @@ static void imx_irqsteer_remove(struct platform_device *pdev)
for (hwirq = 0; hwirq < irqsteer_data->reg_num * 32; hwirq++)
irq_dispose_mapping(irq_find_mapping(irqsteer_data->domain, hwirq));

- irq_domain_remove(irqsteer_data->domain);
-
if (ret >= 0)
pm_runtime_put_noidle(&pdev->dev);
}
--
2.34.1