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 <abs...@codeaurora.org>
 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.


Reply via email to