Re: [PATCH] serial: sh-sci: optimize max_freq determination
From: Hugo Villeneuve
Date: Mon Apr 20 2026 - 12:22:47 EST
Hi Geert,
On Mon, 20 Apr 2026 09:13:55 +0200
Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote:
> Hi Hugo,
>
> On Sat, 18 Apr 2026 at 16:39, Hugo Villeneuve <hugo@xxxxxxxxxxx> wrote:
> > On Sat, 18 Apr 2026 07:12:57 +0000
> > Biju Das <biju.das.jz@xxxxxxxxxxxxxx> wrote:
> > > > From: Hugo Villeneuve <hugo@xxxxxxxxxxx>
> > > > Follow example of rsci driver to avoid code duplication and useless max_freq search when port->uartclk
> > > > is set to zero.
> > > >
> > > > Signed-off-by: Hugo Villeneuve <hvilleneuve@xxxxxxxxxxxx>
> > > > ---
> > > > Cc: biju.das.jz@xxxxxxxxxxxxxx
> > > >
> > > > Biju: if you want, feel free to pickup this patch when you resubmit your serie for "sh-sci/rsci: Fix
> > > > divide by zero and clean up baud rate logic".
> > > > ---
> > > > drivers/tty/serial/sh-sci.c | 13 +++++++------
> > > > 1 file changed, 7 insertions(+), 6 deletions(-)
> > > >
> > > > diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c index
> > > > 6c819b6b24258..dcee8b69adab2 100644
> > > > --- a/drivers/tty/serial/sh-sci.c
> > > > +++ b/drivers/tty/serial/sh-sci.c
> > > > @@ -2711,14 +2711,15 @@ static void sci_set_termios(struct uart_port *port, struct ktermios *termios,
> > > > * setup the baud rate generator hardware for us already.
> > > > */
> > > > if (!port->uartclk) {
> > > > - baud = uart_get_baud_rate(port, termios, old, 0, 115200);
> > > > - goto done;
> > > > + max_freq = 115200;
> > >
> > > I have thought about this change. but the below comment made me not to do this change.
> > >
> > > <snippet from Geert>
> > > IIRC, baud == 0 can (only?) happen when using earlyprintk on a non-DT
> > > system, where the serial console should just keep on using the settings
> > > programmed by the firmware. So any config register writes should
> > > be skipped.
> > > </snippet>
> >
> > I think Geert comments referred to the clock (port->uartclk) being zero,
> > not the baud (the baud rate cannot be zero)...
>
> I did mean the baud variable being zero.
uart_get_baud_rate() will not return zero. Even if the baud rate
specified in termios (or the old) is set to 0 (hang up), it will return
9600...
--
Hugo Villeneuve