Re: [PATCH v3 05/14] i2c-octeon: Make adapter timeout tunable
From: Swain, Peter
Date: Mon Mar 14 2016 - 13:37:04 EST
Agreed, this timeout modparam can go, it serves no purpose which can't be achieved with existing ioctl.
It was introduced during debug to reduce spurious error count while hunting an issue finally resolved by the 80uS IFLG re-poll. But the same effect is achieved by (for example) the at24 driver's retry at 25mS timeout. The issue there is not timeout _within_ command, but failure to respect a 25mS post-write recovery time before next access to the at24, and the existing at24-level retry works well (though delaying the presentation of the next at24 transaction _within_ the at24 driver would have lead to less bus-level churn).
Leaving this adapter tuning out affects nothing but the (normally invisible) adapter-level retry count, which is better addressed within the target device's code, like at24 does. Default is ioctl-tweakable, so users wanting fine tuning have a mechanism.
-pete
________________________________________
From: Jan Glauber <jan.glauber@xxxxxxxxxxxxxxxxxx>
Sent: Monday, March 14, 2016 5:45 AM
To: Wolfram Sang
Cc: linux-kernel@xxxxxxxxxxxxxxx; linux-i2c@xxxxxxxxxxxxxxx; Daney, David; Peter Swain
Subject: Re: [PATCH v3 05/14] i2c-octeon: Make adapter timeout tunable
On Sat, Mar 12, 2016 at 04:46:12PM +0100, Wolfram Sang wrote:
> On Mon, Mar 07, 2016 at 04:10:48PM +0100, Jan Glauber wrote:
> > From: Peter Swain <pswain@xxxxxxxxxx>
> >
> > Make the i2c adapter timeout a module parameter to allow upper-level
> > target device drivers to retry with their own logic before their own
> > timeouts abort operations.
> >
> > For example, at24 eeprom driver retries for 25ms when -EAGAIN
> > indicates that an eeprom has gone unresponsive while committing
> > a newly written page (5ms on typical devices).
> >
> > Signed-off-by: Peter Swain <pswain@xxxxxxxxxx>
> > Signed-off-by: Jan Glauber <jglauber@xxxxxxxxxx>
>
> i2c-dev has IOCTLs for timeout and retries. Can't you use those?
>
Yes, with these IOCTLs we don't need to add a module parameter
so I'll drop that.