Re: [PATCH v1 tty-next 1/2] 8250: microchip: pci1xxxx: Add driver for the quad-uart function in the multi-function endpoint of pci1xxxx device.

From: Andy Shevchenko
Date: Fri Sep 02 2022 - 11:28:59 EST


On Fri, Sep 2, 2022 at 2:57 PM <Kumaravel.Thiagarajan@xxxxxxxxxxxxx> wrote:
> > -----Original Message-----
> > From: Ilpo Järvinen <ilpo.jarvinen@xxxxxxxxxxxxxxx>
> > Sent: Thursday, September 1, 2022 7:12 PM
> > On Thu, 1 Sep 2022, Kumaravel.Thiagarajan@xxxxxxxxxxxxx wrote:

...

> > > > > + const unsigned int standard_baud_list[] = {50, 75, 110, 134, 150,
> > 300,
> > > > > + 600, 1200, 1800, 2000, 2400, 3600,
> > > > > + 4800, 7200, 9600, 19200, 38400, 57600,
> > > > > + 115200, 125000, 136400, 150000, 166700,
> > > > > + 187500, 214300, 250000, 300000, 375000,
> > > > > + 500000, 750000,
> > > > > + 1000000, 1500000};
> > > >
> > > > Why?!
> > >
> > > The standard baud rates are handled within serial8250_do_set_termios
> > > which is invoked from within mchp_pci1xxxx_set_termios in first place.
> > > Hence if it matches with any of the standard baudrates, it can return
> > > immediately.
> >
> > Care to explain why the baudrates in your table don't match those in
> > tty_baudrate.c? ...It makes no sense to me that you call these "standard
> > baud rates".
> The baudrates in my table are from our legacy UART IP and these baudrates can be
> generated by the hardware by updating UART_DLL & UART_DLM alone as done by the
> serial8250_do_set_termios.
> I noticed that some of the baud rates in tty_baudrate.c arenot listed in this table
> but will still be handled by the mchp_pci1xxxx_set_termios.
> I can rename standard_baud_list to simply baud_list. Please let me know.

No, the point is avoid repeating what standard APIs already do. Just
make sure you call it properly and provide _get/_set_divisor()
callbacks. Note, your driver can cope with BOTHER and there all
non-standard baud rates go.

--
With Best Regards,
Andy Shevchenko