Re: [PATCH v2 1/4] serial: 8250_dw: Keep the BUSY-safe divisor hook when DLF is present

From: Andy Shevchenko

Date: Wed Oct 21 2026 - 02:42:37 EST


On Tue, Oct 20, 2026 at 07:47:53AM -0300, Vinicius Pedrosa wrote:
> On Tue, 20 Oct 2026, Andy Shevchenko wrote:

...

> > > + /* Keep a hook the driver has already installed */
> > > + if (!p->set_divisor)
> > > + p->set_divisor = dw8250_set_divisor;
> >
> > On top of my previous reply, why is this hunk needed?
>
> dw8250_probe() installs the BUSY-safe dw8250_set_divisor() before
> dw8250_setup_port() runs. Without the !p->set_divisor check, detecting
> DLF replaces it with the dwlib setter, which is the BUSY problem
> described in the commit message.
>
> > In the case of existing _set_divisor, do we want to keep the possible set
> > _get_divisor as well? Shouldn't we introduce a respective _get_divisor in
> > 8250_dw.c?
>
> 8250_dw.c doesn't install a get_divisor, so there's no existing getter
> to preserve.

Right.

> The dwlib getter is still needed when DLF is present,
> because it computes the fractional part used by the preserved BUSY-safe
> setter.

Right, but have you read my second question in the above paragraph?

> > But now I see that we have same function name in two files. Can we rename
> > those in dwlib to, for example,
> > dw8250_get_divisor --> dw8250_get_dfl_divisor
> > dw8250_set_divisor --> dw8250_set_dfl_divisor
>
> I'll also clean up the naming in v3: dw8250_update_dlf() with a frac
> parameter, static inline after dw8250_writel_ext(), and the dwlib-local
> helpers renamed to dw8250_get_dlf_divisor() and
> dw8250_set_dlf_divisor().

--
With Best Regards,
Andy Shevchenko