From: Simon Glass Date: Wed, 23 Jul 2014 12:55:08 +0000 (-0600) Subject: dm: Move uclass error checking/probing into a function X-Git-Tag: v2014.10-rc1~63 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=9ca296a1b0ef37e53ca62ec8a345d9970f987599;p=u-boot 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 --- 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;