aboutsummaryrefslogtreecommitdiff
path: root/lib/fdtdec.c
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2022-12-21 16:08:28 -0700
committerSimon Glass <sjg@chromium.org>2023-01-18 11:49:13 -0700
commitebc1d50ab51bd08f3adc19de37e81d23d655f9f4 (patch)
tree1f3f6e12b5085ad7742a339cd588a7ac37bec3ab /lib/fdtdec.c
parentb2412dd5dee36cef233053a66f0e0035bc30d44a (diff)
downloadu-boot-ebc1d50ab51bd08f3adc19de37e81d23d655f9f4.zip
u-boot-ebc1d50ab51bd08f3adc19de37e81d23d655f9f4.tar.gz
u-boot-ebc1d50ab51bd08f3adc19de37e81d23d655f9f4.tar.bz2
Revert "fdtdec: drop needlessly convoluted CONFIG_PHANDLE_CHECK_SEQ"
The fdt_path_offset() function is slow since it must scan the tree. This substantial overhead now applies to all boards. The original code may not be ideal but it is fit for purpose and is only needed on a few boards. Reverting this reduces time to set up driver model by about 30ms. Before revert: Accumulated time: 47,170 dm_r 53,237 dm_spl 572,986 dm_f Accumulated time: 44,598 dm_r 50,347 dm_spl 549,133 dm_f This reverts commit 26f981f295d00351b6f0c69b5317b254b2361cc0. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'lib/fdtdec.c')
-rw-r--r--lib/fdtdec.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/fdtdec.c b/lib/fdtdec.c
index 8d5c688..0827e16 100644
--- a/lib/fdtdec.c
+++ b/lib/fdtdec.c
@@ -519,8 +519,11 @@ int fdtdec_get_alias_seq(const void *blob, const char *base, int offset,
* Adding an extra check to distinguish DT nodes with
* same name
*/
- if (offset != fdt_path_offset(blob, prop))
- continue;
+ if (IS_ENABLED(CONFIG_PHANDLE_CHECK_SEQ)) {
+ if (fdt_get_phandle(blob, offset) !=
+ fdt_get_phandle(blob, fdt_path_offset(blob, prop)))
+ continue;
+ }
val = trailing_strtol(name);
if (val != -1) {