Re: [PATCH][RFC] 8250_dw: unregister dw8250_set_termios for rk3188 chip

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Nov 20, 2017 at 03:44:13PM +0000, Ed Blake wrote:
> On 20/11/17 14:40, Shuyu Wei wrote:
> > dw8250_set_termios is causing problems for rk3188 on my radxa board.
> > It's using a fixed clock at 24M, not baud*16 in dw8250_set_termios.
> > I'm not sure if other rk3xxx chips are facing the same problem.
> >
> > Signed-off-by Wei Shuyu <wsy@xxxxxxxxxx>
> > ---
> >  drivers/tty/serial/8250/8250_dw.c | 3 +++
> >  1 file changed, 3 insertions(+)
> >
> > diff --git a/drivers/tty/serial/8250/8250_dw.c b/drivers/tty/serial/8250/8250_dw.c
> > index 5bb0c42c88dd..e760a5c1f3f6 100644
> > --- a/drivers/tty/serial/8250/8250_dw.c
> > +++ b/drivers/tty/serial/8250/8250_dw.c
> > @@ -340,6 +340,9 @@ static void dw8250_quirks(struct uart_port *p, struct dw8250_data *data)
> >  			data->skip_autocfg = true;
> >  		}
> >  #endif
> > +		if (of_device_is_compatible(np, "rockchip,rk3188-uart")) {
> > +			p->set_termios = NULL;
> > +		}
> >  		if (of_device_is_big_endian(p->dev->of_node)) {
> >  			p->iotype = UPIO_MEM32BE;
> >  			p->serial_in = dw8250_serial_in32be;
> 
> Can you provide more details on the problem you're trying to solve?

Hi Ed,

Current dw8250_set_termios() trys to set p->uartclk and d->clk to
baud*16, which is incorrect for rk3188. It should be a fixed 24000000.
The incorrect value will result in a wrong baud rate, generating bad
bytes on my serial console. Heikki Krogerus had worried about this,
see https://patchwork.kernel.org/patch/9306275/.

--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux