serdev controllers may depend on other devices (such as multiplexers)
and thus require deferred probing support.

Signed-off-by: Ulrich Hecht <[email protected]>
---
 drivers/tty/serial/serial_core.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c
index f534a40..30a8997 100644
--- a/drivers/tty/serial/serial_core.c
+++ b/drivers/tty/serial/serial_core.c
@@ -2785,6 +2785,10 @@ int uart_add_one_port(struct uart_driver *drv, struct 
uart_port *uport)
                        uport->line, uport->dev, port, uport->tty_groups);
        if (likely(!IS_ERR(tty_dev))) {
                device_set_wakeup_capable(tty_dev, 1);
+       } else if (PTR_ERR(tty_dev) == -EPROBE_DEFER) {
+               ret = -EPROBE_DEFER;
+               state->uart_port = NULL;
+               goto out;
        } else {
                dev_err(uport->dev, "Cannot register tty device on line %d\n",
                       uport->line);
-- 
2.7.4

Reply via email to