diff options
author | Heiko Stuebner <heiko.stuebner@theobroma-systems.com> | 2019-10-23 16:46:39 +0200 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2019-11-14 07:09:34 -0600 |
commit | 357d2ceba0354e29462ac25924f5e42623c22b5b (patch) | |
tree | f03173ccfa5d3db2b6bb0d738590a9e37467fd39 | |
parent | 086336a22508affb7567bf6d383642554eda5a56 (diff) | |
download | u-boot-357d2ceba0354e29462ac25924f5e42623c22b5b.zip u-boot-357d2ceba0354e29462ac25924f5e42623c22b5b.tar.gz u-boot-357d2ceba0354e29462ac25924f5e42623c22b5b.tar.bz2 |
fdtdec: only create phandle if caller wants it in fdtdec_add_reserved_memory()
The phandlep pointer returning the phandle to the caller is optional
and if it is not set when calling fdtdec_add_reserved_memory() it is
highly likely that the caller is not interested in a phandle to the
created reserved-memory area and really just wants that area added.
So just don't create a phandle in that case.
Signed-off-by: Heiko Stuebner <heiko.stuebner@theobroma-systems.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
-rw-r--r-- | include/fdtdec.h | 2 | ||||
-rw-r--r-- | lib/fdtdec.c | 16 |
2 files changed, 10 insertions, 8 deletions
diff --git a/include/fdtdec.h b/include/fdtdec.h index e150975..696e0fd 100644 --- a/include/fdtdec.h +++ b/include/fdtdec.h @@ -1061,7 +1061,7 @@ static inline int fdtdec_set_phandle(void *blob, int node, uint32_t phandle) * @param basename base name of the node to create * @param carveout information about the carveout region * @param phandlep return location for the phandle of the carveout region - * can be NULL + * can be NULL if no phandle should be added * @return 0 on success or a negative error code on failure */ int fdtdec_add_reserved_memory(void *blob, const char *basename, diff --git a/lib/fdtdec.c b/lib/fdtdec.c index 38a0cff..61af347 100644 --- a/lib/fdtdec.c +++ b/lib/fdtdec.c @@ -1339,13 +1339,15 @@ int fdtdec_add_reserved_memory(void *blob, const char *basename, if (node < 0) return node; - err = fdt_generate_phandle(blob, &phandle); - if (err < 0) - return err; - - err = fdtdec_set_phandle(blob, node, phandle); - if (err < 0) - return err; + if (phandlep) { + err = fdt_generate_phandle(blob, &phandle); + if (err < 0) + return err; + + err = fdtdec_set_phandle(blob, node, phandle); + if (err < 0) + return err; + } /* store one or two address cells */ if (na > 1) |