dm: core: Allow uclass to set up a device's child after it is probed
Some buses need to set up their child devices after they are probed. Support a common child_post_probe() method for the uclass. With this change, the two APIs uclass_pre_probe_device() and uclass_post_probe_device() become symmetric. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
a6d4b0608b
commit
651d0c019a
@ -687,8 +687,19 @@ int uclass_pre_probe_device(struct udevice *dev)
|
||||
|
||||
int uclass_post_probe_device(struct udevice *dev)
|
||||
{
|
||||
struct uclass_driver *uc_drv = dev->uclass->uc_drv;
|
||||
struct uclass_driver *uc_drv;
|
||||
int ret;
|
||||
|
||||
if (dev->parent) {
|
||||
uc_drv = dev->parent->uclass->uc_drv;
|
||||
if (uc_drv->child_post_probe) {
|
||||
ret = uc_drv->child_post_probe(dev);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
uc_drv = dev->uclass->uc_drv;
|
||||
if (uc_drv->post_probe)
|
||||
return uc_drv->post_probe(dev);
|
||||
|
||||
|
@ -61,7 +61,8 @@ struct udevice;
|
||||
* @post_probe: Called after a new device is probed
|
||||
* @pre_remove: Called before a device is removed
|
||||
* @child_post_bind: Called after a child is bound to a device in this uclass
|
||||
* @child_pre_probe: Called before a child is probed in this uclass
|
||||
* @child_pre_probe: Called before a child in this uclass is probed
|
||||
* @child_post_probe: Called after a child in this uclass is probed
|
||||
* @init: Called to set up the uclass
|
||||
* @destroy: Called to destroy the uclass
|
||||
* @priv_auto_alloc_size: If non-zero this is the size of the private data
|
||||
@ -94,6 +95,7 @@ struct uclass_driver {
|
||||
int (*pre_remove)(struct udevice *dev);
|
||||
int (*child_post_bind)(struct udevice *dev);
|
||||
int (*child_pre_probe)(struct udevice *dev);
|
||||
int (*child_post_probe)(struct udevice *dev);
|
||||
int (*init)(struct uclass *class);
|
||||
int (*destroy)(struct uclass *class);
|
||||
int priv_auto_alloc_size;
|
||||
|
Loading…
Reference in New Issue
Block a user