From 9ca296a1b0ef37e53ca62ec8a345d9970f987599 Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Wed, 23 Jul 2014 06:55:08 -0600 Subject: dm: Move uclass error checking/probing into a function Several functions will use this same pattern, so bring it into a function. Signed-off-by: Simon Glass --- drivers/core/uclass.c | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) (limited to 'drivers/core/uclass.c') diff --git a/drivers/core/uclass.c b/drivers/core/uclass.c index 34723ec42a..db915267d6 100644 --- a/drivers/core/uclass.c +++ b/drivers/core/uclass.c @@ -158,13 +158,19 @@ int uclass_find_device(enum uclass_id id, int index, struct udevice **devp) return -ENODEV; } -int uclass_get_device(enum uclass_id id, int index, struct udevice **devp) +/** + * uclass_get_device_tail() - handle the end of a get_device call + * + * This handles returning an error or probing a device as needed. + * + * @dev: Device that needs to be probed + * @ret: Error to return. If non-zero then the device is not probed + * @devp: Returns the value of 'dev' if there is no error + * @return ret, if non-zero, else the result of the device_probe() call + */ +static int uclass_get_device_tail(struct udevice *dev, int ret, + struct udevice **devp) { - struct udevice *dev; - int ret; - - *devp = NULL; - ret = uclass_find_device(id, index, &dev); if (ret) return ret; @@ -177,6 +183,16 @@ int uclass_get_device(enum uclass_id id, int index, struct udevice **devp) return 0; } +int uclass_get_device(enum uclass_id id, int index, struct udevice **devp) +{ + struct udevice *dev; + int ret; + + *devp = NULL; + ret = uclass_find_device(id, index, &dev); + return uclass_get_device_tail(dev, ret, devp); +} + int uclass_first_device(enum uclass_id id, struct udevice **devp) { struct uclass *uc; -- cgit v1.2.1