Hi Claudiu, On Thu, 6 Feb 2025 at 13:47, Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote: > On Wed, 5 Feb 2025 at 10:31, Claudiu <claudiu.beznea@xxxxxxxxx> wrote: > > @@ -3546,13 +3559,41 @@ static int sci_probe(struct platform_device *dev) > > return 0; > > } > > > > +static void sci_console_save_restore(struct sci_port *s, bool save) > > +{ > > + struct sci_suspend_regs *regs = &s->suspend_regs; > > + struct uart_port *port = &s->port; > > + > > + if (save) { > > + regs->scsmr = sci_serial_in(port, SCSMR); > > + regs->scscr = sci_serial_in(port, SCSCR); > > + regs->scfcr = sci_serial_in(port, SCFCR); > > + regs->scsptr = sci_serial_in(port, SCSPTR); > > + regs->scbrr = sci_serial_in(port, SCBRR); > > + regs->semr = sci_serial_in(port, SEMR); > > The SCFCR, SCSPTR, and SEMR registers do not exist on all > variants. Hence you should call sci_getreg() and check if > plat_sci_reg.size is non-zero first, else you will trigger the WARN() > in sci_serial_in(). As expected, the WARN() is triggered on any R-Car platform during system suspend. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds