* Richard Purdie <richard.purdie@xxxxxxxxxxxxxxxxxxx> [231016 08:10]: > The port sometimes doesn't come up properly at boot. > > To be clear, the "\n\n" from the qemu side into the port doesn't seem > to help. The "echo helloB > /dev/ttyS1" inside the image does seem to > wake it up. So if I understand correctly, this issue still happens with kernel patched with commit 81a61051e0ce ("serial: core: Fix checks for tx runtime PM state"), and the issue now only happens sometimes. I wonder if the following additional change might help? I have not yet tried to reproduce with the full test case you guys have, just with qemu and two ports but no luck so far with a minimal test case. Regards, Tony 8< ------------------- diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c --- a/drivers/tty/serial/serial_core.c +++ b/drivers/tty/serial/serial_core.c @@ -146,7 +146,7 @@ static void __uart_start(struct uart_state *state) /* Increment the runtime PM usage count for the active check below */ err = pm_runtime_get(&port_dev->dev); - if (err < 0) { + if (err < 0 && err != -EINPROGRESS) { pm_runtime_put_noidle(&port_dev->dev); return; }