2017-12-07 13:39:23

by Bartosz Golaszewski

[permalink] [raw]
Subject: [PATCH v3 0/2] eeprom: at24: coding style fixes

Just two patches fixing minor coding style issues. The first one
contains fixes for problems reported by checkpatch. The second adds
a common prefix to all symbols in at24.c.

v1 -> v2:
- don't break the user space: use module_param_named() for module
parameters

v2 -> v3:
- s/at24_tool_until/at24_loop_until/g
- tweaked the commit message in patch 2/2

Bartosz Golaszewski (2):
eeprom: at24: fix coding style issues
eeprom: at24: use a common prefix for all symbols in at24.c

drivers/misc/eeprom/at24.c | 48 ++++++++++++++++++++++++----------------------
1 file changed, 25 insertions(+), 23 deletions(-)

--
2.15.1


2017-12-07 13:39:27

by Bartosz Golaszewski

[permalink] [raw]
Subject: [PATCH v3 2/2] eeprom: at24: use a common prefix for all symbols in at24.c

There are a couple symbols defined in the driver source file which are
missing the at24_ prefix. This patch fixes that.

For module params: use module_param_named() in order to not break
userspace.

Signed-off-by: Bartosz Golaszewski <[email protected]>
---
drivers/misc/eeprom/at24.c | 34 ++++++++++++++++++----------------
1 file changed, 18 insertions(+), 16 deletions(-)

