Re: [PATCH] serial: sh-sci: Support custom speed setting
From: Greg Kroah-Hartman
Date: Tue Feb 11 2020 - 07:30:12 EST
On Tue, Feb 11, 2020 at 09:15:02AM +0100, Geert Uytterhoeven wrote:
> Hi Greg,
>
> CC man
>
> On Mon, Feb 10, 2020 at 9:57 PM Greg Kroah-Hartman
> <gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
> > On Thu, Jan 30, 2020 at 01:32:50PM +0100, Geert Uytterhoeven wrote:
> > > On Wed, Jan 29, 2020 at 5:20 PM Eugeniu Rosca <erosca@xxxxxxxxxxxxxx> wrote:
> > > > From: Torii Kenichi <torii.ken1@xxxxxxxxxxxxxx>
> > > >
> > > > This patch is necessary to use BT module and XM module with DENSO TEN
> > > > development board.
> > > >
> > > > This patch supports ASYNC_SPD_CUST flag by ioctl(TIOCSSERIAL), enables
> > > > custom speed setting with setserial(1).
> > > >
> > > > The custom speed is calculated from uartclk and custom_divisor.
> > > > If custom_divisor is zero, custom speed setting is invalid.
> > > >
> > > > Signed-off-by: Torii Kenichi <torii.ken1@xxxxxxxxxxxxxx>
> > > > [erosca: rebase against v5.5]
> > > > Signed-off-by: Eugeniu Rosca <erosca@xxxxxxxxxxxxxx>
> > >
> > > Thanks for your patch!
> > >
> > > While this seems to work fine[*], I have a few comments/questions:
> > > 1. This feature seems to be deprecated:
> > >
> > > sh-sci e6e68000.serial: setserial sets custom speed on
> > > ttySC1. This is deprecated.
> > >
> > > 2. As the wanted speed is specified as a divider, the resulting speed
> > > may be off, cfr. the example for 57600 below.
> > > Note that the SCIF device has multiple clock inputs, and can do
> > > 57600 perfectly if the right crystal has been fitted.
> > >
> > > 3. What to do with "[PATCH/RFC] serial: sh-sci: Update uartclk based
> > > on selected clock" (https://patchwork.kernel.org/patch/11103703/)?
> > > Combined with this, things become pretty complicated and
> > > unpredictable, as uartclk now always reflect the frequency of the
> > > last used base clock, which was the optimal one for the previously
> > > used speed....
> > >
> > > I think it would be easier if we just had an API to specify a raw speed.
> > > Perhaps that already exists?
> >
> > Yes, see:
> > http://www.panix.com/~grante/arbitrary-baud.c
>
> Thanks a lot!!
> This must be one of the most guarded secrets of serial port programming ;-)
It really is, I have to look it up each time it comes up :(
> Implemented since 2006, commit edc6afc5496875a6 ("[PATCH] tty: switch to
> ktermios and new framework"), not documented in today's man-pages.
yeah, serial port control really needs to be documented better, there's
all sorts of nice ways of controlling them that people don't seem to
know about. I used to have a link to a bunch of online examples, but
can't seem to find that anymore either. Ugh, another thing for the long
TODO file...
greg k-h