On Thu, 29 Sep 2022, Sherry Sun wrote: > > > This reverts commit 60f361722ad2ae5ee667d0b0545d40c42f754daf. > > > > > > commit 60f361722ad2 ("serial: fsl_lpuart: Reset prior to > > > registration") causes the lpuart console cannot work any more. Since > > > the console is registered in the uart_add_one_port(), the driver > > > cannot identify the console port before call uart_add_one_port(), > > > which causes all the uart ports including the console port will be global > > reset. > > > So need to revert this patch to avoid breaking the lpuart console. > > > > > > Signed-off-by: Sherry Sun <sherry.sun@xxxxxxx> > > > --- > > > drivers/tty/serial/fsl_lpuart.c | 10 +++++----- > > > 1 file changed, 5 insertions(+), 5 deletions(-) > > > > > > diff --git a/drivers/tty/serial/fsl_lpuart.c > > > b/drivers/tty/serial/fsl_lpuart.c index 67fa113f77d4..7da46557fcb3 > > > 100644 > > > --- a/drivers/tty/serial/fsl_lpuart.c > > > +++ b/drivers/tty/serial/fsl_lpuart.c > > > @@ -2722,10 +2722,6 @@ static int lpuart_probe(struct platform_device > > *pdev) > > > handler = lpuart_int; > > > } > > > > > > - ret = lpuart_global_reset(sport); > > > - if (ret) > > > - goto failed_reset; > > > - > > > > So the problem with this being so early is uart_console() in > > lpuart_global_reset() that doesn't detect a console because sport->cons is > > not yet assigned? Couldn't that be worked around differently? > > > > Or is there something else in addition to that I'm missing? > > > Hi Ilpo, > > Yes, the root cause of the console cannot work after apply the commit > 60f361722ad2 ("serial: fsl_lpuart: Reset prior to registration") is > lpuart_global_reset() cannot identify the console port, so reset all > uart ports. This didn't answer my question. Is the main cause just lacking the ->cons from sport at this point which, I guess, could be just assigned from lpuart_reg similar to what uart_add_one_port() does before calling to reset? -- i. > Actually I've been thinking about any other workaround all afternoon, seems no other good options to me till now. And after a further check, I think the original patch is not needed, as uart_add_one_port() won't open the tty device, it should be safe to global reset the non-console ports after uart_add_one_port(). > > Best Regards > Sherry >