diff options
author | Shardar Shariff Md <smohammed@nvidia.com> | 2016-04-25 19:08:36 +0530 |
---|---|---|
committer | Wolfram Sang <wsa@the-dreams.de> | 2016-05-11 16:32:26 +0200 |
commit | 21e9efd92bb5e205b6243166b0fd38d3a5be8235 (patch) | |
tree | 03f68e8cf681ffa1fd03592cf466f66981d8fb4a /drivers/i2c | |
parent | 3f30e40b96b085ff25babaa8d6bc0b75c8fb32b2 (diff) | |
download | linux-21e9efd92bb5e205b6243166b0fd38d3a5be8235.tar.bz2 |
i2c: tegra: disable clock before returning error
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>
Diffstat (limited to 'drivers/i2c')
-rw-r--r-- | drivers/i2c/busses/i2c-tegra.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c index d764d64e9d2c..445398c314a3 100644 --- a/drivers/i2c/busses/i2c-tegra.c +++ b/drivers/i2c/busses/i2c-tegra.c @@ -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; } |