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>
This commit is contained in:

committed by
Wolfram Sang

parent
3f30e40b96
commit
21e9efd92b
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user