efi: Use device_get_uclass_id() where appropriate
authorSimon Glass <sjg@chromium.org>
Sat, 29 Jan 2022 21:58:38 +0000 (14:58 -0700)
committerHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Sat, 5 Feb 2022 19:20:01 +0000 (20:20 +0100)
Use this function rather than following the pointers, since it is there
for this purpose.

Add the uclass name to the debug call at the end of dp_fill() since it is
quite useful.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
lib/efi_loader/efi_device_path.c

index c61f485..75ab4de 100644 (file)
@@ -494,7 +494,7 @@ __maybe_unused static unsigned int dp_size(struct udevice *dev)
        if (!dev || !dev->driver)
                return sizeof(ROOT);
 
-       switch (dev->driver->id) {
+       switch (device_get_uclass_id(dev)) {
        case UCLASS_ROOT:
        case UCLASS_SIMPLE_BUS:
                /* stop traversing parents at this point: */
@@ -579,7 +579,7 @@ __maybe_unused static void *dp_fill(void *buf, struct udevice *dev)
        if (!dev || !dev->driver)
                return buf;
 
-       switch (dev->driver->id) {
+       switch (device_get_uclass_id(dev)) {
        case UCLASS_ROOT:
        case UCLASS_SIMPLE_BUS: {
                /* stop traversing parents at this point: */
@@ -759,9 +759,9 @@ __maybe_unused static void *dp_fill(void *buf, struct udevice *dev)
                return &udp[1];
        }
        default:
-               debug("%s(%u) %s: unhandled device class: %s (%u)\n",
-                     __FILE__, __LINE__, __func__,
-                     dev->name, dev->driver->id);
+               /* If the uclass driver is missing, this will show NULL */
+               log_debug("unhandled device class: %s (%s)\n", dev->name,
+                         dev_get_uclass_name(dev));
                return dp_fill(buf, dev->parent);
        }
 }