diff options
| author | Simon Glass <[email protected]> | 2022-09-06 20:27:18 -0600 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2022-09-29 22:43:42 -0400 |
| commit | 66d0d0c188db9e816c5b18e8823a8d8bf5e9cd63 (patch) | |
| tree | 382d7c8364b9c1cdbe4a6665410bd2312e1b462f /drivers/core/ofnode.c | |
| parent | 8909066199281b86bf4ee7673ec6d7983dd12a26 (diff) | |
dm: core: Expand integer-reading tests
The current tests do not cover all the behaviour. Add some more.
Tidy up a few inconsistencies between livetree and flattree which come to
light with these tests. Also drop the -ENODATA error since it is never
actually returned.
Signed-off-by: Simon Glass <[email protected]>
Diffstat (limited to 'drivers/core/ofnode.c')
| -rw-r--r-- | drivers/core/ofnode.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/drivers/core/ofnode.c b/drivers/core/ofnode.c index 4dd2aee11ce..e4b4b352e46 100644 --- a/drivers/core/ofnode.c +++ b/drivers/core/ofnode.c @@ -296,9 +296,20 @@ int ofnode_read_u32_array(ofnode node, const char *propname, return of_read_u32_array(ofnode_to_np(node), propname, out_values, sz); } else { - return fdtdec_get_int_array(gd->fdt_blob, - ofnode_to_offset(node), propname, - out_values, sz); + int ret; + + ret = fdtdec_get_int_array(gd->fdt_blob, + ofnode_to_offset(node), propname, + out_values, sz); + + /* get the error right, but space is more important in SPL */ + if (!IS_ENABLED(CONFIG_SPL_BUILD)) { + if (ret == -FDT_ERR_NOTFOUND) + return -EINVAL; + else if (ret == -FDT_ERR_BADLAYOUT) + return -EOVERFLOW; + } + return ret; } } |
