* [PATCH] serial: ns16550: Fix ordering of getting base address
@ 2020-04-03 9:58 Bin Meng
2020-04-03 10:05 ` Andy Shevchenko
2020-04-03 11:47 ` Antwort: " Wolfgang Wallner
0 siblings, 2 replies; 6+ messages in thread
From: Bin Meng @ 2020-04-03 9:58 UTC (permalink / raw)
To: u-boot
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. Ideally if any PCI bus based ns16550
wrapper driver tries to access plat->base before calling probe(),
it is subject to break.
Fixes: 720f9e1fdb0c9 ("serial: ns16550: Move PCI access from
ofdata_to_platdata() to probe()")
Reported-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
---
drivers/serial/ns16550.c | 51 +++++++++++++++++++++++-------------------------
1 file changed, 24 insertions(+), 27 deletions(-)
diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c
index c1b303f..5e3cd1c 100644
--- a/drivers/serial/ns16550.c
+++ b/drivers/serial/ns16550.c
@@ -479,39 +479,24 @@ static int ns16550_serial_getinfo(struct udevice *dev,
return 0;
}
-#if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA)
-static int ns1655_serial_set_base_addr(struct udevice *dev)
-{
- fdt_addr_t addr;
- struct ns16550_platdata *plat;
-
- plat = dev_get_platdata(dev);
-
- addr = dev_read_addr_pci(dev);
- if (addr == FDT_ADDR_T_NONE)
- return -EINVAL;
-
-#ifdef CONFIG_SYS_NS16550_PORT_MAPPED
- plat->base = addr;
-#else
- plat->base = (unsigned long)map_physmem(addr, 0, MAP_NOCACHE);
-#endif
-
- return 0;
-}
-#endif
-
int ns16550_serial_probe(struct udevice *dev)
{
+ struct ns16550_platdata *plat = dev->platdata;
struct NS16550 *const com_port = dev_get_priv(dev);
struct reset_ctl_bulk reset_bulk;
+ fdt_addr_t addr;
int ret;
-#if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA)
- ret = ns1655_serial_set_base_addr(dev);
- if (ret)
- return ret;
-#endif
+ /*
+ * If we are on PCI bus, either directly attached to a PCI root port,
+ * or via a PCI bridge, assign platdata->base before probing hardware.
+ */
+ if (device_is_on_pci_bus(dev)) {
+ addr = devfdt_get_addr_pci(dev);
+ if (addr == FDT_ADDR_T_NONE)
+ return -EINVAL;
+ plat->base = addr;
+ }
ret = reset_get_bulk(dev, &reset_bulk);
if (!ret)
@@ -535,9 +520,21 @@ int ns16550_serial_ofdata_to_platdata(struct udevice *dev)
{
struct ns16550_platdata *plat = dev->platdata;
const u32 port_type = dev_get_driver_data(dev);
+ fdt_addr_t addr;
struct clk clk;
int err;
+ addr = dev_read_addr(dev);
+ if (addr != FDT_ADDR_T_NONE) {
+#ifdef CONFIG_SYS_NS16550_PORT_MAPPED
+ plat->base = addr;
+#else
+ plat->base = (unsigned long)map_physmem(addr, 0, MAP_NOCACHE);
+#endif
+ } else if (!device_is_on_pci_bus(dev)) {
+ return -EINVAL;
+ }
+
plat->reg_offset = dev_read_u32_default(dev, "reg-offset", 0);
plat->reg_shift = dev_read_u32_default(dev, "reg-shift", 0);
plat->reg_width = dev_read_u32_default(dev, "reg-io-width", 1);
--
2.7.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH] serial: ns16550: Fix ordering of getting base address
2020-04-03 9:58 [PATCH] serial: ns16550: Fix ordering of getting base address Bin Meng
@ 2020-04-03 10:05 ` Andy Shevchenko
2020-04-03 10:16 ` Bin Meng
2020-04-03 11:47 ` Antwort: " Wolfgang Wallner
1 sibling, 1 reply; 6+ messages in thread
From: Andy Shevchenko @ 2020-04-03 10:05 UTC (permalink / raw)
To: u-boot
On Fri, Apr 03, 2020 at 02:58:08AM -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. Ideally if any PCI bus based ns16550
> wrapper driver tries to access plat->base before calling probe(),
> it is subject to break.
Thank you.
I have tested it and it fixes my case.
Tested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Fixes: 720f9e1fdb0c9 ("serial: ns16550: Move PCI access from
> ofdata_to_platdata() to probe()")
I believe this should be one line.
> Reported-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
>
> ---
>
> drivers/serial/ns16550.c | 51 +++++++++++++++++++++++-------------------------
> 1 file changed, 24 insertions(+), 27 deletions(-)
>
> diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c
> index c1b303f..5e3cd1c 100644
> --- a/drivers/serial/ns16550.c
> +++ b/drivers/serial/ns16550.c
> @@ -479,39 +479,24 @@ static int ns16550_serial_getinfo(struct udevice *dev,
> return 0;
> }
>
> -#if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA)
> -static int ns1655_serial_set_base_addr(struct udevice *dev)
> -{
> - fdt_addr_t addr;
> - struct ns16550_platdata *plat;
> -
> - plat = dev_get_platdata(dev);
> -
> - addr = dev_read_addr_pci(dev);
> - if (addr == FDT_ADDR_T_NONE)
> - return -EINVAL;
> -
> -#ifdef CONFIG_SYS_NS16550_PORT_MAPPED
> - plat->base = addr;
> -#else
> - plat->base = (unsigned long)map_physmem(addr, 0, MAP_NOCACHE);
> -#endif
> -
> - return 0;
> -}
> -#endif
> -
> int ns16550_serial_probe(struct udevice *dev)
> {
> + struct ns16550_platdata *plat = dev->platdata;
> struct NS16550 *const com_port = dev_get_priv(dev);
> struct reset_ctl_bulk reset_bulk;
> + fdt_addr_t addr;
> int ret;
>
> -#if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA)
> - ret = ns1655_serial_set_base_addr(dev);
> - if (ret)
> - return ret;
> -#endif
> + /*
> + * If we are on PCI bus, either directly attached to a PCI root port,
> + * or via a PCI bridge, assign platdata->base before probing hardware.
> + */
> + if (device_is_on_pci_bus(dev)) {
> + addr = devfdt_get_addr_pci(dev);
> + if (addr == FDT_ADDR_T_NONE)
> + return -EINVAL;
> + plat->base = addr;
> + }
>
> ret = reset_get_bulk(dev, &reset_bulk);
> if (!ret)
> @@ -535,9 +520,21 @@ int ns16550_serial_ofdata_to_platdata(struct udevice *dev)
> {
> struct ns16550_platdata *plat = dev->platdata;
> const u32 port_type = dev_get_driver_data(dev);
> + fdt_addr_t addr;
> struct clk clk;
> int err;
>
> + addr = dev_read_addr(dev);
> + if (addr != FDT_ADDR_T_NONE) {
> +#ifdef CONFIG_SYS_NS16550_PORT_MAPPED
> + plat->base = addr;
> +#else
> + plat->base = (unsigned long)map_physmem(addr, 0, MAP_NOCACHE);
> +#endif
> + } else if (!device_is_on_pci_bus(dev)) {
> + return -EINVAL;
> + }
> +
> plat->reg_offset = dev_read_u32_default(dev, "reg-offset", 0);
> plat->reg_shift = dev_read_u32_default(dev, "reg-shift", 0);
> plat->reg_width = dev_read_u32_default(dev, "reg-io-width", 1);
> --
> 2.7.4
>
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH] serial: ns16550: Fix ordering of getting base address
2020-04-03 10:05 ` Andy Shevchenko
@ 2020-04-03 10:16 ` Bin Meng
2020-04-03 10:56 ` Andy Shevchenko
0 siblings, 1 reply; 6+ messages in thread
From: Bin Meng @ 2020-04-03 10:16 UTC (permalink / raw)
To: u-boot
Hi Andy,
On Fri, Apr 3, 2020 at 6:05 PM Andy Shevchenko
<andriy.shevchenko@linux.intel.com> wrote:
>
> On Fri, Apr 03, 2020 at 02:58:08AM -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. Ideally if any PCI bus based ns16550
> > wrapper driver tries to access plat->base before calling probe(),
> > it is subject to break.
>
> Thank you.
> I have tested it and it fixes my case.
>
> Tested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Thanks for testing!
>
>
> > Fixes: 720f9e1fdb0c9 ("serial: ns16550: Move PCI access from
> > ofdata_to_platdata() to probe()")
>
> I believe this should be one line.
I thought putting it in one line violates the 80 characters per column
rule. And checkpatch.pl does not complain about this, so I think it's
fine :)
>
> > Reported-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
> >
> > ---
> >
> > drivers/serial/ns16550.c | 51 +++++++++++++++++++++++-------------------------
> > 1 file changed, 24 insertions(+), 27 deletions(-)
> >
Regards,
Bin
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH] serial: ns16550: Fix ordering of getting base address
2020-04-03 10:16 ` Bin Meng
@ 2020-04-03 10:56 ` Andy Shevchenko
0 siblings, 0 replies; 6+ messages in thread
From: Andy Shevchenko @ 2020-04-03 10:56 UTC (permalink / raw)
To: u-boot
On Fri, Apr 03, 2020 at 06:16:51PM +0800, Bin Meng wrote:
> On Fri, Apr 3, 2020 at 6:05 PM Andy Shevchenko
> <andriy.shevchenko@linux.intel.com> wrote:
> > On Fri, Apr 03, 2020 at 02:58:08AM -0700, Bin Meng wrote:
...
> > > Fixes: 720f9e1fdb0c9 ("serial: ns16550: Move PCI access from
> > > ofdata_to_platdata() to probe()")
> >
> > I believe this should be one line.
>
> I thought putting it in one line violates the 80 characters per column
> rule. And checkpatch.pl does not complain about this, so I think it's
> fine :)
Breaking tags to two or more lines actually breaks the scripts around this stuff.
JFYI, in Linux kernel it was now in documentation (not to break Fixes, etc to
two or more lines).
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 6+ messages in thread
* Antwort: [PATCH] serial: ns16550: Fix ordering of getting base address
2020-04-03 9:58 [PATCH] serial: ns16550: Fix ordering of getting base address Bin Meng
2020-04-03 10:05 ` Andy Shevchenko
@ 2020-04-03 11:47 ` Wolfgang Wallner
2020-04-03 12:33 ` Bin Meng
1 sibling, 1 reply; 6+ messages in thread
From: Wolfgang Wallner @ 2020-04-03 11:47 UTC (permalink / raw)
To: u-boot
Hi Bin,
Thanks for taking care of this!
-----"Bin Meng" <bmeng.cn@gmail.com> schrieb: -----
>An: "Simon Glass" <sjg@chromium.org>, "Tom Rini"
><trini@konsulko.com>, "Andy Shevchenko"
><andriy.shevchenko@linux.intel.com>, "Wolfgang Wallner"
><wolfgang.wallner@br-automation.com>, "Chee Hong Ang"
><chee.hong.ang@intel.com>, "U-Boot Mailing List"
><u-boot@lists.denx.de>
>Von: "Bin Meng" <bmeng.cn@gmail.com>
>Datum: 03.04.2020 11:58
>Betreff: [PATCH] serial: ns16550: Fix ordering of getting base
>address
>
>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. Ideally if any PCI bus based ns16550
>wrapper driver tries to access plat->base before calling probe(),
>it is subject to break.
>
>Fixes: 720f9e1fdb0c9 ("serial: ns16550: Move PCI access from
>ofdata_to_platdata() to probe()")
>Reported-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
>Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
>
>---
>
> drivers/serial/ns16550.c | 51
>+++++++++++++++++++++++-------------------------
> 1 file changed, 24 insertions(+), 27 deletions(-)
>
>diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c
>index c1b303f..5e3cd1c 100644
>--- a/drivers/serial/ns16550.c
>+++ b/drivers/serial/ns16550.c
>@@ -479,39 +479,24 @@ static int ns16550_serial_getinfo(struct
>udevice *dev,
> return 0;
> }
>
>-#if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA)
>-static int ns1655_serial_set_base_addr(struct udevice *dev)
>-{
>- fdt_addr_t addr;
>- struct ns16550_platdata *plat;
>-
>- plat = dev_get_platdata(dev);
>-
>- addr = dev_read_addr_pci(dev);
>- if (addr == FDT_ADDR_T_NONE)
>- return -EINVAL;
>-
>-#ifdef CONFIG_SYS_NS16550_PORT_MAPPED
>- plat->base = addr;
>-#else
>- plat->base = (unsigned long)map_physmem(addr, 0, MAP_NOCACHE);
>-#endif
>-
>- return 0;
>-}
>-#endif
>-
> int ns16550_serial_probe(struct udevice *dev)
> {
>+ struct ns16550_platdata *plat = dev->platdata;
> struct NS16550 *const com_port = dev_get_priv(dev);
> struct reset_ctl_bulk reset_bulk;
>+ fdt_addr_t addr;
> int ret;
>
>-#if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA)
>- ret = ns1655_serial_set_base_addr(dev);
>- if (ret)
>- return ret;
>-#endif
>+ /*
>+ * If we are on PCI bus, either directly attached to a PCI root
>port,
>+ * or via a PCI bridge, assign platdata->base before probing
>hardware.
>+ */
>+ if (device_is_on_pci_bus(dev)) {
>+ addr = devfdt_get_addr_pci(dev);
>+ if (addr == FDT_ADDR_T_NONE)
>+ return -EINVAL;
>+ plat->base = addr;
The assignment here to plat->base does not distinguish any more based on
CONFIG_SYS_NS16550_PORT_MAPPED. Is it not necessary any more in this case?
>+ }
>
> ret = reset_get_bulk(dev, &reset_bulk);
> if (!ret)
>@@ -535,9 +520,21 @@ int ns16550_serial_ofdata_to_platdata(struct
>udevice *dev)
> {
> struct ns16550_platdata *plat = dev->platdata;
> const u32 port_type = dev_get_driver_data(dev);
>+ fdt_addr_t addr;
> struct clk clk;
> int err;
>
>+ addr = dev_read_addr(dev);
>+ if (addr != FDT_ADDR_T_NONE) {
>+#ifdef CONFIG_SYS_NS16550_PORT_MAPPED
>+ plat->base = addr;
>+#else
>+ plat->base = (unsigned long)map_physmem(addr, 0, MAP_NOCACHE);
>+#endif
>+ } else if (!device_is_on_pci_bus(dev)) {
>+ return -EINVAL;
>+ }
>+
> plat->reg_offset = dev_read_u32_default(dev, "reg-offset", 0);
> plat->reg_shift = dev_read_u32_default(dev, "reg-shift", 0);
> plat->reg_width = dev_read_u32_default(dev, "reg-io-width", 1);
>--
>2.7.4
>
>
Tested-by: Wolfgang Wallner <wolfgang.wallner@br-automation.com>
Tested on an Intel Apollo Lake based board booting with Coreboot and using
U-Boot as payload.
Reviewed-by: Wolfgang Wallner <wolfgang.wallner@br-automation.com>
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH] serial: ns16550: Fix ordering of getting base address
2020-04-03 11:47 ` Antwort: " Wolfgang Wallner
@ 2020-04-03 12:33 ` Bin Meng
0 siblings, 0 replies; 6+ messages in thread
From: Bin Meng @ 2020-04-03 12:33 UTC (permalink / raw)
To: u-boot
Hi Wolfgang,
On Fri, Apr 3, 2020 at 7:47 PM Wolfgang Wallner
<wolfgang.wallner@br-automation.com> wrote:
>
> Hi Bin,
>
> Thanks for taking care of this!
>
> -----"Bin Meng" <bmeng.cn@gmail.com> schrieb: -----
>
> >An: "Simon Glass" <sjg@chromium.org>, "Tom Rini"
> ><trini@konsulko.com>, "Andy Shevchenko"
> ><andriy.shevchenko@linux.intel.com>, "Wolfgang Wallner"
> ><wolfgang.wallner@br-automation.com>, "Chee Hong Ang"
> ><chee.hong.ang@intel.com>, "U-Boot Mailing List"
> ><u-boot@lists.denx.de>
> >Von: "Bin Meng" <bmeng.cn@gmail.com>
> >Datum: 03.04.2020 11:58
> >Betreff: [PATCH] serial: ns16550: Fix ordering of getting base
> >address
> >
> >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. Ideally if any PCI bus based ns16550
> >wrapper driver tries to access plat->base before calling probe(),
> >it is subject to break.
> >
> >Fixes: 720f9e1fdb0c9 ("serial: ns16550: Move PCI access from
> >ofdata_to_platdata() to probe()")
> >Reported-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> >Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
> >
> >---
> >
> > drivers/serial/ns16550.c | 51
> >+++++++++++++++++++++++-------------------------
> > 1 file changed, 24 insertions(+), 27 deletions(-)
> >
> >diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c
> >index c1b303f..5e3cd1c 100644
> >--- a/drivers/serial/ns16550.c
> >+++ b/drivers/serial/ns16550.c
> >@@ -479,39 +479,24 @@ static int ns16550_serial_getinfo(struct
> >udevice *dev,
> > return 0;
> > }
> >
> >-#if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA)
> >-static int ns1655_serial_set_base_addr(struct udevice *dev)
> >-{
> >- fdt_addr_t addr;
> >- struct ns16550_platdata *plat;
> >-
> >- plat = dev_get_platdata(dev);
> >-
> >- addr = dev_read_addr_pci(dev);
> >- if (addr == FDT_ADDR_T_NONE)
> >- return -EINVAL;
> >-
> >-#ifdef CONFIG_SYS_NS16550_PORT_MAPPED
> >- plat->base = addr;
> >-#else
> >- plat->base = (unsigned long)map_physmem(addr, 0, MAP_NOCACHE);
> >-#endif
> >-
> >- return 0;
> >-}
> >-#endif
> >-
> > int ns16550_serial_probe(struct udevice *dev)
> > {
> >+ struct ns16550_platdata *plat = dev->platdata;
> > struct NS16550 *const com_port = dev_get_priv(dev);
> > struct reset_ctl_bulk reset_bulk;
> >+ fdt_addr_t addr;
> > int ret;
> >
> >-#if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA)
> >- ret = ns1655_serial_set_base_addr(dev);
> >- if (ret)
> >- return ret;
> >-#endif
> >+ /*
> >+ * If we are on PCI bus, either directly attached to a PCI root
> >port,
> >+ * or via a PCI bridge, assign platdata->base before probing
> >hardware.
> >+ */
> >+ if (device_is_on_pci_bus(dev)) {
> >+ addr = devfdt_get_addr_pci(dev);
> >+ if (addr == FDT_ADDR_T_NONE)
> >+ return -EINVAL;
> >+ plat->base = addr;
>
> The assignment here to plat->base does not distinguish any more based on
> CONFIG_SYS_NS16550_PORT_MAPPED. Is it not necessary any more in this case?
>
Yep, you are right. Both two cases should be handled consistently. I
will spin a v2.
> >+ }
> >
> > ret = reset_get_bulk(dev, &reset_bulk);
> > if (!ret)
> >@@ -535,9 +520,21 @@ int ns16550_serial_ofdata_to_platdata(struct
> >udevice *dev)
> > {
> > struct ns16550_platdata *plat = dev->platdata;
> > const u32 port_type = dev_get_driver_data(dev);
> >+ fdt_addr_t addr;
> > struct clk clk;
> > int err;
> >
> >+ addr = dev_read_addr(dev);
> >+ if (addr != FDT_ADDR_T_NONE) {
> >+#ifdef CONFIG_SYS_NS16550_PORT_MAPPED
> >+ plat->base = addr;
> >+#else
> >+ plat->base = (unsigned long)map_physmem(addr, 0, MAP_NOCACHE);
> >+#endif
> >+ } else if (!device_is_on_pci_bus(dev)) {
> >+ return -EINVAL;
> >+ }
> >+
> > plat->reg_offset = dev_read_u32_default(dev, "reg-offset", 0);
> > plat->reg_shift = dev_read_u32_default(dev, "reg-shift", 0);
> > plat->reg_width = dev_read_u32_default(dev, "reg-io-width", 1);
> >--
> >2.7.4
> >
> >
>
> Tested-by: Wolfgang Wallner <wolfgang.wallner@br-automation.com>
> Tested on an Intel Apollo Lake based board booting with Coreboot and using
> U-Boot as payload.
>
Thanks for testing!
> Reviewed-by: Wolfgang Wallner <wolfgang.wallner@br-automation.com>
>
Regards,
Bin
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2020-04-03 12:33 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-04-03 9:58 [PATCH] serial: ns16550: Fix ordering of getting base address Bin Meng
2020-04-03 10:05 ` Andy Shevchenko
2020-04-03 10:16 ` Bin Meng
2020-04-03 10:56 ` Andy Shevchenko
2020-04-03 11:47 ` Antwort: " Wolfgang Wallner
2020-04-03 12:33 ` Bin Meng
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox