2015-12-05 23:39:57

by Rasmus Villemoes

[permalink] [raw]
Subject: [PATCH] mfd: wm831x: fix broken wm831x_unique_id_show

wm831x_unique_id_show currently displays an interesting pattern of '0'
and '3' characters which isn't very useful (figuring out why is left
as an exercise for the reader). Presumably "buf[i]" should have been
"id[i] & 0xff".

But while there, it is much simpler to simply use %phN and do all the
formatting at once.

Signed-off-by: Rasmus Villemoes <[email protected]>
---
drivers/mfd/wm831x-otp.c | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/drivers/mfd/wm831x-otp.c b/drivers/mfd/wm831x-otp.c
index b90f3e06b6c9..ebac0027f8e0 100644
--- a/drivers/mfd/wm831x-otp.c
+++ b/drivers/mfd/wm831x-otp.c
@@ -47,20 +47,14 @@ static ssize_t wm831x_unique_id_show(struct device *dev,
struct device_attribute *attr, char *buf)
{
struct wm831x *wm831x = dev_get_drvdata(dev);
- int i, rval;
+ int rval;
char id[WM831X_UNIQUE_ID_LEN];
- ssize_t ret = 0;

rval = wm831x_unique_id_read(wm831x, id);
if (rval < 0)
return 0;

- for (i = 0; i < WM831X_UNIQUE_ID_LEN; i++)
- ret += sprintf(&buf[ret], "%02x", buf[i]);
-
- ret += sprintf(&buf[ret], "\n");
-
- return ret;
+ return sprintf(buf, "%*phN\n", WM831X_UNIQUE_ID_LEN, id);
}

static DEVICE_ATTR(unique_id, 0444, wm831x_unique_id_show, NULL);
--
2.6.1


2015-12-08 16:30:30

by Charles Keepax

[permalink] [raw]
Subject: Re: [PATCH] mfd: wm831x: fix broken wm831x_unique_id_show

On Sun, Dec 06, 2015 at 12:39:39AM +0100, Rasmus Villemoes wrote:
> wm831x_unique_id_show currently displays an interesting pattern of '0'
> and '3' characters which isn't very useful (figuring out why is left
> as an exercise for the reader). Presumably "buf[i]" should have been
> "id[i] & 0xff".
>
> But while there, it is much simpler to simply use %phN and do all the
> formatting at once.
>
> Signed-off-by: Rasmus Villemoes <[email protected]>
> ---

Acked-by: Charles Keepax <[email protected]>

Thanks,
Charles

2015-12-09 08:50:52

by Lee Jones

[permalink] [raw]
Subject: Re: [PATCH] mfd: wm831x: fix broken wm831x_unique_id_show

On Sun, 06 Dec 2015, Rasmus Villemoes wrote:

> wm831x_unique_id_show currently displays an interesting pattern of '0'
> and '3' characters which isn't very useful (figuring out why is left
> as an exercise for the reader). Presumably "buf[i]" should have been
> "id[i] & 0xff".
>
> But while there, it is much simpler to simply use %phN and do all the
> formatting at once.
>
> Signed-off-by: Rasmus Villemoes <[email protected]>
> ---
> drivers/mfd/wm831x-otp.c | 10 ++--------
> 1 file changed, 2 insertions(+), 8 deletions(-)

Applied, thanks.

> diff --git a/drivers/mfd/wm831x-otp.c b/drivers/mfd/wm831x-otp.c
> index b90f3e06b6c9..ebac0027f8e0 100644
> --- a/drivers/mfd/wm831x-otp.c
> +++ b/drivers/mfd/wm831x-otp.c
> @@ -47,20 +47,14 @@ static ssize_t wm831x_unique_id_show(struct device *dev,
> struct device_attribute *attr, char *buf)
> {
> struct wm831x *wm831x = dev_get_drvdata(dev);
> - int i, rval;
> + int rval;
> char id[WM831X_UNIQUE_ID_LEN];
> - ssize_t ret = 0;
>
> rval = wm831x_unique_id_read(wm831x, id);
> if (rval < 0)
> return 0;
>
> - for (i = 0; i < WM831X_UNIQUE_ID_LEN; i++)
> - ret += sprintf(&buf[ret], "%02x", buf[i]);
> -
> - ret += sprintf(&buf[ret], "\n");
> -
> - return ret;
> + return sprintf(buf, "%*phN\n", WM831X_UNIQUE_ID_LEN, id);
> }
>
> static DEVICE_ATTR(unique_id, 0444, wm831x_unique_id_show, NULL);

--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog