diff options
| -rw-r--r-- | arch/arm/mach-omap1/pm.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/arch/arm/mach-omap1/pm.c b/arch/arm/mach-omap1/pm.c index 06b7e54a0128..64adb24ffb7f 100644 --- a/arch/arm/mach-omap1/pm.c +++ b/arch/arm/mach-omap1/pm.c | |||
| @@ -67,6 +67,8 @@ static unsigned int mpui730_sleep_save[MPUI730_SLEEP_SAVE_SIZE]; | |||
| 67 | static unsigned int mpui1510_sleep_save[MPUI1510_SLEEP_SAVE_SIZE]; | 67 | static unsigned int mpui1510_sleep_save[MPUI1510_SLEEP_SAVE_SIZE]; |
| 68 | static unsigned int mpui1610_sleep_save[MPUI1610_SLEEP_SAVE_SIZE]; | 68 | static unsigned int mpui1610_sleep_save[MPUI1610_SLEEP_SAVE_SIZE]; |
| 69 | 69 | ||
| 70 | #ifdef CONFIG_OMAP_32K_TIMER | ||
| 71 | |||
| 70 | static unsigned short enable_dyn_sleep = 1; | 72 | static unsigned short enable_dyn_sleep = 1; |
| 71 | 73 | ||
| 72 | static ssize_t idle_show(struct kobject *kobj, struct kobj_attribute *attr, | 74 | static ssize_t idle_show(struct kobject *kobj, struct kobj_attribute *attr, |
| @@ -91,6 +93,8 @@ static ssize_t idle_store(struct kobject *kobj, struct kobj_attribute *attr, | |||
| 91 | static struct kobj_attribute sleep_while_idle_attr = | 93 | static struct kobj_attribute sleep_while_idle_attr = |
| 92 | __ATTR(sleep_while_idle, 0644, idle_show, idle_store); | 94 | __ATTR(sleep_while_idle, 0644, idle_show, idle_store); |
| 93 | 95 | ||
| 96 | #endif | ||
| 97 | |||
| 94 | static void (*omap_sram_idle)(void) = NULL; | 98 | static void (*omap_sram_idle)(void) = NULL; |
| 95 | static void (*omap_sram_suspend)(unsigned long r0, unsigned long r1) = NULL; | 99 | static void (*omap_sram_suspend)(unsigned long r0, unsigned long r1) = NULL; |
| 96 | 100 | ||
| @@ -104,9 +108,7 @@ void omap_pm_idle(void) | |||
| 104 | { | 108 | { |
| 105 | extern __u32 arm_idlect1_mask; | 109 | extern __u32 arm_idlect1_mask; |
| 106 | __u32 use_idlect1 = arm_idlect1_mask; | 110 | __u32 use_idlect1 = arm_idlect1_mask; |
| 107 | #ifndef CONFIG_OMAP_MPU_TIMER | 111 | int do_sleep = 0; |
| 108 | int do_sleep; | ||
| 109 | #endif | ||
| 110 | 112 | ||
| 111 | local_irq_disable(); | 113 | local_irq_disable(); |
| 112 | local_fiq_disable(); | 114 | local_fiq_disable(); |
| @@ -128,7 +130,6 @@ void omap_pm_idle(void) | |||
| 128 | use_idlect1 = use_idlect1 & ~(1 << 9); | 130 | use_idlect1 = use_idlect1 & ~(1 << 9); |
| 129 | #else | 131 | #else |
| 130 | 132 | ||
| 131 | do_sleep = 0; | ||
| 132 | while (enable_dyn_sleep) { | 133 | while (enable_dyn_sleep) { |
| 133 | 134 | ||
| 134 | #ifdef CONFIG_CBUS_TAHVO_USB | 135 | #ifdef CONFIG_CBUS_TAHVO_USB |
| @@ -141,6 +142,8 @@ void omap_pm_idle(void) | |||
| 141 | break; | 142 | break; |
| 142 | } | 143 | } |
| 143 | 144 | ||
| 145 | #endif | ||
| 146 | |||
| 144 | #ifdef CONFIG_OMAP_DM_TIMER | 147 | #ifdef CONFIG_OMAP_DM_TIMER |
| 145 | use_idlect1 = omap_dm_timer_modify_idlect_mask(use_idlect1); | 148 | use_idlect1 = omap_dm_timer_modify_idlect_mask(use_idlect1); |
| 146 | #endif | 149 | #endif |
| @@ -168,7 +171,6 @@ void omap_pm_idle(void) | |||
| 168 | } | 171 | } |
| 169 | omap_sram_suspend(omap_readl(ARM_IDLECT1), | 172 | omap_sram_suspend(omap_readl(ARM_IDLECT1), |
| 170 | omap_readl(ARM_IDLECT2)); | 173 | omap_readl(ARM_IDLECT2)); |
| 171 | #endif | ||
| 172 | 174 | ||
| 173 | local_fiq_enable(); | 175 | local_fiq_enable(); |
| 174 | local_irq_enable(); | 176 | local_irq_enable(); |
| @@ -661,7 +663,10 @@ static struct platform_suspend_ops omap_pm_ops ={ | |||
| 661 | 663 | ||
| 662 | static int __init omap_pm_init(void) | 664 | static int __init omap_pm_init(void) |
| 663 | { | 665 | { |
| 666 | |||
| 667 | #ifdef CONFIG_OMAP_32K_TIMER | ||
| 664 | int error; | 668 | int error; |
| 669 | #endif | ||
| 665 | 670 | ||
| 666 | printk("Power Management for TI OMAP.\n"); | 671 | printk("Power Management for TI OMAP.\n"); |
| 667 | 672 | ||
| @@ -719,9 +724,11 @@ static int __init omap_pm_init(void) | |||
| 719 | omap_pm_init_proc(); | 724 | omap_pm_init_proc(); |
| 720 | #endif | 725 | #endif |
| 721 | 726 | ||
| 727 | #ifdef CONFIG_OMAP_32K_TIMER | ||
| 722 | error = sysfs_create_file(power_kobj, &sleep_while_idle_attr); | 728 | error = sysfs_create_file(power_kobj, &sleep_while_idle_attr); |
| 723 | if (error) | 729 | if (error) |
| 724 | printk(KERN_ERR "sysfs_create_file failed: %d\n", error); | 730 | printk(KERN_ERR "sysfs_create_file failed: %d\n", error); |
| 731 | #endif | ||
| 725 | 732 | ||
| 726 | if (cpu_is_omap16xx()) { | 733 | if (cpu_is_omap16xx()) { |
| 727 | /* configure LOW_PWR pin */ | 734 | /* configure LOW_PWR pin */ |
