git: 37ef8d4cd6b5 - main - ig4(4): Increase timeout to about 1 second

Allan Jude allanjude at FreeBSD.org
Thu Feb 18 15:50:13 UTC 2021


The branch main has been updated by allanjude:

URL: https://cgit.FreeBSD.org/src/commit/?id=37ef8d4cd6b570c0882e97826df961a5d6003d07

commit 37ef8d4cd6b570c0882e97826df961a5d6003d07
Author:     Allan Jude <allanjude at FreeBSD.org>
AuthorDate: 2021-02-18 15:47:17 +0000
Commit:     Allan Jude <allanjude at FreeBSD.org>
CommitDate: 2021-02-18 15:47:17 +0000

    ig4(4): Increase timeout to about 1 second
    
    Per the i2c spec, a slave device can stretch SCL idefinitely, so 25ms is
    a bit arbitrary in general. smbus does specify an optional timeout
    recovery mechanism to be done at about 25~35ms, but the IPMI SSIF spec
    says that BMCs don't have any obligation to implement that.
    The BMC on Altra seems to mostly respond within 25ms, but occasionally
    will stretch SCL for ~300 msec.
    
    Also, the count_us mechanism seems to actually timeout around 25%
    earlier than it would claim (timeout really happening around 19ms
    instead of 25ms).
    
    Sponsored by:   Ampere Computing LLC
    Submitted by:   Klara Inc.
    Reviewed by:    manu, imp
    Differential Revision:  https://reviews.freebsd.org/D28747
---
 sys/dev/ichiic/ig4_iic.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys/dev/ichiic/ig4_iic.c b/sys/dev/ichiic/ig4_iic.c
index b684dc7d87cd..4781154f03c8 100644
--- a/sys/dev/ichiic/ig4_iic.c
+++ b/sys/dev/ichiic/ig4_iic.c
@@ -267,7 +267,7 @@ wait_intr(ig4iic_softc_t *sc, uint32_t intr)
 	int error;
 	int txlvl = -1;
 	u_int count_us = 0;
-	u_int limit_us = 25000; /* 25ms */
+	u_int limit_us = 1000000; /* 1sec */
 
 	for (;;) {
 		/*


More information about the dev-commits-src-main mailing list