]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
serial: 8250_dw: fall back to poll if there's no interrupt
authorJisheng Zhang <jszhang@kernel.org>
Sun, 6 Aug 2023 09:20:56 +0000 (17:20 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 22 Aug 2023 13:29:29 +0000 (15:29 +0200)
When there's no irq(this can be due to various reasons, for example,
no irq from HW support, or we just want to use poll solution, and so
on), falling back to poll is still better than no support at all.

Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
Link: https://lore.kernel.org/r/20230806092056.2467-3-jszhang@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/8250/8250_dw.c

index 7db51781289edb0c5aee1ee60048840b810b793e..f4cafca1a7dad27b8e9cbbff7be1525d8a089da8 100644 (file)
@@ -523,7 +523,10 @@ static int dw8250_probe(struct platform_device *pdev)
        if (!regs)
                return dev_err_probe(dev, -EINVAL, "no registers defined\n");
 
-       irq = platform_get_irq(pdev, 0);
+       irq = platform_get_irq_optional(pdev, 0);
+       /* no interrupt -> fall back to polling */
+       if (irq == -ENXIO)
+               irq = 0;
        if (irq < 0)
                return irq;