aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Sverdlin <alexander.sverdlin@nokia.com>2018-07-13 17:01:19 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-07-16 11:56:22 +0200
commitc58caaab3bf87a6470c1a4641ea7fa5192e12bdd (patch)
tree180c022421ae2e9dc671d70e3247bed64ce52d7f
parentserial: 8250: of: Correct of_platform_serial_setup() error handling (diff)
downloadlinux-dev-c58caaab3bf87a6470c1a4641ea7fa5192e12bdd.tar.xz
linux-dev-c58caaab3bf87a6470c1a4641ea7fa5192e12bdd.zip
serial: 8250: of: Defer probe on missing IRQ
If the IRQ controller is not yet probed do not proceed with irq=0, try to defer the probe. Signed-off-by: Alexander Sverdlin <alexander.sverdlin@nokia.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/tty/serial/8250/8250_of.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/tty/serial/8250/8250_of.c b/drivers/tty/serial/8250/8250_of.c
index 863e86b9a424..af8beefe9b5c 100644
--- a/drivers/tty/serial/8250/8250_of.c
+++ b/drivers/tty/serial/8250/8250_of.c
@@ -144,6 +144,10 @@ static int of_platform_serial_setup(struct platform_device *ofdev,
port->line = ret;
port->irq = irq_of_parse_and_map(np, 0);
+ if (!port->irq) {
+ ret = -EPROBE_DEFER;
+ goto err_unprepare;
+ }
info->rst = devm_reset_control_get_optional_shared(&ofdev->dev, NULL);
if (IS_ERR(info->rst)) {