Messages in this thread | | | Date | Mon, 4 Jul 2022 08:40:05 +0200 | Subject | Re: [PATCH v2] serial: 8250_bcm7271: Save/restore RTS in suspend/resume | From | Jiri Slaby <> |
| |
On 29. 06. 22, 18:02, Florian Fainelli wrote: > From: Doug Berger <opendmb@gmail.com> > > Commit 9cabe26e65a8 ("serial: 8250_bcm7271: UART errors after resuming > from S2") prevented an early enabling of RTS during resume, but it did > not actively restore the RTS state after resume. > > Fixes: 9cabe26e65a8 ("serial: 8250_bcm7271: UART errors after resuming from S2") > Signed-off-by: Doug Berger <opendmb@gmail.com> > Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> > --- > drivers/tty/serial/8250/8250_bcm7271.c | 24 ++++++++++++++++++------ > 1 file changed, 18 insertions(+), 6 deletions(-) > > diff --git a/drivers/tty/serial/8250/8250_bcm7271.c b/drivers/tty/serial/8250/8250_bcm7271.c > index 9b878d023dac..b9cea38c8aff 100644 > --- a/drivers/tty/serial/8250/8250_bcm7271.c > +++ b/drivers/tty/serial/8250/8250_bcm7271.c ... > @@ -1180,7 +1184,15 @@ static int __maybe_unused brcmuart_resume(struct device *dev) > start_rx_dma(serial8250_get_port(priv->line)); > } > serial8250_resume_port(priv->line); > - port->mctrl = priv->saved_mctrl; > + > + if (priv->saved_mctrl & TIOCM_RTS) { > + /* Restore RTS */ > + spin_lock_irqsave(&port->lock, flags); > + port->mctrl |= TIOCM_RTS; > + spin_unlock_irqrestore(&port->lock, flags); > + port->ops->set_mctrl(port, port->mctrl);
Calling ->set_mctrl w/o port->lock doesn't look really safe.
regards, -- js suse labs
| |