dm: core: Support dm_dump_all() in SPL
authorSimon Glass <sjg@chromium.org>
Wed, 23 Dec 2020 02:30:22 +0000 (19:30 -0700)
committerSimon Glass <sjg@chromium.org>
Tue, 5 Jan 2021 19:24:40 +0000 (12:24 -0700)
At present the output from this function is hard to read in SPL, due to
(intended) limitations in SPL's printf() function. Add an SPL version so
it is clearer.

Signed-off-by: Simon Glass <sjg@chromium.org>
drivers/core/dump.c

index 2012547..7784ec0 100644 (file)
@@ -14,11 +14,13 @@ static void show_devices(struct udevice *dev, int depth, int last_flag)
 {
        int i, is_last;
        struct udevice *child;
+       u32 flags = dev->flags;
 
        /* print the first 20 characters to not break the tree-format. */
-       printf(" %-10.10s  %3d  [ %c ]   %-20.20s  ", dev->uclass->uc_drv->name,
+       printf(IS_ENABLED(CONFIG_SPL_BUILD) ? " %s  %d  [ %c ]   %s  " :
+              " %-10.10s  %3d  [ %c ]   %-20.20s  ", dev->uclass->uc_drv->name,
               dev_get_uclass_index(dev, NULL),
-              dev->flags & DM_FLAG_ACTIVATED ? '+' : ' ', dev->driver->name);
+              flags & DM_FLAG_ACTIVATED ? '+' : ' ', dev->driver->name);
 
        for (i = depth; i >= 0; i--) {
                is_last = (last_flag >> i) & 1;