The function fixes up an OP-TEE node as well as reserved memory regions. It can be useful to fix up the memory reservations, but not the OP-TEE node itself, so let's make this possible if the method is NULL.
Signed-off-by: Ahmad Fatoum <a.fat...@barebox.org> --- drivers/tee/optee/of_fixup.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/drivers/tee/optee/of_fixup.c b/drivers/tee/optee/of_fixup.c index 5a3eb094f22d..152322901a7e 100644 --- a/drivers/tee/optee/of_fixup.c +++ b/drivers/tee/optee/of_fixup.c @@ -10,24 +10,27 @@ int of_optee_fixup(struct device_node *root, void *_data) struct of_optee_fixup_data *fixup_data = _data; const char *optee_of_path = "/firmware/optee"; struct resource res_core = {}, res_shm = {}; - struct device_node *node; u64 optee_membase; int ret; if (of_find_node_by_path_from(root, optee_of_path)) return 0; - node = of_create_node(root, optee_of_path); - if (!node) - return -ENOMEM; + if (fixup_data->method) { + struct device_node *node; - ret = of_property_write_string(node, "compatible", "linaro,optee-tz"); - if (ret) - return ret; + node = of_create_node(root, optee_of_path); + if (!node) + return -ENOMEM; - ret = of_property_write_string(node, "method", fixup_data->method); - if (ret) - return ret; + ret = of_property_write_string(node, "compatible", "linaro,optee-tz"); + if (ret) + return ret; + + ret = of_property_write_string(node, "method", fixup_data->method); + if (ret) + return ret; + } if (!optee_get_membase(&optee_membase)) { res_core.start = optee_membase; -- 2.39.5