diff mbox series

[V1] i2c: tegra: increase transfer timeout

Message ID 1547757572-29075-1-git-send-email-skomatineni@nvidia.com
State Superseded
Headers show
Series [V1] i2c: tegra: increase transfer timeout | expand

Commit Message

Sowjanya Komatineni Jan. 17, 2019, 8:39 p.m. UTC
increase transfer timeout to 10s to allow enough time during max
transfer size.

Signed-off-by: Sowjanya Komatineni <skomatineni@nvidia.com>
---
 drivers/i2c/busses/i2c-tegra.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Jon Hunter Jan. 18, 2019, 9:20 a.m. UTC | #1
On 17/01/2019 20:39, Sowjanya Komatineni wrote:
> increase transfer timeout to 10s to allow enough time during max
> transfer size.
> 
> Signed-off-by: Sowjanya Komatineni <skomatineni@nvidia.com>
> ---
>  drivers/i2c/busses/i2c-tegra.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c
> index e417ebf7628c..ca7c581fb4c0 100644
> --- a/drivers/i2c/busses/i2c-tegra.c
> +++ b/drivers/i2c/busses/i2c-tegra.c
> @@ -25,7 +25,7 @@
>  
>  #include <asm/unaligned.h>
>  
> -#define TEGRA_I2C_TIMEOUT (msecs_to_jiffies(1000))
> +#define TEGRA_I2C_TIMEOUT (msecs_to_jiffies(10000))
>  #define BYTES_PER_FIFO_WORD 4
>  
>  #define I2C_CNFG				0x000

Should the timeout be set depending on the max transfer size? 10s seems
an age if the max transfer size is 4KB. In other words, we should this
only be applied for T194+?

Furthermore, in tegra_i2c_xfer_msg() we know the len of the message and
so maybe it would be better to dynamically set the timeout depending on
length?

Cheers
Jon
Sowjanya Komatineni Jan. 18, 2019, 5:21 p.m. UTC | #2
>> increase transfer timeout to 10s to allow enough time during max 
>> transfer size.
>> 
>> Signed-off-by: Sowjanya Komatineni <skomatineni@nvidia.com>
>> ---
>>  drivers/i2c/busses/i2c-tegra.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>> 
>> diff --git a/drivers/i2c/busses/i2c-tegra.c 
>> b/drivers/i2c/busses/i2c-tegra.c index e417ebf7628c..ca7c581fb4c0 
>> 100644
>> --- a/drivers/i2c/busses/i2c-tegra.c
>> +++ b/drivers/i2c/busses/i2c-tegra.c
>> @@ -25,7 +25,7 @@
>>  
>>  #include <asm/unaligned.h>
>>  
>> -#define TEGRA_I2C_TIMEOUT (msecs_to_jiffies(1000))
>> +#define TEGRA_I2C_TIMEOUT (msecs_to_jiffies(10000))
>>  #define BYTES_PER_FIFO_WORD 4
>>  
>>  #define I2C_CNFG				0x000
>
>Should the timeout be set depending on the max transfer size? 10s seems an age if the max transfer size is 4KB. In other words, we should this only be applied for >T194+?
>
>Furthermore, in tegra_i2c_xfer_msg() we know the len of the message and so maybe it would be better to dynamically set the timeout depending on length?
>
>Cheers
>Jon

Yes, that’s the ideal way to compute timeout based on msg len and bus rate. 
To do this I had to update TEGRA_I2C_TIMEOUT macro to take arg and there are 3 different patches for tegra i2c under review and all of those will effect as the patch changes use TEGRA_I2C_TIMEOUT. 

So, Should I hold on to this change for now till those patches are merged?

Thanks
Sowjanya
Thierry Reding Jan. 21, 2019, 9:38 a.m. UTC | #3
On Fri, Jan 18, 2019 at 05:21:28PM +0000, Sowjanya Komatineni wrote:
> 
> 
> >> increase transfer timeout to 10s to allow enough time during max 
> >> transfer size.
> >> 
> >> Signed-off-by: Sowjanya Komatineni <skomatineni@nvidia.com>
> >> ---
> >>  drivers/i2c/busses/i2c-tegra.c | 2 +-
> >>  1 file changed, 1 insertion(+), 1 deletion(-)
> >> 
> >> diff --git a/drivers/i2c/busses/i2c-tegra.c 
> >> b/drivers/i2c/busses/i2c-tegra.c index e417ebf7628c..ca7c581fb4c0 
> >> 100644
> >> --- a/drivers/i2c/busses/i2c-tegra.c
> >> +++ b/drivers/i2c/busses/i2c-tegra.c
> >> @@ -25,7 +25,7 @@
> >>  
> >>  #include <asm/unaligned.h>
> >>  
> >> -#define TEGRA_I2C_TIMEOUT (msecs_to_jiffies(1000))
> >> +#define TEGRA_I2C_TIMEOUT (msecs_to_jiffies(10000))
> >>  #define BYTES_PER_FIFO_WORD 4
> >>  
> >>  #define I2C_CNFG				0x000
> >
> >Should the timeout be set depending on the max transfer size? 10s seems an age if the max transfer size is 4KB. In other words, we should this only be applied for >T194+?
> >
> >Furthermore, in tegra_i2c_xfer_msg() we know the len of the message and so maybe it would be better to dynamically set the timeout depending on length?
> >
> >Cheers
> >Jon
> 
> Yes, that’s the ideal way to compute timeout based on msg len and bus rate. 
> To do this I had to update TEGRA_I2C_TIMEOUT macro to take arg and
> there are 3 different patches for tegra i2c under review and all of
> those will effect as the patch changes use TEGRA_I2C_TIMEOUT. 
> 
> So, Should I hold on to this change for now till those patches are merged?

If you have a number of patches with interdependencies, it's best to
send them out as a whole series. So you'd typically apply them in order
to a single branch, then use:

	$ git format-patch first^..last

where first is the SHA1 of the first commit you want to send, and last
is the the SHA1 of the last patch. The carret (^) means the parent
commit of the specified one and is needed because git format-patch
doesn't include the start of the sequence.

If the commits are at the top of your branch you can use something like
this:

	$ git format-patch -3

which will generate a series for the last three patches in the branch
(more specifically starting from HEAD).

If you send them as a series, it's immediately obvious in what order
they should be applied and generally makes it easier for people to
review and test.

I think in this case you can probably just have the other two patches
first in the series, then apply the timeout patch on top. That way you
can resolve the conflicts between patches 1 and 2, and patch 3 before
sending out.

Thierry
diff mbox series

Patch

diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c
index e417ebf7628c..ca7c581fb4c0 100644
--- a/drivers/i2c/busses/i2c-tegra.c
+++ b/drivers/i2c/busses/i2c-tegra.c
@@ -25,7 +25,7 @@ 
 
 #include <asm/unaligned.h>
 
-#define TEGRA_I2C_TIMEOUT (msecs_to_jiffies(1000))
+#define TEGRA_I2C_TIMEOUT (msecs_to_jiffies(10000))
 #define BYTES_PER_FIFO_WORD 4
 
 #define I2C_CNFG				0x000