Hi John, On 07/01/2025 21:27, John Ogness wrote:
Implement the necessary callbacks to switch the 8250 console driver to perform as an nbcon console. Add implementations for the nbcon console callbacks: ->write_atomic() ->write_thread() ->device_lock() ->device_unlock() and add CON_NBCON to the initial @flags. All register access in the callbacks are within unsafe sections. The ->write_atomic() and ->write_thread() callbacks allow safe handover/takeover per byte and add a preceding newline if they take over from another context mid-line. For the ->write_atomic() callback, a new irq_work is used to defer modem control since it may be called from a context that does not allow waking up tasks. Note: A new __serial8250_clear_IER() is introduced for direct clearing of UART_IER. This will allow to restore the lockdep check to serial8250_clear_IER() in a follow-up commit. Signed-off-by: John Ogness <john.ogness@xxxxxxxxxxxxx>
I have noticed a suspend regression on -next for some of our 32-bit Tegra (ARM) devices (Tegra20, Tegra30 and Tegra124). Bisect is pointing to this commit and reverting this on top of -next (along with reverting "serial: 8250: Revert "drop lockdep annotation from serial8250_clear_IER()") fixes the issue. So far I have not dug in any further. Unfortunately, I don't have any logs to see if there is some crash or something happening but I will see if there is any more info I can get.
Thanks Jon -- nvpublic