]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
common: board_f: Print information for all sysresets
authorMichal Suchanek <msuchanek@suse.de>
Mon, 10 Oct 2022 18:29:40 +0000 (20:29 +0200)
committerTom Rini <trini@konsulko.com>
Fri, 21 Oct 2022 20:06:14 +0000 (16:06 -0400)
Boards can have multiple sysresets, iterate all when printing sysreset
info.

Fixes: 23471aed5c ("board_f: Add reset status printing")
Signed-off-by: Michal Suchanek <msuchanek@suse.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
common/board_f.c

index 5f1711181c7b8f444031089ed0c7eb4b3e50eb6d..4355d1c82d4bc29a0695a712203ceee5f5abfde4 100644 (file)
@@ -146,20 +146,27 @@ static int print_resetinfo(void)
 {
        struct udevice *dev;
        char status[256];
+       bool status_printed = false;
        int ret;
 
-       ret = uclass_first_device_err(UCLASS_SYSRESET, &dev);
-       if (ret) {
-               debug("%s: No sysreset device found (error: %d)\n",
-                     __func__, ret);
-               /* Not all boards have sysreset drivers available during early
-                * boot, so don't fail if one can't be found.
-                */
-               return 0;
-       }
+       /* Not all boards have sysreset drivers available during early
+        * boot, so don't fail if one can't be found.
+        */
+       for (ret = uclass_first_device_check(UCLASS_SYSRESET, &dev); dev;
+                       ret = uclass_next_device_check(&dev)) {
+               if (ret) {
+                       debug("%s: %s sysreset device (error: %d)\n",
+                             __func__, dev->name, ret);
+                       continue;
+               }
 
-       if (!sysreset_get_status(dev, status, sizeof(status)))
-               printf("%s", status);
+               if (!sysreset_get_status(dev, status, sizeof(status))) {
+                       printf("%s%s", status_printed ? " " : "", status);
+                       status_printed = true;
+               }
+       }
+       if (status_printed)
+               printf("\n");
 
        return 0;
 }