]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
i2c: tegra: disable clock before returning error
authorShardar Shariff Md <smohammed@nvidia.com>
Mon, 25 Apr 2016 13:38:36 +0000 (19:08 +0530)
committerWolfram Sang <wsa@the-dreams.de>
Wed, 11 May 2016 14:32:26 +0000 (16:32 +0200)
Disable clock before returning error in tegra_i2c_init() as its leaves
i2c clock ON in case of error and never turns off again as it will have
unbalanced clock enable/disable

Signed-off-by: Shardar Shariff Md <smohammed@nvidia.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
drivers/i2c/busses/i2c-tegra.c

index d764d64e9d2c8f691f1c0641829cb48f2912b94c..445398c314a3303a41ba51313bbcbfd3a40c421c 100644 (file)
@@ -483,19 +483,20 @@ static int tegra_i2c_init(struct tegra_i2c_dev *i2c_dev)
                        if (time_after(jiffies, timeout)) {
                                dev_warn(i2c_dev->dev,
                                        "timeout waiting for config load\n");
-                               return -ETIMEDOUT;
+                               err = -ETIMEDOUT;
+                               goto err;
                        }
                        msleep(1);
                }
        }
 
-       tegra_i2c_clock_disable(i2c_dev);
-
        if (i2c_dev->irq_disabled) {
                i2c_dev->irq_disabled = 0;
                enable_irq(i2c_dev->irq);
        }
 
+err:
+       tegra_i2c_clock_disable(i2c_dev);
        return err;
 }