]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
drm/i2c: tda9950: fix timeout counter check
authorColin Ian King <colin.king@canonical.com>
Sun, 27 May 2018 21:42:55 +0000 (22:42 +0100)
committerRussell King <rmk+kernel@armlinux.org.uk>
Thu, 20 Sep 2018 16:13:23 +0000 (17:13 +0100)
Currently the check to see if the timeout has reached zero is incorrect
and the check is instead checking if the timeout is non-zero and not
zero, hence it will break out of the loop on the first iteration and
the msleep is never executed.  Fix this by breaking from the loop when
timeout is zero.

Detected by CoverityScan, CID#1469404 ("Logically Dead Code")

Fixes: f0316f93897c ("drm/i2c: tda9950: add CEC driver")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
drivers/gpu/drm/i2c/tda9950.c

index 3f7396caad48100af5aa405d252e92bebabfc445..f2186409f0cfb402893abeb7a8e2726d4e9c6483 100644 (file)
@@ -307,7 +307,7 @@ static void tda9950_release(struct tda9950_priv *priv)
        /* Wait up to .5s for it to signal non-busy */
        do {
                csr = tda9950_read(client, REG_CSR);
-               if (!(csr & CSR_BUSY) || --timeout)
+               if (!(csr & CSR_BUSY) || !--timeout)
                        break;
                msleep(10);
        } while (1);