serial: 8250_ingenic: Switch to use platform_get_irq()
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Thu, 18 Jun 2020 12:33:20 +0000 (15:33 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 27 Jun 2020 14:12:56 +0000 (16:12 +0200)
platform_get_irq() provides an established error code and error message.
Also, it's better to use dedicated API to retrieve Linux IRQ resource.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20200618123320.88612-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/8250/8250_ingenic.c

index 424c07c..dde766f 100644 (file)
@@ -207,12 +207,11 @@ static unsigned int ingenic_uart_serial_in(struct uart_port *p, int offset)
 static int ingenic_uart_probe(struct platform_device *pdev)
 {
        struct uart_8250_port uart = {};
-       struct resource *regs = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-       struct resource *irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
        struct ingenic_uart_data *data;
        const struct ingenic_uart_config *cdata;
        const struct of_device_id *match;
-       int err, line;
+       struct resource *regs;
+       int irq, err, line;
 
        match = of_match_device(of_match, &pdev->dev);
        if (!match) {
@@ -221,8 +220,13 @@ static int ingenic_uart_probe(struct platform_device *pdev)
        }
        cdata = match->data;
 
-       if (!regs || !irq) {
-               dev_err(&pdev->dev, "no registers/irq defined\n");
+       irq = platform_get_irq(pdev, 0);
+       if (irq < 0)
+               return irq;
+
+       regs = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+       if (!regs) {
+               dev_err(&pdev->dev, "no registers defined\n");
                return -EINVAL;
        }
 
@@ -238,7 +242,7 @@ static int ingenic_uart_probe(struct platform_device *pdev)
        uart.port.regshift = 2;
        uart.port.serial_out = ingenic_uart_serial_out;
        uart.port.serial_in = ingenic_uart_serial_in;
-       uart.port.irq = irq->start;
+       uart.port.irq = irq;
        uart.port.dev = &pdev->dev;
        uart.port.fifosize = cdata->fifosize;
        uart.tx_loadsz = cdata->tx_loadsz;