Re: [PATCH 1/1] serial: dz: Replace DZ_XMIT_SIZE with UART_XMIT_SIZE

From: Maciej W. Rozycki
Date: Thu Aug 25 2022 - 10:33:35 EST


On Thu, 25 Aug 2022, Ilpo Järvinen wrote:

> > Also I'd rather:
> >
> > #define DZ_WAKEUP_CHARS UART_XMIT_SIZE
> >
> > and there's no need to include <linux/serial_core.h> in dz.h as the driver
> > itself already does that (and dz.h is an auxiliary private header).
> >
> > Thanks for your submission.
>
> I have started to becomes more inclined into the direction of dropping
> DZ_WAKEUP_CHARS entirely and use WAKEUP_CHARS like most of the drivers do
> after staring now at WAKEUP_CHARS & uart_write_wakeup() lines just now.
>
> There is just a handful of exceptions, rest of the drivers all use 256 as
> WAKEUP_CHARS. dz uses 1024 (4k/4) and rest of the exceptions use
> uart_circ_empty() but I suspect they should also be just converted to
> use WAKEUP_CHARS.

It may have to do with the particularly low speed of the machines the
driver/hardware is used with, one of the slowest Linux has ever supported
(I think only the m68k port may serve slower machines) and certainly the
slowest and earliest MIPS processors, down to R2000 clocked at 12MHz.

Also bear in mind that the DZ11 interface is a serial line multiplexer
rather than a classic single or multiple UART, handling up to 8 lines via
shared Tx/Rx buffers (the original implementation was in the form of a
rather large discrete board built of SSI chips). In this particular
integrated ASIC implementation 4 lines are handled and a character to be
transmitted may have to wait for the other 3 lines to be handled first.

This may have contributed to the choice made by the original implementer
here and any change will have to be thoroughly understood and evaluated.

See <https://gunkies.org/wiki/DZ11_asynchronous_serial_line_interface>
for an overview of the device, technical documentation, and a photo of a
specimen dating back to mid 1970s.

Maciej