[U-Boot] [PATCH v3 54/54] power: pmic: Use trailing_strtol() instead of a local function

Przemyslaw Marczak p.marczak at samsung.com
Wed Jul 1 11:44:38 CEST 2015


Hello Simon,

On 06/23/2015 11:39 PM, Simon Glass wrote:
> Use the common function to obtain the number from the end of the string,
> instead of a local function. Also tweak the position of a debug() statement.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
> Changes in v3:
> - Split this series apart from the Rockchip series
>
> Changes in v2: None
>
>   drivers/power/pmic/pmic-uclass.c | 23 +++++------------------
>   1 file changed, 5 insertions(+), 18 deletions(-)
>
> diff --git a/drivers/power/pmic/pmic-uclass.c b/drivers/power/pmic/pmic-uclass.c
> index dbab3e3..d99cb9a 100644
> --- a/drivers/power/pmic/pmic-uclass.c
> +++ b/drivers/power/pmic/pmic-uclass.c
> @@ -9,6 +9,7 @@
>   #include <fdtdec.h>
>   #include <errno.h>
>   #include <dm.h>
> +#include <vsprintf.h>
>   #include <dm/lists.h>
>   #include <dm/device-internal.h>
>   #include <dm/uclass-internal.h>
> @@ -17,16 +18,6 @@
>
>   DECLARE_GLOBAL_DATA_PTR;
>
> -static ulong str_get_num(const char *ptr, const char *maxptr)
> -{
> -	if (!ptr || !maxptr)
> -		return 0;
> -
> -	while (!isdigit(*ptr) && ptr++ < maxptr);
> -
> -	return simple_strtoul(ptr, NULL, 0);
> -}
> -
>   int pmic_bind_children(struct udevice *pmic, int offset,
>   		       const struct pmic_child_info *child_info)
>   {
> @@ -35,7 +26,6 @@ int pmic_bind_children(struct udevice *pmic, int offset,
>   	struct driver *drv;
>   	struct udevice *child;
>   	const char *node_name;
> -	int node_name_len;
>   	int bind_count = 0;
>   	int node;
>   	int prefix_len;
> @@ -47,19 +37,19 @@ int pmic_bind_children(struct udevice *pmic, int offset,
>   	for (node = fdt_first_subnode(blob, offset);
>   	     node > 0;
>   	     node = fdt_next_subnode(blob, node)) {
> -		node_name = fdt_get_name(blob, node, &node_name_len);
> +		node_name = fdt_get_name(blob, node, NULL);
>
>   		debug("* Found child node: '%s' at offset:%d\n", node_name,
>   								 node);
>
>   		child = NULL;
>   		for (info = child_info; info->prefix && info->driver; info++) {
> +			debug("  - compatible prefix: '%s'\n", info->prefix);
> +
>   			prefix_len = strlen(info->prefix);
>   			if (strncmp(info->prefix, node_name, prefix_len))
>   				continue;
>
> -			debug("  - compatible prefix: '%s'\n", info->prefix);
> -
>   			drv = lists_driver_lookup_name(info->driver);
>   			if (!drv) {
>   				debug("  - driver: '%s' not found!\n",
> @@ -78,10 +68,7 @@ int pmic_bind_children(struct udevice *pmic, int offset,
>
>   			debug("  - bound child device: '%s'\n", child->name);
>
> -			child->driver_data = str_get_num(node_name +
> -							 prefix_len,
> -							 node_name +
> -							 node_name_len);
> +			child->driver_data = trailing_strtol(node_name);
>
>   			debug("  - set 'child->driver_data': %lu\n",
>   			      child->driver_data);
>

Tested on:
- Odroid U3 (odroid_defconfig)
- Sandbox - ut pmic/regulator

Tested-by: Przemyslaw Marczak <p.marczak at samsung.com>
Acked-by: Przemyslaw Marczak <p.marczak at samsung.com>

Best regards,
-- 
Przemyslaw Marczak
Samsung R&D Institute Poland
Samsung Electronics
p.marczak at samsung.com


More information about the U-Boot mailing list