[PATCH v3] serial: ns16550: Fix ordering of getting base address

Bin Meng bmeng.cn at gmail.com
Sat Apr 4 16:14:06 CEST 2020


On Sat, Apr 4, 2020 at 6:32 PM Andy Shevchenko
<andriy.shevchenko at linux.intel.com> wrote:
>
> On Fri, Apr 03, 2020 at 06:35:32PM -0700, Bin Meng wrote:
> > Currently the driver gets ns16550 base address in the driver
> > probe() routine, which may potentially break any ns16550 wrapper
> > driver that does additional initialization before calling
> > ns16550_serial_probe().
> >
> > Things are complicated that we need consider ns16550 devices on
> > both simple-bus and PCI bus. To fix the issue we move the base
> > address assignment for simple-bus ns16550 device back to the
> > ofdata_to_platdata(), and assign base address for PCI ns16550
> > device in ns16550_serial_probe().
> >
> > This is still not perfect. If any PCI bus based ns16550 wrapper
> > driver tries to access plat->base before calling probe(), it is
> > still subject to break.
> >
> > Fixes: 720f9e1fdb0c9 ("serial: ns16550: Move PCI access from ofdata_to_platdata() to probe()")
> > Reported-by: Andy Shevchenko <andriy.shevchenko at linux.intel.com>
> > Signed-off-by: Bin Meng <bmeng.cn at gmail.com>
>
> And re-tested. Works for me, thanks!
>
> > Tested-by: Andy Shevchenko <andriy.shevchenko at linux.intel.com>
> > Reviewed-by: Wolfgang Wallner <wolfgang.wallner at br-automation.com>
> > Tested-by: Wolfgang Wallner <wolfgang.wallner at br-automation.com>
> >

applied to u-boot-x86, thanks!


More information about the U-Boot mailing list