Re: [PATCH v2 2/2] serial: 8250: Add new 8250-core based Broadcom STB driver

From: Greg Kroah-Hartman
Date: Tue Jan 19 2021 - 07:46:12 EST


On Mon, Jan 18, 2021 at 03:32:57PM -0500, Al Cooper wrote:
> On Mon, Jan 18, 2021 at 12:45 PM Greg Kroah-Hartman
> <gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
> >
> > On Fri, Jan 15, 2021 at 04:15:43PM -0500, Al Cooper wrote:
> > > Add a UART driver for the new Broadcom 8250 based STB UART. The new
> > > UART is backward compatible with the standard 8250, but has some
> > > additional features. The new features include a high accuracy baud
> > > rate clock system and DMA support.
> > >
> > > The driver will use the new optional BAUD MUX clock to select the best
> > > one of the four master clocks (81MHz, 108MHz, 64MHz and 48MHz) to feed
> > > the baud rate selection logic for any requested baud rate. This allows
> > > for more accurate BAUD rates when high speed baud rates are selected.
> > >
> > > The driver will use the new UART DMA hardware if the UART DMA registers
> > > are specified in Device Tree "reg" property. The DMA functionality can
> > > be disabled on kernel boot with the argument:
> > > "8250_bcm7271.disable_dma=Y".
> >
> > Shouldn't that be on a per-device basis, and not a per-driver basis?
>
> There is only one instance of the UART DMA hardware and it gets muxed
> to just one of the possible UARTS.

But the driver doesn't know/care about that, it binds to any device that
matches it. per-module/driver flags are not a good idea.

> > And why would you want to disable this, if you have support for this in
> > the DT? Why not just rely on the DT setting?
>
> The DMA feature is used when the UART is connected to a Bluetooth
> controller and the BAUD rate is typically 2-3Mbs. The ability to
> easily disable DMA is very useful when debugging BT communication
> problems in the field. DT settings could also be used to disable DMA,
> but knowing the correct modifications to the "reg" and "reg-names"
> properties is a lot more complicated.

So this is a debug-only option? If so, why not just make it a debugfs
file then? No need to clutter up a module parameter for this mess.

thanks,

greg k-h