From 4884485366d6cb366c06e0c304fdc762571d41fe Mon Sep 17 00:00:00 2001 From: Shridhar Rasal Date: Wed, 9 Dec 2015 16:38:30 +0530 Subject: [PATCH] i2c: tegra-vi: powergate only when partition is ON Both i2c-vi and host-vi are in VE power domain. During boot stage, interlaced acessing may occur and cause negative reference count Bug 200159379 Change-Id: Iee523b7b3084f0ac890bd47b81738152f064ec41 Signed-off-by: Shridhar Rasal Reviewed-on: http://git-master/r/843497 Reviewed-by: Nine Feng Tested-by: Nine Feng GVS: Gerrit_Virtual_Submit Reviewed-by: Arto Merilainen Reviewed-by: Jihoon Bang --- drivers/i2c/busses/i2c-tegra-vi.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/i2c/busses/i2c-tegra-vi.c b/drivers/i2c/busses/i2c-tegra-vi.c index cce03e776e6..7360e918014 100644 --- a/drivers/i2c/busses/i2c-tegra-vi.c +++ b/drivers/i2c/busses/i2c-tegra-vi.c @@ -530,7 +530,9 @@ static inline int tegra_vi_i2c_power_enable(struct tegra_vi_i2c_dev *i2c_dev) static inline int tegra_vi_i2c_power_disable(struct tegra_vi_i2c_dev *i2c_dev) { int ret = 0; - tegra_powergate_partition(TEGRA_POWERGATE_VE); + + if (tegra_powergate_is_powered(TEGRA_POWERGATE_VE)) + tegra_powergate_partition(TEGRA_POWERGATE_VE); ret = regulator_disable(i2c_dev->reg); if (ret) -- 2.39.2