Re: [PATCH] Revert "serial: 8250: Fix max baud limit in generic 8250 port"

From: Alain Michaud
Date: Wed Jul 01 2020 - 08:46:41 EST


Adding the bluetooth list as well per the Bluetooth impact.


On Wed, Jul 1, 2020 at 7:39 AM Serge Semin
<Sergey.Semin@xxxxxxxxxxxxxxxxxxxx> wrote:
>
> Hello Lukas,
>
> On Wed, Jul 01, 2020 at 06:30:01AM +0200, Lukas Wunner wrote:
> > On Tue, Jun 30, 2020 at 04:42:11PM -0700, Daniel Winkler wrote:
> > > This reverts commit 0eeaf62981ecc79e8395ca8caa1570eaf3a12257.
> >
> > That is not an upstream commit. You probably mean:
> >
> > commit 7b668c064ec33f3d687c3a413d05e355172e6c92
> > Author: Serge Semin <Sergey.Semin@xxxxxxxxxxxxxxxxxxxx>
> > Date: Thu May 7 02:31:32 2020 +0300
> >
> > serial: 8250: Fix max baud limit in generic 8250 port
> >
> > And you didn't cc the commit author (hereby fixed).
> >
> > Thanks,
> >
> > Lukas
>
> Thanks for Cc'ing me.
>
> >
> > >
> > > The change regresses the QCA6174A-3 bluetooth chip, preventing
> > > firmware from being properly loaded. We have verified that without
> > > this patch, the chip works as intended.
>
> That text doesn't say what is really wrong and why the firmware couldn't be loaded.
> The original commit gets back the 8250 port baud rate limitation so if the baud
> gets out of the range [uartclk / 16 / UART_DIV_MAX; (port->uartclk + tolerance) /
> 16], then it will be clamped to be within it. That range is what the standard
> 8250 port supports. Acceptance of out of that range values will cause a
> problem further in calling serial8250_get_divisor() and uart_get_divisor()
> methods (see the original patch log message) for standard 8250 ports. Any different
> behavior must be taken into account by a custom set_termios() callbacks or at
> least must be workarounded so the standard 8250 ports wouldn't be affected. So in
> order to investigate the root cause of the problem it would be good to at least
> know what your platform was and what UART port has been used in the attempt to
> load the QCA6174A-3 chip firmware.
>
> -Sergey
>
> > >
> > > Signed-off-by: Daniel Winkler <danielwinkler@xxxxxxxxxx>
> > > ---
> > >
> > > drivers/tty/serial/8250/8250_port.c | 4 +---
> > > 1 file changed, 1 insertion(+), 3 deletions(-)
> > >
> > > diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c
> > > index 1632f7d25acca..e057c65ac1580 100644
> > > --- a/drivers/tty/serial/8250/8250_port.c
> > > +++ b/drivers/tty/serial/8250/8250_port.c
> > > @@ -2618,8 +2618,6 @@ static unsigned int serial8250_get_baud_rate(struct uart_port *port,
> > > struct ktermios *termios,
> > > struct ktermios *old)
> > > {
> > > - unsigned int tolerance = port->uartclk / 100;
> > > -
> > > /*
> > > * Ask the core to calculate the divisor for us.
> > > * Allow 1% tolerance at the upper limit so uart clks marginally
> > > @@ -2628,7 +2626,7 @@ static unsigned int serial8250_get_baud_rate(struct uart_port *port,
> > > */
> > > return uart_get_baud_rate(port, termios, old,
> > > port->uartclk / 16 / UART_DIV_MAX,
> > > - (port->uartclk + tolerance) / 16);
> > > + port->uartclk);
> > > }
> > >
> > > void
> > > --
> > > 2.27.0.212.ge8ba1cc988-goog
>
> --
> You received this message because you are subscribed to the Google Groups "ChromeOS Bluetooth Upstreaming" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to chromeos-bluetooth-upstreaming+unsubscribe@xxxxxxxxxxxxx
> To post to this group, send email to chromeos-bluetooth-upstreaming@xxxxxxxxxxxxx
> To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromeos-bluetooth-upstreaming/20200701113904.7zh534vmlvjvojia%40mobilestation.