2021-01-28 08:15:57

by Jenny Ho

[permalink] [raw]
Subject: [PATCH] eeprom: at24: Add permission to write_timeout

Need to change timeout time for different use
cases to prevent I2C error cases. Open the api
and allow Read/Write permission to write_timeout

Signed-off-by: Jenny Ho <[email protected]>
---
drivers/misc/eeprom/at24.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/misc/eeprom/at24.c b/drivers/misc/eeprom/at24.c
index 926408b41270..39caead4058c 100644
--- a/drivers/misc/eeprom/at24.c
+++ b/drivers/misc/eeprom/at24.c
@@ -117,7 +117,7 @@ MODULE_PARM_DESC(at24_io_limit, "Maximum bytes per I/O (default 128)");
* it's important to recover from write timeouts.
*/
static unsigned int at24_write_timeout = 25;
-module_param_named(write_timeout, at24_write_timeout, uint, 0);
+module_param_named(write_timeout, at24_write_timeout, uint, 0600);
MODULE_PARM_DESC(at24_write_timeout, "Time (in ms) to try writes (default 25)");

struct at24_chip_data {
--
2.30.0.280.ga3ce27912f-goog


2021-01-28 09:06:56

by Bartosz Golaszewski

[permalink] [raw]
Subject: Re: [PATCH] eeprom: at24: Add permission to write_timeout

On Thu, Jan 28, 2021 at 9:10 AM Jenny Ho <[email protected]> wrote:
>
> Need to change timeout time for different use
> cases to prevent I2C error cases. Open the api
> and allow Read/Write permission to write_timeout
>
> Signed-off-by: Jenny Ho <[email protected]>
> ---
> drivers/misc/eeprom/at24.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/misc/eeprom/at24.c b/drivers/misc/eeprom/at24.c
> index 926408b41270..39caead4058c 100644
> --- a/drivers/misc/eeprom/at24.c
> +++ b/drivers/misc/eeprom/at24.c
> @@ -117,7 +117,7 @@ MODULE_PARM_DESC(at24_io_limit, "Maximum bytes per I/O (default 128)");
> * it's important to recover from write timeouts.
> */
> static unsigned int at24_write_timeout = 25;
> -module_param_named(write_timeout, at24_write_timeout, uint, 0);
> +module_param_named(write_timeout, at24_write_timeout, uint, 0600);
> MODULE_PARM_DESC(at24_write_timeout, "Time (in ms) to try writes (default 25)");
>
> struct at24_chip_data {
> --
> 2.30.0.280.ga3ce27912f-goog
>

IMO this should be a per-chip device property and not a global module
param. Any chance you could maybe try and extend the driver with a new
property for that?

Bart

2021-01-28 09:16:46

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH] eeprom: at24: Add permission to write_timeout

On Thu, Jan 28, 2021 at 10:04:42AM +0100, Bartosz Golaszewski wrote:
> On Thu, Jan 28, 2021 at 9:10 AM Jenny Ho <[email protected]> wrote:
> >
> > Need to change timeout time for different use
> > cases to prevent I2C error cases. Open the api
> > and allow Read/Write permission to write_timeout
> >
> > Signed-off-by: Jenny Ho <[email protected]>
> > ---
> > drivers/misc/eeprom/at24.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/misc/eeprom/at24.c b/drivers/misc/eeprom/at24.c
> > index 926408b41270..39caead4058c 100644
> > --- a/drivers/misc/eeprom/at24.c
> > +++ b/drivers/misc/eeprom/at24.c
> > @@ -117,7 +117,7 @@ MODULE_PARM_DESC(at24_io_limit, "Maximum bytes per I/O (default 128)");
> > * it's important to recover from write timeouts.
> > */
> > static unsigned int at24_write_timeout = 25;
> > -module_param_named(write_timeout, at24_write_timeout, uint, 0);
> > +module_param_named(write_timeout, at24_write_timeout, uint, 0600);
> > MODULE_PARM_DESC(at24_write_timeout, "Time (in ms) to try writes (default 25)");
> >
> > struct at24_chip_data {
> > --
> > 2.30.0.280.ga3ce27912f-goog
> >
>
> IMO this should be a per-chip device property and not a global module
> param. Any chance you could maybe try and extend the driver with a new
> property for that?

This already is a global module parameter :)

But I agree, having it per-device would be much better, a sysfs
attribute would easily work for that.

thanks,

greg k-h

2021-01-28 09:50:04

by Bartosz Golaszewski

[permalink] [raw]
Subject: Re: [PATCH] eeprom: at24: Add permission to write_timeout

On Thu, Jan 28, 2021 at 10:12 AM Greg Kroah-Hartman
<[email protected]> wrote:
>
> On Thu, Jan 28, 2021 at 10:04:42AM +0100, Bartosz Golaszewski wrote:
> > On Thu, Jan 28, 2021 at 9:10 AM Jenny Ho <[email protected]> wrote:
> > >
> > > Need to change timeout time for different use
> > > cases to prevent I2C error cases. Open the api
> > > and allow Read/Write permission to write_timeout
> > >
> > > Signed-off-by: Jenny Ho <[email protected]>
> > > ---
> > > drivers/misc/eeprom/at24.c | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/misc/eeprom/at24.c b/drivers/misc/eeprom/at24.c
> > > index 926408b41270..39caead4058c 100644
> > > --- a/drivers/misc/eeprom/at24.c
> > > +++ b/drivers/misc/eeprom/at24.c
> > > @@ -117,7 +117,7 @@ MODULE_PARM_DESC(at24_io_limit, "Maximum bytes per I/O (default 128)");
> > > * it's important to recover from write timeouts.
> > > */
> > > static unsigned int at24_write_timeout = 25;
> > > -module_param_named(write_timeout, at24_write_timeout, uint, 0);
> > > +module_param_named(write_timeout, at24_write_timeout, uint, 0600);
> > > MODULE_PARM_DESC(at24_write_timeout, "Time (in ms) to try writes (default 25)");
> > >
> > > struct at24_chip_data {
> > > --
> > > 2.30.0.280.ga3ce27912f-goog
> > >
> >
> > IMO this should be a per-chip device property and not a global module
> > param. Any chance you could maybe try and extend the driver with a new
> > property for that?
>
> This already is a global module parameter :)
>

I know but if we're touching it, then better do the right thing. :)

> But I agree, having it per-device would be much better, a sysfs
> attribute would easily work for that.
>

I was thinking about a generic device property that could be set from
device tree etc. I doubt there's much need to change this at runtime
outside of development?

Bart