summaryrefslogtreecommitdiffstats
path: root/drivers/core/device-remove.c
diff options
context:
space:
mode:
authorPrzemyslaw Marczak <p.marczak@samsung.com>2015-04-15 13:07:18 +0200
committerSimon Glass <sjg@chromium.org>2015-04-22 11:03:14 -0600
commit5eaed880282480a5a0a2b555c5f98a11252ed94e (patch)
tree72f503beff647cf7389f6579add462bf1b5a0727 /drivers/core/device-remove.c
parentc1d6f91952d0761f61b0f0f96e4c7aa32eee2788 (diff)
downloadtalos-obmc-uboot-5eaed880282480a5a0a2b555c5f98a11252ed94e.tar.gz
talos-obmc-uboot-5eaed880282480a5a0a2b555c5f98a11252ed94e.zip
dm: core: Extend struct udevice by '.uclass_platdata' field.
This commit adds 'uclass_platdata' field to 'struct udevice', which can be automatically allocated at bind. The allocation size is defined in 'struct uclass_driver' as 'per_device_platdata_auto_alloc_size'. New device's flag is added: DM_FLAG_ALLOC_UCLASS_PDATA, which is used for memory freeing at device unbind method. As for other udevice's fields, a complementary function is added: - dev_get_uclass_platdata() Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com> Cc: Simon Glass <sjg@chromium.org> Acked-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'drivers/core/device-remove.c')
-rw-r--r--drivers/core/device-remove.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/core/device-remove.c b/drivers/core/device-remove.c
index 7fee1c001e..6a16b4f690 100644
--- a/drivers/core/device-remove.c
+++ b/drivers/core/device-remove.c
@@ -92,6 +92,10 @@ int device_unbind(struct udevice *dev)
free(dev->platdata);
dev->platdata = NULL;
}
+ if (dev->flags & DM_FLAG_ALLOC_UCLASS_PDATA) {
+ free(dev->uclass_platdata);
+ dev->uclass_platdata = NULL;
+ }
if (dev->flags & DM_FLAG_ALLOC_PARENT_PDATA) {
free(dev->parent_platdata);
dev->parent_platdata = NULL;
OpenPOWER on IntegriCloud