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");
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");
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
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?
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)
_
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
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]>
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