[PATCH] serial: arc_uart: Use platform IRQ helper
From: Rosen Penev
Date: Fri Sep 25 2026 - 14:34:25 EST
Avoid calling irq_dispose_mapping() by letting the platform_device
machinery handle it. Also enable possibility of handling -EPROBE_DEFER
and other errors. Handle as early as possible to avoid doing unnecessary
work.
Signed-off-by: Rosen Penev <rosenp@xxxxxxxxx>
---
drivers/tty/serial/arc_uart.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/tty/serial/arc_uart.c b/drivers/tty/serial/arc_uart.c
index 3988e5958896..b46b057a181b 100644
--- a/drivers/tty/serial/arc_uart.c
+++ b/drivers/tty/serial/arc_uart.c
@@ -30,7 +30,6 @@
#include <linux/tty_flip.h>
#include <linux/serial_core.h>
#include <linux/io.h>
-#include <linux/of_irq.h>
#include <linux/of_address.h>
/*************************************
@@ -571,12 +570,17 @@ static int arc_serial_probe(struct platform_device *pdev)
struct arc_uart_port *uart;
struct uart_port *port;
int dev_id;
+ int irq;
u32 val;
/* no device tree device */
if (!np)
return -ENODEV;
+ irq = platform_get_irq(pdev, 0);
+ if (irq < 0)
+ return irq;
+
dev_id = of_alias_get_id(np, "serial");
if (dev_id < 0)
dev_id = 0;
@@ -607,7 +611,7 @@ static int arc_serial_probe(struct platform_device *pdev)
return PTR_ERR(port->membase);
}
- port->irq = irq_of_parse_and_map(np, 0);
+ port->irq = irq;
port->dev = &pdev->dev;
port->iotype = UPIO_MEM;
--
2.55.0