Re: [PATCH 08/12] i2c: qup: change completion timeout according to transfer length

From: Abhishek Sahu
Date: Mon Feb 19 2018 - 05:56:26 EST


On 2018-02-16 10:18, Sricharan R wrote:
On 2/3/2018 1:28 PM, Abhishek Sahu wrote:
Currently the completion timeout is being taken according to
maximum transfer length which is too high if SCL is operating in
high frequency. This patch calculates timeout on the basis of
one-byte transfer time and uses the same for completion timeout.

Signed-off-by: Abhishek Sahu <absahu@xxxxxxxxxxxxxx>
---
drivers/i2c/busses/i2c-qup.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/i2c/busses/i2c-qup.c b/drivers/i2c/busses/i2c-qup.c
index a91fc70..6df65ea 100644
--- a/drivers/i2c/busses/i2c-qup.c
+++ b/drivers/i2c/busses/i2c-qup.c
@@ -130,8 +130,8 @@
#define MX_TX_RX_LEN SZ_64K
#define MX_BLOCKS (MX_TX_RX_LEN / QUP_READ_LIMIT)

-/* Max timeout in ms for 32k bytes */
-#define TOUT_MAX 300
+/* Min timeout for i2c transfers */
+#define TOUT_MIN 2


may be you can mention, why is this 2 ?


This 2 seconds is timeout which I am adding on the top of maximum
xfer time calculated from bus speed to compensate the interrupt
latency and other factors. It will make xfer timeout minimum as
2 seconds.

I will update the comment to explain it in more detail.

Thanks,
Abhishek