net: ks8851: Pass around driver private data
[oweals/u-boot.git] / drivers / core / uclass.c
index 61192d8a9ff03c9c9afb3335abc6ff50320b01b3..2ab419cfe4da0171aee21d14d69a79d21d5d0f38 100644 (file)
@@ -11,6 +11,7 @@
 #include <common.h>
 #include <dm.h>
 #include <errno.h>
+#include <log.h>
 #include <malloc.h>
 #include <dm/device.h>
 #include <dm/device-internal.h>
@@ -118,12 +119,12 @@ int uclass_destroy(struct uclass *uc)
        while (!list_empty(&uc->dev_head)) {
                dev = list_first_entry(&uc->dev_head, struct udevice,
                                       uclass_node);
-               ret = device_remove(dev, DM_REMOVE_NORMAL);
+               ret = device_remove(dev, DM_REMOVE_NORMAL | DM_REMOVE_NO_PD);
                if (ret)
-                       return ret;
+                       return log_msg_ret("remove", ret);
                ret = device_unbind(dev);
                if (ret)
-                       return ret;
+                       return log_msg_ret("unbind", ret);
        }
 
        uc_drv = uc->uc_drv;
@@ -271,9 +272,6 @@ int uclass_find_device_by_name(enum uclass_id id, const char *name,
        return -ENODEV;
 }
 
-#if !CONFIG_IS_ENABLED(OF_CONTROL) || \
-    CONFIG_IS_ENABLED(OF_PLATDATA) || \
-    CONFIG_IS_ENABLED(OF_PRIOR_STAGE)
 int uclass_find_next_free_req_seq(enum uclass_id id)
 {
        struct uclass *uc;
@@ -295,7 +293,6 @@ int uclass_find_next_free_req_seq(enum uclass_id id)
 
        return max + 1;
 }
-#endif
 
 int uclass_find_device_by_seq(enum uclass_id id, int seq_or_req_seq,
                              bool find_req_seq, struct udevice **devp)