Commit 21e9efd9 authored by Shardar Shariff Md's avatar Shardar Shariff Md Committed by Wolfram Sang

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: default avatarShardar Shariff Md <smohammed@nvidia.com>
Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
parent 3f30e40b
...@@ -483,19 +483,20 @@ static int tegra_i2c_init(struct tegra_i2c_dev *i2c_dev) ...@@ -483,19 +483,20 @@ static int tegra_i2c_init(struct tegra_i2c_dev *i2c_dev)
if (time_after(jiffies, timeout)) { if (time_after(jiffies, timeout)) {
dev_warn(i2c_dev->dev, dev_warn(i2c_dev->dev,
"timeout waiting for config load\n"); "timeout waiting for config load\n");
return -ETIMEDOUT; err = -ETIMEDOUT;
goto err;
} }
msleep(1); msleep(1);
} }
} }
tegra_i2c_clock_disable(i2c_dev);
if (i2c_dev->irq_disabled) { if (i2c_dev->irq_disabled) {
i2c_dev->irq_disabled = 0; i2c_dev->irq_disabled = 0;
enable_irq(i2c_dev->irq); enable_irq(i2c_dev->irq);
} }
err:
tegra_i2c_clock_disable(i2c_dev);
return err; return err;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment