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

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
Loading
Loading
Loading
Loading
+4 −3
Original line number Original line Diff line number Diff line
@@ -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;
}
}