Re: [PATCH v5] serial: sh-sci: Update the suspend/resume support

From: Geert Uytterhoeven
Date: Thu Feb 06 2025 - 08:55:34 EST


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