]> rtime.felk.cvut.cz Git - sojka/nv-tegra/linux-3.10.git/commitdiff
i2c: tegra-vi: powergate only when partition is ON
authorShridhar Rasal <srasal@nvidia.com>
Wed, 9 Dec 2015 11:08:30 +0000 (16:38 +0530)
committermobile promotions <svcmobile_promotions@nvidia.com>
Sat, 12 Dec 2015 08:51:46 +0000 (00:51 -0800)
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 <srasal@nvidia.com>
Reviewed-on: http://git-master/r/843497
Reviewed-by: Nine Feng <nfeng@nvidia.com>
Tested-by: Nine Feng <nfeng@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Arto Merilainen <amerilainen@nvidia.com>
Reviewed-by: Jihoon Bang <jbang@nvidia.com>
drivers/i2c/busses/i2c-tegra-vi.c

index cce03e776e6d4caaabd639f607437f40effe59b2..7360e9180140132ee518c566c2ff58bab07f1c5d 100644 (file)
@@ -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)