]> git.sur5r.net Git - u-boot/blobdiff - drivers/core/device-remove.c
Merge branch 'master' of git://git.denx.de/u-boot-video
[u-boot] / drivers / core / device-remove.c
index 56c358a0ec24cf5d2b8ec8204433cb8f2c6f28a4..7fee1c001e4310d8b84355a518a69f93118b4d4d 100644 (file)
@@ -66,7 +66,7 @@ static int device_chld_remove(struct udevice *dev)
 
 int device_unbind(struct udevice *dev)
 {
-       struct driver *drv;
+       const struct driver *drv;
        int ret;
 
        if (!dev)
@@ -126,6 +126,10 @@ void device_free(struct udevice *dev)
        }
        if (dev->parent) {
                size = dev->parent->driver->per_child_auto_alloc_size;
+               if (!size) {
+                       size = dev->parent->uclass->uc_drv->
+                                       per_child_auto_alloc_size;
+               }
                if (size) {
                        free(dev->parent_priv);
                        dev->parent_priv = NULL;
@@ -135,7 +139,7 @@ void device_free(struct udevice *dev)
 
 int device_remove(struct udevice *dev)
 {
-       struct driver *drv;
+       const struct driver *drv;
        int ret;
 
        if (!dev)