diff options
author | Patrick Delaunay <patrick.delaunay@foss.st.com> | 2021-03-30 15:29:03 +0200 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2021-04-12 17:45:40 -0400 |
commit | 7062d4e815d255891d96aafe617a264c4c4a8a02 (patch) | |
tree | a14612fd6853dfc0fa137b6dc04009ab174e9d14 /drivers/firmware | |
parent | 34f8fc7c859926174b02734b35e5d5112a8c9fe7 (diff) | |
download | u-boot-7062d4e815d255891d96aafe617a264c4c4a8a02.zip u-boot-7062d4e815d255891d96aafe617a264c4c4a8a02.tar.gz u-boot-7062d4e815d255891d96aafe617a264c4c4a8a02.tar.bz2 |
scmi: translate the resource only when livetree is not activated
Call the translation function on the ofnode_read_resource result only
when the livetree is not activated.
Today of_address_to_resource() calls ofnode_read_resource() for livetree
support and fdt_get_resource() when livetree is not supported.
The fdt_get_resource() doesn't do the address translation
so when it is required when livetree is activated but this address
translation is already done by ofnode_read_resource().
Fixes: 240720e9052f ("firmware: scmi: mailbox/smt agent device")
Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Diffstat (limited to 'drivers/firmware')
-rw-r--r-- | drivers/firmware/scmi/smt.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/firmware/scmi/smt.c b/drivers/firmware/scmi/smt.c index 4954355..f1915c0 100644 --- a/drivers/firmware/scmi/smt.c +++ b/drivers/firmware/scmi/smt.c @@ -41,8 +41,13 @@ int scmi_dt_get_smt_buffer(struct udevice *dev, struct scmi_smt *smt) if (ret) return ret; - faddr = cpu_to_fdt32(resource.start); - paddr = ofnode_translate_address(args.node, &faddr); + /* TEMP workaround for ofnode_read_resource translation issue */ + if (of_live_active()) { + paddr = resource.start; + } else { + faddr = cpu_to_fdt32(resource.start); + paddr = ofnode_translate_address(args.node, &faddr); + } smt->size = resource_size(&resource); if (smt->size < sizeof(struct scmi_smt_header)) { |