
Hi Marek,
On Sat, Sep 22, 2018 at 6:59 AM Marek Vasut marek.vasut@gmail.com wrote:
Of CONFIG_OF_TRANSLATE is enabled, this function still returns untranslated bogus results. Add the missing translation.
Signed-off-by: Marek Vasut marek.vasut+renesas@gmail.com Cc: Simon Glass sjg@chromium.org Cc: Tom Rini trini@konsulko.com
drivers/core/ofnode.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/core/ofnode.c b/drivers/core/ofnode.c index a7e1927723..035023ca91 100644 --- a/drivers/core/ofnode.c +++ b/drivers/core/ofnode.c @@ -542,8 +542,15 @@ fdt_addr_t ofnode_get_addr_size(ofnode node, const char *property, return FDT_ADDR_T_NONE; na = of_n_addr_cells(np); ns = of_n_addr_cells(np);
There is an unrelated bug. It should be:
ns = of_n_size_cells(np);
*sizep = of_read_number(prop + na, ns);
return of_read_number(prop, na);
if (IS_ENABLED(CONFIG_OF_TRANSLATE) && ns > 0) {
return of_translate_address(ofnode_to_np(node), prop);
Just use np instead of ofnode_to_np(node)
} else {
na = of_n_addr_cells(ofnode_to_np(node));
This line is unnecessary.
return of_read_number(prop, na);
} } else { return fdtdec_get_addr_size(gd->fdt_blob, ofnode_to_offset(node), property,
--
However, I have to point out that this patch (along with the unrelated bug I pointed out above) is not related to "support parsing PCI controller DT subnodes". Both of_translate_address() and of_read_number() are not designed to handle PCI-specific address formats. See my comments in patch 3 and 5.
Regards, Bin