libfdt: return correct value if #size-cells property is not present

According to the device tree specification, the default value for
was not present.

This patch also makes fdt_address_cells() and fdt_size_cells() conform
to the behaviour documented in libfdt.h. The defaults are only returned
if fdt_getprop() returns -FDT_ERR_NOTFOUND, otherwise the actual error
is returned.

This is based on upstream commit:
aa7254d ("libfdt: return correct value if #size-cells property is not present")
but misses the test case part, as we don't implement them in U-Boot.

Signed-off-by: Matthias Brugger <mbrugger@suse.com>
This commit is contained in:
Matthias Brugger 2019-09-05 10:48:47 +02:00 committed by Simon Glass
parent ce2dae3a44
commit 0ba41ce1b7
2 changed files with 14 additions and 4 deletions

View file

@ -1109,7 +1109,7 @@ int fdt_address_cells(const void *fdt, int nodeoffset);
*
* returns:
* 0 <= n < FDT_MAX_NCELLS, on success
* 2, if the node has no #size-cells property
* 1, if the node has no #size-cells property
* -FDT_ERR_BADNCELLS, if the node has a badly formatted or invalid
* #size-cells property
* -FDT_ERR_BADMAGIC,