i2c: observe scl_count in i2c_deblock_gpio_loop()
authorHeinrich Schuchardt <xypron.glpk@gmx.de>
Sat, 9 May 2020 16:20:18 +0000 (18:20 +0200)
committerHeiko Schocher <hs@denx.de>
Thu, 28 May 2020 03:52:46 +0000 (05:52 +0200)
When compiling with -Wtype-limits we see this error:

drivers/i2c/i2c-uclass.c: In function ‘i2c_deblock_gpio_loop’:
drivers/i2c/i2c-uclass.c:517:21: error: comparison of
unsigned expression >= 0 is always true [-Werror=type-limits]
  517 |  while (scl_count-- >= 0) {
      |

Don't loop forever.

Fixes: 1f746a2c82b1 ("i2c: Make deblock delay and SCL clock configurable")
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
drivers/i2c/i2c-uclass.c

index 8166df7ba63b852b6156863e93226741ded1f3de..8bc69e870fd4389cc532eaa7e95af561acb75b99 100644 (file)
@@ -516,7 +516,7 @@ int i2c_deblock_gpio_loop(struct gpio_desc *sda_pin,
        udelay(delay);
 
        /*  Toggle SCL until slave release SDA */
-       while (scl_count-- >= 0) {
+       for (; scl_count; --scl_count) {
                i2c_gpio_set_pin(scl_pin, 1);
                udelay(delay);
                i2c_gpio_set_pin(scl_pin, 0);