[PATCH] serial: ucc_uart: Use platform IRQ helper

From: Rosen Penev

Date: Fri Sep 25 2026 - 14:26:36 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 before any allocation or anything to avoid
dealing with gotos.

Assisted-by: LLM
Signed-off-by: Rosen Penev <rosenp@xxxxxxxxx>
---
drivers/tty/serial/ucc_uart.c | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/drivers/tty/serial/ucc_uart.c b/drivers/tty/serial/ucc_uart.c
index 6b7dcbbacd13..c3c83a59dcce 100644
--- a/drivers/tty/serial/ucc_uart.c
+++ b/drivers/tty/serial/ucc_uart.c
@@ -1238,6 +1238,7 @@ static int ucc_uart_probe(struct platform_device *ofdev)
struct uart_qe_port *qe_port = NULL;
struct resource res;
u32 val;
+ int irq;
int ret;

/*
@@ -1247,6 +1248,10 @@ static int ucc_uart_probe(struct platform_device *ofdev)
if (ret)
return ret;

+ irq = platform_get_irq(ofdev, 0);
+ if (irq < 0)
+ return irq;
+
qe_port = kzalloc_obj(struct uart_qe_port);
if (!qe_port) {
dev_err(&ofdev->dev, "can't allocate QE port structure\n");
@@ -1338,13 +1343,7 @@ static int ucc_uart_probe(struct platform_device *ofdev)
goto out_free;
}

- qe_port->port.irq = irq_of_parse_and_map(np, 0);
- if (qe_port->port.irq == 0) {
- dev_err(&ofdev->dev, "could not map IRQ for UCC%u\n",
- qe_port->ucc_num + 1);
- ret = -EINVAL;
- goto out_free;
- }
+ qe_port->port.irq = irq;

/*
* Newer device trees have an "fsl,qe" compatible property for the QE
--
2.55.0