summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Delaunay <patrick.delaunay@foss.st.com>2021-03-30 15:29:03 +0200
committerTom Rini <trini@konsulko.com>2021-04-12 17:45:40 -0400
commit7062d4e815d255891d96aafe617a264c4c4a8a02 (patch)
treea14612fd6853dfc0fa137b6dc04009ab174e9d14
parent34f8fc7c859926174b02734b35e5d5112a8c9fe7 (diff)
downloadu-boot-7062d4e815d255891d96aafe617a264c4c4a8a02.tar.gz
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>
-rw-r--r--drivers/firmware/scmi/smt.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/firmware/scmi/smt.c b/drivers/firmware/scmi/smt.c
index 4954355c1a..f1915c0074 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)) {