[PATCH v7 1/4] i2c: tegra: disable clock before returning error

From: Shardar Shariff Md
Date: Mon Apr 25 2016 - 09:39:13 EST


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@xxxxxxxxxx>

---
Changes in v5:
- Move current patch as separate patch

Changes in v6:
- Remove unnecessary line

Changes in v7
- Updated commit message with description of issue
---
drivers/i2c/busses/i2c-tegra.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c
index d764d64..445398c3 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;
}

--
1.8.1.5