Revert "ARM: tegra: pm: turn off VDEC partition in LP1"
Deepak Nibade [Fri, 13 Sep 2013 06:57:41 +0000 (11:57 +0530)]
- This essentially disables power gating of VDE partition
  during LP1

- Power gating VDE partition during LP1 was causing below warning
  with CONFIG_DEBUG_ATOMIC_SLEEP enabled
BUG: sleeping function called from invalid context at
/kernel/include/linux/clk.h:164

- fix this warning by reverting commit

Bug 1355279

This reverts commit 8825199f91361961eadf95a977294bf6611310cc.

Change-Id: Ibe997c2e33c3807dbad3e9a38771ff8342b20144
Signed-off-by: Deepak Nibade <dnibade@nvidia.com>
Reviewed-on: http://git-master/r/274153
Reviewed-by: Rick Song <ricks@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Sachin Nikam <snikam@nvidia.com>

arch/arm/mach-tegra/pm.c

index dc10f8f..5bca895 100644 (file)
@@ -968,26 +968,17 @@ static void tegra_suspend_check_pwr_stats(void)
        for (partid = 0; partid < TEGRA_NUM_POWERGATE; partid++)
                if ((1 << partid) & pwrgate_partid_mask)
                        if (tegra_powergate_is_powered(partid))
-                               pr_info("partition %s is left on before suspend\n",
+                               pr_warning("partition %s is left on before suspend\n",
                                        tegra_powergate_get_name(partid));
 
        return;
 }
 
-static void tegra_suspend_powergate_control(int partid, bool turn_off)
-{
-       if (turn_off)
-               tegra_powergate_partition(partid);
-       else
-               tegra_unpowergate_partition(partid);
-}
-
 int tegra_suspend_dram(enum tegra_suspend_mode mode, unsigned int flags)
 {
        int err = 0;
        u32 scratch37 = 0xDEADBEEF;
        u32 reg;
-       bool tegra_suspend_vde_powergated = false;
 
        if (WARN_ON(mode <= TEGRA_SUSPEND_NONE ||
                mode >= TEGRA_MAX_SUSPEND_MODE)) {
@@ -1012,15 +1003,6 @@ int tegra_suspend_dram(enum tegra_suspend_mode mode, unsigned int flags)
        if ((mode == TEGRA_SUSPEND_LP0) || (mode == TEGRA_SUSPEND_LP1))
                tegra_suspend_check_pwr_stats();
 
-       /* turn off VDE partition in LP1 */
-       if (mode == TEGRA_SUSPEND_LP1 &&
-               tegra_powergate_is_powered(TEGRA_POWERGATE_VDEC)) {
-               pr_info("turning off partition %s in LP1\n",
-                       tegra_powergate_get_name(TEGRA_POWERGATE_VDEC));
-               tegra_suspend_powergate_control(TEGRA_POWERGATE_VDEC, true);
-               tegra_suspend_vde_powergated = true;
-       }
-
        tegra_common_suspend();
 
        tegra_pm_set(mode);
@@ -1136,13 +1118,6 @@ int tegra_suspend_dram(enum tegra_suspend_mode mode, unsigned int flags)
 
        tegra_common_resume();
 
-       /* turn on VDE partition in LP1 */
-       if (mode == TEGRA_SUSPEND_LP1 && tegra_suspend_vde_powergated) {
-               pr_info("turning on partition %s in LP1\n",
-                       tegra_powergate_get_name(TEGRA_POWERGATE_VDEC));
-               tegra_suspend_powergate_control(TEGRA_POWERGATE_VDEC, false);
-       }
-
 fail:
        return err;
 }