2009-01-14 22:07:39

by David Brownell

[permalink] [raw]
Subject: [patch 2.6.29-rc] regulator: minor cleanup of virtual consumer

From: David Brownell <[email protected]>

Minor cleanup to the regulator set_mode sysfs support:
switch to sysfs_streq() in set_mode(), which is also
a code shrink. Use the same strings that get_mode()
uses, shrinking data too.

Signed-off-by: David Brownell <[email protected]>
---
drivers/regulator/virtual.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

--- a/drivers/regulator/virtual.c
+++ b/drivers/regulator/virtual.c
@@ -226,13 +226,13 @@ static ssize_t set_mode(struct device *d
unsigned int mode;
int ret;

- if (strncmp(buf, "fast", strlen("fast")) == 0)
+ if (sysfs_streq(buf, "fast\n") == 0)
mode = REGULATOR_MODE_FAST;
- else if (strncmp(buf, "normal", strlen("normal")) == 0)
+ else if (sysfs_streq(buf, "normal\n") == 0)
mode = REGULATOR_MODE_NORMAL;
- else if (strncmp(buf, "idle", strlen("idle")) == 0)
+ else if (sysfs_streq(buf, "idle\n") == 0)
mode = REGULATOR_MODE_IDLE;
- else if (strncmp(buf, "standby", strlen("standby")) == 0)
+ else if (sysfs_streq(buf, "standby\n") == 0)
mode = REGULATOR_MODE_STANDBY;
else {
dev_err(dev, "Configuring invalid mode\n");


2009-01-14 22:35:58

by Mark Brown

[permalink] [raw]
Subject: Re: [patch 2.6.29-rc] regulator: minor cleanup of virtual consumer

On 14 Jan 2009, at 21:16, David Brownell <[email protected]> wrote:

> From: David Brownell <[email protected]>
>
> Minor cleanup to the regulator set_mode sysfs support:
> switch to sysfs_streq() in set_mode(), which is also
> a code shrink. Use the same strings that get_mode()
> uses, shrinking data too.
>
> Signed-off-by: David Brownell <[email protected]>

Excellent, thanks!

Acked-by: Mark Brown <[email protected]>

>
> ---
> drivers/regulator/virtual.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> --- a/drivers/regulator/virtual.c
> +++ b/drivers/regulator/virtual.c
> @@ -226,13 +226,13 @@ static ssize_t set_mode(struct device *d
> unsigned int mode;
> int ret;
>
> - if (strncmp(buf, "fast", strlen("fast")) == 0)
> + if (sysfs_streq(buf, "fast\n") == 0)
> mode = REGULATOR_MODE_FAST;
> - else if (strncmp(buf, "normal", strlen("normal")) == 0)
> + else if (sysfs_streq(buf, "normal\n") == 0)
> mode = REGULATOR_MODE_NORMAL;
> - else if (strncmp(buf, "idle", strlen("idle")) == 0)
> + else if (sysfs_streq(buf, "idle\n") == 0)
> mode = REGULATOR_MODE_IDLE;
> - else if (strncmp(buf, "standby", strlen("standby")) == 0)
> + else if (sysfs_streq(buf, "standby\n") == 0)
> mode = REGULATOR_MODE_STANDBY;
> else {
> dev_err(dev, "Configuring invalid mode\n");

2009-01-15 12:04:18

by Liam Girdwood

[permalink] [raw]
Subject: Re: [patch 2.6.29-rc] regulator: minor cleanup of virtual consumer

On Wed, 2009-01-14 at 13:16 -0800, David Brownell wrote:
> From: David Brownell <[email protected]>
>
> Minor cleanup to the regulator set_mode sysfs support:
> switch to sysfs_streq() in set_mode(), which is also
> a code shrink. Use the same strings that get_mode()
> uses, shrinking data too.
>
> Signed-off-by: David Brownell <[email protected]>

Applied.

Thanks

Liam

2009-01-16 00:10:54

by Andrew Morton

[permalink] [raw]
Subject: Re: [patch 2.6.29-rc] regulator: minor cleanup of virtual consumer

On Wed, 14 Jan 2009 13:16:27 -0800
David Brownell <[email protected]> wrote:

> From: David Brownell <[email protected]>
>
> Minor cleanup to the regulator set_mode sysfs support:
> switch to sysfs_streq() in set_mode(), which is also
> a code shrink. Use the same strings that get_mode()
> uses, shrinking data too.
>
> Signed-off-by: David Brownell <[email protected]>
> ---
> drivers/regulator/virtual.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> --- a/drivers/regulator/virtual.c
> +++ b/drivers/regulator/virtual.c
> @@ -226,13 +226,13 @@ static ssize_t set_mode(struct device *d
> unsigned int mode;
> int ret;
>
> - if (strncmp(buf, "fast", strlen("fast")) == 0)
> + if (sysfs_streq(buf, "fast\n") == 0)
> mode = REGULATOR_MODE_FAST;
> - else if (strncmp(buf, "normal", strlen("normal")) == 0)
> + else if (sysfs_streq(buf, "normal\n") == 0)
> mode = REGULATOR_MODE_NORMAL;
> - else if (strncmp(buf, "idle", strlen("idle")) == 0)
> + else if (sysfs_streq(buf, "idle\n") == 0)
> mode = REGULATOR_MODE_IDLE;
> - else if (strncmp(buf, "standby", strlen("standby")) == 0)
> + else if (sysfs_streq(buf, "standby\n") == 0)
> mode = REGULATOR_MODE_STANDBY;

we don't need the \n's, do we?

2009-01-16 00:13:53

by Andrew Morton

[permalink] [raw]
Subject: Re: [patch 2.6.29-rc] regulator: minor cleanup of virtual consumer

On Thu, 15 Jan 2009 16:10:22 -0800
Andrew Morton <[email protected]> wrote:

> On Wed, 14 Jan 2009 13:16:27 -0800
> David Brownell <[email protected]> wrote:
>
> > From: David Brownell <[email protected]>
> >
> > Minor cleanup to the regulator set_mode sysfs support:
> > switch to sysfs_streq() in set_mode(), which is also
> > a code shrink. Use the same strings that get_mode()
> > uses, shrinking data too.
> >
> > Signed-off-by: David Brownell <[email protected]>
> > ---
> > drivers/regulator/virtual.c | 8 ++++----
> > 1 file changed, 4 insertions(+), 4 deletions(-)
> >
> > --- a/drivers/regulator/virtual.c
> > +++ b/drivers/regulator/virtual.c
> > @@ -226,13 +226,13 @@ static ssize_t set_mode(struct device *d
> > unsigned int mode;
> > int ret;
> >
> > - if (strncmp(buf, "fast", strlen("fast")) == 0)
> > + if (sysfs_streq(buf, "fast\n") == 0)
> > mode = REGULATOR_MODE_FAST;
> > - else if (strncmp(buf, "normal", strlen("normal")) == 0)
> > + else if (sysfs_streq(buf, "normal\n") == 0)
> > mode = REGULATOR_MODE_NORMAL;
> > - else if (strncmp(buf, "idle", strlen("idle")) == 0)
> > + else if (sysfs_streq(buf, "idle\n") == 0)
> > mode = REGULATOR_MODE_IDLE;
> > - else if (strncmp(buf, "standby", strlen("standby")) == 0)
> > + else if (sysfs_streq(buf, "standby\n") == 0)
> > mode = REGULATOR_MODE_STANDBY;
>
> we don't need the \n's, do we?

oh, it's for the string sharing. Sneaky.

I wonder how many people will try to fix that up for us?

--- a/drivers/regulator/virtual.c~regulator-minor-cleanup-of-virtual-consumer-fix
+++ a/drivers/regulator/virtual.c
@@ -226,6 +226,10 @@ static ssize_t set_mode(struct device *d
unsigned int mode;
int ret;

+ /*
+ * sysfs_streq() doesn't need the \n's, but we add them so the strings
+ * will be shared with show_mode(), above.
+ */
if (sysfs_streq(buf, "fast\n") == 0)
mode = REGULATOR_MODE_FAST;
else if (sysfs_streq(buf, "normal\n") == 0)
_

2009-01-16 01:06:28

by David Brownell

[permalink] [raw]
Subject: Re: [patch 2.6.29-rc] regulator: minor cleanup of virtual consumer

On Thursday 15 January 2009, Andrew Morton wrote:
> > - else if (strncmp(buf, "standby", strlen("standby")) == 0)
> > + else if (sysfs_streq(buf, "standby\n") == 0)
> > mode = REGULATOR_MODE_STANDBY;
>
> we don't need the \n's, do we?

No, but ...

That's what saves an extra couple dozen bytes of
memory ... the strings, with newlines, are used
to *write* these sysfs attributes.

- Dave


2009-01-16 01:13:47

by Mark Brown

[permalink] [raw]
Subject: Re: [patch 2.6.29-rc] regulator: minor cleanup of virtual consumer

On Thu, Jan 15, 2009 at 04:13:01PM -0800, Andrew Morton wrote:
> Andrew Morton <[email protected]> wrote:

> I wonder how many people will try to fix that up for us?

Acked-by: Mark Brown <[email protected]>

2009-01-16 12:21:44

by Liam Girdwood

[permalink] [raw]
Subject: Re: [patch 2.6.29-rc] regulator: minor cleanup of virtual consumer

On Thu, 2009-01-15 at 16:13 -0800, Andrew Morton wrote:
> On Thu, 15 Jan 2009 16:10:22 -0800
> Andrew Morton <[email protected]> wrote:

>
> --- a/drivers/regulator/virtual.c~regulator-minor-cleanup-of-virtual-consumer-fix
> +++ a/drivers/regulator/virtual.c
> @@ -226,6 +226,10 @@ static ssize_t set_mode(struct device *d
> unsigned int mode;
> int ret;
>
> + /*
> + * sysfs_streq() doesn't need the \n's, but we add them so the strings
> + * will be shared with show_mode(), above.
> + */
> if (sysfs_streq(buf, "fast\n") == 0)
> mode = REGULATOR_MODE_FAST;
> else if (sysfs_streq(buf, "normal\n") == 0)
> _
>

Applied.

Thanks

Liam