Re: [PATCH] serial: sh-sci: Support custom speed setting

From: Greg Kroah-Hartman
Date: Mon Feb 10 2020 - 15:57:40 EST


On Thu, Jan 30, 2020 at 01:32:50PM +0100, Geert Uytterhoeven wrote:
> Hi Eugeniu,
>
> 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