summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/core/device-remove.c1
-rw-r--r--drivers/core/device.c4
2 files changed, 4 insertions, 1 deletions
diff --git a/drivers/core/device-remove.c b/drivers/core/device-remove.c
index 5c8dc4ad701..444e34b4921 100644
--- a/drivers/core/device-remove.c
+++ b/drivers/core/device-remove.c
@@ -140,6 +140,7 @@ void device_free(struct udevice *dev)
dev->parent_priv = NULL;
}
}
+ dev->flags &= ~DM_FLAG_PLATDATA_VALID;
devres_release_probe(dev);
}
diff --git a/drivers/core/device.c b/drivers/core/device.c
index 9506c7df8d1..9f39218423e 100644
--- a/drivers/core/device.c
+++ b/drivers/core/device.c
@@ -320,7 +320,7 @@ int device_ofdata_to_platdata(struct udevice *dev)
if (!dev)
return -EINVAL;
- if (dev->flags & DM_FLAG_ACTIVATED)
+ if (dev->flags & DM_FLAG_PLATDATA_VALID)
return 0;
drv = dev->driver;
@@ -368,6 +368,8 @@ int device_ofdata_to_platdata(struct udevice *dev)
goto fail;
}
+ dev->flags |= DM_FLAG_PLATDATA_VALID;
+
return 0;
fail:
device_free(dev);