Merge tag 'split-asm_system_h-for-linus-20120328' of git://git.kernel.org/pub/scm...
[linux-flexiantxendom0-3.2.10.git] / arch / arm / mach-omap2 / pm44xx.c
index a73e325..9ccaadc 100644 (file)
@@ -84,59 +84,8 @@ static int omap4_pm_suspend(void)
 
        return 0;
 }
-
-static int omap4_pm_enter(suspend_state_t suspend_state)
-{
-       int ret = 0;
-
-       switch (suspend_state) {
-       case PM_SUSPEND_STANDBY:
-       case PM_SUSPEND_MEM:
-               ret = omap4_pm_suspend();
-               break;
-       default:
-               ret = -EINVAL;
-       }
-
-       return ret;
-}
-
-static int omap4_pm_begin(suspend_state_t state)
-{
-       disable_hlt();
-       return 0;
-}
-
-static void omap4_pm_end(void)
-{
-       enable_hlt();
-       return;
-}
-
-static const struct platform_suspend_ops omap_pm_ops = {
-       .begin          = omap4_pm_begin,
-       .end            = omap4_pm_end,
-       .enter          = omap4_pm_enter,
-       .valid          = suspend_valid_only_mem,
-};
 #endif /* CONFIG_SUSPEND */
 
-/*
- * Enable hardware supervised mode for all clockdomains if it's
- * supported. Initiate sleep transition for other clockdomains, if
- * they are not used
- */
-static int __init clkdms_setup(struct clockdomain *clkdm, void *unused)
-{
-       if (clkdm->flags & CLKDM_CAN_ENABLE_AUTO)
-               clkdm_allow_idle(clkdm);
-       else if (clkdm->flags & CLKDM_CAN_FORCE_SLEEP &&
-                       atomic_read(&clkdm->usecount) == 0)
-               clkdm_sleep(clkdm);
-       return 0;
-}
-
-
 static int __init pwrdms_setup(struct powerdomain *pwrdm, void *unused)
 {
        struct power_state *pwrst;
@@ -174,18 +123,16 @@ static int __init pwrdms_setup(struct powerdomain *pwrdm, void *unused)
  * omap_default_idle - OMAP4 default ilde routine.'
  *
  * Implements OMAP4 memory, IO ordering requirements which can't be addressed
- * with default arch_idle() hook. Used by all CPUs with !CONFIG_CPUIDLE and
+ * with default cpu_do_idle() hook. Used by all CPUs with !CONFIG_CPUIDLE and
  * by secondary CPU with CONFIG_CPUIDLE.
  */
 static void omap_default_idle(void)
 {
-       local_irq_disable();
        local_fiq_disable();
 
        omap_do_wfi();
 
        local_fiq_enable();
-       local_irq_enable();
 }
 
 /**
@@ -250,14 +197,14 @@ static int __init omap4_pm_init(void)
                goto err2;
        }
 
-       (void) clkdm_for_each(clkdms_setup, NULL);
+       (void) clkdm_for_each(omap_pm_clkdms_setup, NULL);
 
 #ifdef CONFIG_SUSPEND
-       suspend_set_ops(&omap_pm_ops);
-#endif /* CONFIG_SUSPEND */
+       omap_pm_suspend = omap4_pm_suspend;
+#endif
 
-       /* Overwrite the default arch_idle() */
-       pm_idle = omap_default_idle;
+       /* Overwrite the default cpu_do_idle() */
+       arm_pm_idle = omap_default_idle;
 
        omap4_idle_init();