]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/arm/mach-pxa/pxa27x.c
[PATCH] sil24: add ATAPI support
[linux-2.6-omap-h63xx.git] / arch / arm / mach-pxa / pxa27x.c
index 893964fb9659bbabed5ed818377f430315915ef2..c722a9a91fcce243b9fce9a77f2c15f3e50b939a 100644 (file)
@@ -16,7 +16,7 @@
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/pm.h>
-#include <linux/device.h>
+#include <linux/platform_device.h>
 
 #include <asm/hardware.h>
 #include <asm/irq.h>
@@ -126,6 +126,7 @@ int pxa_cpu_pm_prepare(suspend_state_t state)
 {
        switch (state) {
        case PM_SUSPEND_MEM:
+       case PM_SUSPEND_STANDBY:
                return 0;
        default:
                return -EINVAL;
@@ -138,7 +139,10 @@ void pxa_cpu_pm_enter(suspend_state_t state)
        extern void pxa_cpu_suspend(unsigned int);
        extern void pxa_cpu_resume(void);
 
-       CKEN = CKEN22_MEMC | CKEN9_OSTIMER;
+       if (state == PM_SUSPEND_STANDBY)
+               CKEN = CKEN22_MEMC | CKEN9_OSTIMER | CKEN16_LCD |CKEN0_PWM0;
+       else
+               CKEN = CKEN22_MEMC | CKEN9_OSTIMER;
 
        /* ensure voltage-change sequencer not initiated, which hangs */
        PCFR &= ~PCFR_FVC;
@@ -147,10 +151,13 @@ void pxa_cpu_pm_enter(suspend_state_t state)
        PEDR = 0xDF12FE1B;
 
        switch (state) {
+       case PM_SUSPEND_STANDBY:
+               pxa_cpu_standby();
+               break;
        case PM_SUSPEND_MEM:
                /* set resume return address */
                PSPR = virt_to_phys(pxa_cpu_resume);
-               pxa_cpu_suspend(3);
+               pxa_cpu_suspend(PWRMODE_SLEEP);
                break;
        }
 }