diff --git a/drivers/misc/eeprom/at24.c b/drivers/misc/eeprom/at24.c
index 2426f2c111c7..27497286912a 100644
--- a/drivers/misc/eeprom/at24.c
+++ b/drivers/misc/eeprom/at24.c
@@ -93,17 +93,17 @@ struct at24_data {
*
* This value is forced to be a power of two so that writes align on pages.
*/
-static unsigned int io_limit = 128;
-module_param(io_limit, uint, 0000);
-MODULE_PARM_DESC(io_limit, "Maximum bytes per I/O (default 128)");
+static unsigned int at24_io_limit = 128;
+module_param_named(io_limit, at24_io_limit, uint, 0000);
+MODULE_PARM_DESC(at24_io_limit, "Maximum bytes per I/O (default 128)");

/*
* Specs often allow 5 msec for a page write, sometimes 20 msec;
* it's important to recover from write timeouts.
*/
-static unsigned int write_timeout = 25;
-module_param(write_timeout, uint, 0000);
-MODULE_PARM_DESC(write_timeout, "Time (in ms) to try writes (default 25)");
+static unsigned int at24_write_timeout = 25;
+module_param_named(write_timeout, at24_write_timeout, uint, 0000);
+MODULE_PARM_DESC(at24_write_timeout, "Time (in ms) to try writes (default 25)");

#define AT24_SIZE_BYTELEN 5
#define AT24_SIZE_FLAGS 8
@@ -126,8 +126,9 @@ MODULE_PARM_DESC(write_timeout, "Time (in ms) to try writes (default 25)");
* iteration of processing the request. Both should be unsigned integers
* holding at least 32 bits.
*/
-#define loop_until_timeout(tout, op_time) \
- for (tout = jiffies + msecs_to_jiffies(write_timeout), op_time = 0; \
+#define at24_loop_until_timeout(tout, op_time) \
+ for (tout = jiffies + msecs_to_jiffies(at24_write_timeout), \
+ op_time = 0; \
op_time ? time_before(op_time, tout) : true; \
usleep_range(1000, 1500), op_time = jiffies)

@@ -290,13 +291,13 @@ static ssize_t at24_regmap_read(struct at24_data *at24, char *buf,
regmap = at24_client->regmap;
client = at24_client->client;

- if (count > io_limit)
- count = io_limit;
+ if (count > at24_io_limit)
+ count = at24_io_limit;

/* adjust offset for mac and serial read ops */
offset += at24->offset_adj;

- loop_until_timeout(timeout, read_time) {
+ at24_loop_until_timeout(timeout, read_time) {
ret = regmap_bulk_read(regmap, offset, buf, count);
dev_dbg(&client->dev, "read %zu@%d --> %d (%ld)\n",
count, offset, ret, jiffies);
@@ -347,7 +348,7 @@ static ssize_t at24_regmap_write(struct at24_data *at24, const char *buf,
client = at24_client->client;
count = at24_adjust_write_count(at24, offset, count);

- loop_until_timeout(timeout, write_time) {
+ at24_loop_until_timeout(timeout, write_time) {
ret = regmap_bulk_write(regmap, offset, buf, count);
dev_dbg(&client->dev, "write %zu@%d --> %d (%ld)\n",
count, offset, ret, jiffies);
@@ -613,7 +614,8 @@ static int at24_probe(struct i2c_client *client, const struct i2c_device_id *id)

writable = !(chip.flags & AT24_FLAG_READONLY);
if (writable) {
- at24->write_max = min_t(unsigned int, chip.page_size, io_limit);
+ at24->write_max = min_t(unsigned int,
+ chip.page_size, at24_io_limit);
if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C) &&
at24->write_max > I2C_SMBUS_BLOCK_MAX)
at24->write_max = I2C_SMBUS_BLOCK_MAX;
@@ -728,12 +730,12 @@ static struct i2c_driver at24_driver = {

static int __init at24_init(void)
{
- if (!io_limit) {
- pr_err("at24: io_limit must not be 0!\n");
+ if (!at24_io_limit) {
+ pr_err("at24: at24_io_limit must not be 0!\n");
return -EINVAL;
}

- io_limit = rounddown_pow_of_two(io_limit);
+ at24_io_limit = rounddown_pow_of_two(at24_io_limit);
return i2c_add_driver(&at24_driver);
}
module_init(at24_init);
--
2.15.1

2017-12-07 13:39:45

by Bartosz Golaszewski

[permalink] [raw]
Subject: [PATCH v3 1/2] eeprom: at24: fix coding style issues

Fix issues reported by checkpatch for at24.c.

Signed-off-by: Bartosz Golaszewski <[email protected]>
---
drivers/misc/eeprom/at24.c | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/drivers/misc/eeprom/at24.c b/drivers/misc/eeprom/at24.c
index 625b00166117..2426f2c111c7 100644
--- a/drivers/misc/eeprom/at24.c
+++ b/drivers/misc/eeprom/at24.c
@@ -70,8 +70,8 @@ struct at24_data {
*/
struct mutex lock;

- unsigned write_max;
- unsigned num_addresses;
+ unsigned int write_max;
+ unsigned int num_addresses;
unsigned int offset_adj;

struct nvmem_config nvmem_config;
@@ -93,16 +93,16 @@ struct at24_data {
*
* This value is forced to be a power of two so that writes align on pages.
*/
-static unsigned io_limit = 128;
-module_param(io_limit, uint, 0);
+static unsigned int io_limit = 128;
+module_param(io_limit, uint, 0000);
MODULE_PARM_DESC(io_limit, "Maximum bytes per I/O (default 128)");

/*
* Specs often allow 5 msec for a page write, sometimes 20 msec;
* it's important to recover from write timeouts.
*/
-static unsigned write_timeout = 25;
-module_param(write_timeout, uint, 0);
+static unsigned int write_timeout = 25;
+module_param(write_timeout, uint, 0000);
MODULE_PARM_DESC(write_timeout, "Time (in ms) to try writes (default 25)");

#define AT24_SIZE_BYTELEN 5
@@ -111,8 +111,8 @@ MODULE_PARM_DESC(write_timeout, "Time (in ms) to try writes (default 25)");
#define AT24_BITMASK(x) (BIT(x) - 1)

/* create non-zero magic value for given eeprom parameters */
-#define AT24_DEVICE_MAGIC(_len, _flags) \
- ((1 << AT24_SIZE_FLAGS | (_flags)) \
+#define AT24_DEVICE_MAGIC(_len, _flags) \
+ ((1 << AT24_SIZE_FLAGS | (_flags)) \
<< AT24_SIZE_BYTELEN | ilog2(_len))

/*
@@ -264,7 +264,7 @@ MODULE_DEVICE_TABLE(acpi, at24_acpi_ids);
static struct at24_client *at24_translate_offset(struct at24_data *at24,
unsigned int *offset)
{
- unsigned i;
+ unsigned int i;

if (at24->chip.flags & AT24_FLAG_ADDR16) {
i = *offset >> 16;
@@ -319,7 +319,7 @@ static ssize_t at24_regmap_read(struct at24_data *at24, char *buf,
static size_t at24_adjust_write_count(struct at24_data *at24,
unsigned int offset, size_t count)
{
- unsigned next_page;
+ unsigned int next_page;

/* write_max is at most a page */
if (count > at24->write_max)
@@ -515,7 +515,7 @@ static int at24_probe(struct i2c_client *client, const struct i2c_device_id *id)
bool writable;
struct at24_data *at24;
int err;
- unsigned i, num_addresses;
+ unsigned int i, num_addresses;
const struct regmap_config *config;
u8 test_byte;

--
2.15.1

2017-12-10 01:31:44

by Christoph Böhmwalder

[permalink] [raw]
Subject: Re: [PATCH v3 1/2] eeprom: at24: fix coding style issues

On Thu, Dec 07, 2017 at 02:39:14PM +0100, Bartosz Golaszewski wrote:
> -#define AT24_DEVICE_MAGIC(_len, _flags) \
> - ((1 << AT24_SIZE_FLAGS | (_flags)) \
> +#define AT24_DEVICE_MAGIC(_len, _flags) \
> + ((1 << AT24_SIZE_FLAGS | (_flags)) \
> << AT24_SIZE_BYTELEN | ilog2(_len))

Looks like there's been a whitespace accident on that first added line.
(Backslash has one more tab in front of it than it should have)

--
Regards,
Christoph

2017-12-10 12:49:41

by Bartosz Golaszewski

[permalink] [raw]
Subject: Re: [PATCH v3 1/2] eeprom: at24: fix coding style issues

2017-12-10 2:31 GMT+01:00 Christoph Böhmwalder <[email protected]>:
> On Thu, Dec 07, 2017 at 02:39:14PM +0100, Bartosz Golaszewski wrote:
>> -#define AT24_DEVICE_MAGIC(_len, _flags) \
>> - ((1 << AT24_SIZE_FLAGS | (_flags)) \
>> +#define AT24_DEVICE_MAGIC(_len, _flags) \
>> + ((1 << AT24_SIZE_FLAGS | (_flags)) \
>> << AT24_SIZE_BYTELEN | ilog2(_len))
>
> Looks like there's been a whitespace accident on that first added line.
> (Backslash has one more tab in front of it than it should have)
>
> --
> Regards,
> Christoph

It's only the way diff prints the patch. The file looks correct.

Thanks,
Bartosz

2017-12-10 12:57:22

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH v3 1/2] eeprom: at24: fix coding style issues

On Thu, Dec 7, 2017 at 3:39 PM, Bartosz Golaszewski <[email protected]> wrote:
> Fix issues reported by checkpatch for at24.c.

> +module_param(io_limit, uint, 0000);

> +module_param(write_timeout, uint, 0000);


0 is a pretty much octal number as 0000.
So, I would prefer not to blindly follow the stupid advise from
checkpatch, better to teach checkpatch about 0.


--
With Best Regards,
Andy Shevchenko

2017-12-10 18:42:55

by Bartosz Golaszewski

[permalink] [raw]
Subject: Re: [PATCH v3 1/2] eeprom: at24: fix coding style issues

2017-12-10 13:57 GMT+01:00 Andy Shevchenko <[email protected]>:
> On Thu, Dec 7, 2017 at 3:39 PM, Bartosz Golaszewski <[email protected]> wrote:
>> Fix issues reported by checkpatch for at24.c.
>
>> +module_param(io_limit, uint, 0000);
>
>> +module_param(write_timeout, uint, 0000);
>
>
> 0 is a pretty much octal number as 0000.
> So, I would prefer not to blindly follow the stupid advise from
> checkpatch, better to teach checkpatch about 0.
>
>

I submitted a patch for that - let's see what checkpatch maintainers say.

Thanks,
Bartosz

2017-12-10 22:55:51

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH v3 1/2] eeprom: at24: fix coding style issues

On Sun, 2017-12-10 at 19:42 +0100, Bartosz Golaszewski wrote:
> 2017-12-10 13:57 GMT+01:00 Andy Shevchenko <[email protected]>:
> > On Thu, Dec 7, 2017 at 3:39 PM, Bartosz Golaszewski <[email protected]> wrote:
> > > Fix issues reported by checkpatch for at24.c.
> > > +module_param(io_limit, uint, 0000);
> > > +module_param(write_timeout, uint, 0000);
> >
> >
> > 0 is a pretty much octal number as 0000.
> > So, I would prefer not to blindly follow the stupid advise from
> > checkpatch, better to teach checkpatch about 0.
> >
> >
>
> I submitted a patch for that - let's see what checkpatch maintainers say.

Personally, I prefer 4 digit octal in most cases as it
shows the coder knows that the argument is a permissions
use and not just some generic 0.

There are not many uses of 0 for permissions outside of
module_param*.

I suppose all the variants of module_param calls, as a
0 there is specifically a "not to appear in sysfs" flag,
could or should be excluded from that octal test.