diff options
author | Patrick Delaunay <patrick.delaunay@foss.st.com> | 2021-04-06 10:38:06 +0300 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2021-04-29 13:23:39 +0300 |
commit | feb7ac457c20ac575749471141722b0bbe6303ca (patch) | |
tree | d313185a6a75fa108a2da7b5e9798ee4bd792508 /drivers/net/mscc_eswitch/serval_switch.c | |
parent | 1736575b0cfe5dfe511a2904dd84289fc781728e (diff) | |
download | u-boot-feb7ac457c20ac575749471141722b0bbe6303ca.tar.xz |
dm: core: Add address translation in fdt_get_resource
Today of_address_to_resource() is called only in
ofnode_read_resource() for livetree support and
fdt_get_resource() is called when livetree is not supported.
The fdt_get_resource() doesn't do the address translation
so when it is required, but the address translation is done
by ofnode_read_resource() caller, for example in
drivers/firmware/scmi/smt.c::scmi_dt_get_smt_buffer() {
...
ret = ofnode_read_resource(args.node, 0, &resource);
if (ret)
return ret;
faddr = cpu_to_fdt32(resource.start);
paddr = ofnode_translate_address(args.node, &faddr);
...
The both behavior should be aligned and the address translation
must be called in fdt_get_resource() and removed for each caller.
Fixes: a44810123f9e ("dm: core: Add dev_read_resource() to read device resources")
Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
Diffstat (limited to 'drivers/net/mscc_eswitch/serval_switch.c')
-rw-r--r-- | drivers/net/mscc_eswitch/serval_switch.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/net/mscc_eswitch/serval_switch.c b/drivers/net/mscc_eswitch/serval_switch.c index 09ce33452d..c4b81f7529 100644 --- a/drivers/net/mscc_eswitch/serval_switch.c +++ b/drivers/net/mscc_eswitch/serval_switch.c @@ -482,7 +482,6 @@ static int serval_probe(struct udevice *dev) struct serval_private *priv = dev_get_priv(dev); int i, ret; struct resource res; - fdt32_t faddr; phys_addr_t addr_base; unsigned long addr_size; ofnode eth_node, node, mdio_node; @@ -533,9 +532,8 @@ static int serval_probe(struct udevice *dev) if (ofnode_read_resource(mdio_node, 0, &res)) return -ENOMEM; - faddr = cpu_to_fdt32(res.start); - addr_base = ofnode_translate_address(mdio_node, &faddr); + addr_base = res.start; addr_size = res.end - res.start; /* If the bus is new then create a new bus */ |