ARM: tegra3: Cluster Switch and LP0 require PM_SLEEP
Scott Williams [Thu, 21 Jul 2011 21:09:24 +0000 (14:09 -0700)]
Change-Id: If3d4fa59cf6d7cd8692f6e5b59414a923abcfd0d
Signed-off-by: Scott Williams <scwilliams@nvidia.com>
DW: Split into logical changes
Signed-off-by: Dan Willemsen <dwillemsen@nvidia.com>

Rebase-Id: Rec3560499e4c64fd76a873689691cbae59f7602b

arch/arm/mach-tegra/pm-t3.c
arch/arm/mach-tegra/pm.h

index ff46f57..5419fc7 100644 (file)
@@ -90,7 +90,7 @@
 #define CPU_CLOCK(cpu) (0x1<<(8+cpu))
 #define CPU_RESET(cpu) (0x1111ul<<(cpu))
 
-
+#ifdef CONFIG_PM_SLEEP
 static int cluster_switch_prolog_clock(unsigned int flags)
 {
        u32 reg;
@@ -335,3 +335,4 @@ void tegra_lp0_resume_mc(void)
        writel(mc_reserved_rsv, mc + MC_RESERVED_RSV);
        writel(mc_emem_arb_override, mc + MC_EMEM_ARB_OVERRIDE);
 }
+#endif
index 2fd0024..eaa2431 100644 (file)
@@ -119,9 +119,24 @@ void tegra2_lp0_suspend_init(void);
 #define INSTRUMENT_CLUSTER_SWITCH 1    /* Should be zero for shipping code */
 #define DEBUG_CLUSTER_SWITCH 1         /* Should be zero for shipping code */
 #define PARAMETERIZE_CLUSTER_SWITCH 1  /* Should be zero for shipping code */
+
+#ifdef CONFIG_PM_SLEEP
 int tegra_cluster_control(unsigned int us, unsigned int flags);
 void tegra_cluster_switch_prolog(unsigned int flags);
 void tegra_cluster_switch_epilog(unsigned int flags);
+void tegra_lp0_suspend_mc(void);
+void tegra_lp0_resume_mc(void);
+#else
+static inline int tegra_cluster_control(unsigned int us, unsigned int flags)
+{
+       return -EPERM;
+}
+static inline void tegra_cluster_switch_prolog(unsigned int flags) {}
+static inline void tegra_cluster_switch_epilog(unsigned int flags) {}
+static inline void tegra_lp0_suspend_mc(void) {}
+static inline void tegra_lp0_resume_mc(void) {}
+#endif
+
 static inline bool is_g_cluster_present(void)
 {
        u32 fuse_sku = readl(FUSE_SKU_DIRECT_CONFIG);
@@ -135,8 +150,6 @@ static inline unsigned int is_lp_cluster(void)
        reg = readl(FLOW_CTRL_CLUSTER_CONTROL);
        return (reg & 1); /* 0 == G, 1 == LP*/
 }
-void tegra_lp0_suspend_mc(void);
-void tegra_lp0_resume_mc(void);
 #endif
 
 static inline void tegra_lp0_suspend_init(void)