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

From: Geert Uytterhoeven
Date: Thu Jan 30 2020 - 07:33:08 EST


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?

BTW, what's the speed you need for your BT/XM modules?

[*] stty speed 38400 < /dev/ttySC1 followed by
setserial /dev/ttySC1 spd_cust divisor 1128 gives 57624 bps on Koelsch.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds