[U-Boot] [PATCH v2 12/26] dm: core: Allow uclasses to specific the private data for a device's children
Masahiro Yamada
yamada.m at jp.panasonic.com
Thu Jan 22 11:25:17 CET 2015
Hi Simon,
Perhaps a typo in this subject, too
dm: core: Allow uclasses to specific the private data for a device's children
s/to specific/to specify/ ??
On Mon, 19 Jan 2015 20:12:41 -0700
Simon Glass <sjg at chromium.org> wrote:
> In many cases the per-child private data for a device's children is defined
> by the uclass rather than the individual driver. For example, a SPI bus
> needs to store information about each of its children, but all SPI drivers
> store the same information. It makes sense to allow the uclass to define
> this data.
>
> If the driver provides a size value for its per-child private data, then use
> it. Failng that, fall back to that provided by the uclass.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
> Changes in v2: None
>
> drivers/core/device-remove.c | 4 ++++
> drivers/core/device.c | 4 ++++
> include/dm/uclass.h | 4 ++++
> test/dm/bus.c | 31 +++++++++++++++++++++++++++++--
> 4 files changed, 41 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/core/device-remove.c b/drivers/core/device-remove.c
> index 56c358a..3a5f48d 100644
> --- a/drivers/core/device-remove.c
> +++ b/drivers/core/device-remove.c
> @@ -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;
Hmm, do we need to check the per_child_auto_alloc_size?
Is it better and simpler to check dev->parent_priv like this?
if (dev->parent && !dev->parent_priv) {
free(dev->parent_priv);
dev->parent_priv = NULL;
}
Or further more simpily
if (dev->parent) {
free(dev->parent_priv);
dev->parent_priv = NULL;
}
When free() is given with NULL pointer, it returns without doing anything,
I think.
Best Regards
Masahiro Yamada
More information about the U-Boot
mailing list