[PATCH] serial: arc_uart: Use platform IRQ helper

Greg Kroah-Hartman gregkh at linuxfoundation.org
Thu Oct 1 22:55:23 PDT 2026


On Thu, Oct 01, 2026 at 11:58:05AM -0700, Rosen Penev wrote:
> On Thu, Oct 1, 2026 at 1:42 AM Greg Kroah-Hartman
> <gregkh at linuxfoundation.org> wrote:
> >
> > On Fri, Sep 25, 2026 at 11:30:50AM -0700, Rosen Penev wrote:
> > > 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 at gmail.com>
> > > ---
> > >  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
> > >
> > >
> >
> > You forgot an Assisted-by: tag here :(
> No LLM used here.

Then what tool was used to find this issue?



More information about the linux-snps-arc mailing list