diff options
author | Richard Purdie <rpurdie@rpsys.net> | 2006-01-05 20:44:55 +0000 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2006-01-05 20:44:55 +0000 |
commit | 53b7c2b243bd31f857dddabd9339f2dd6ae3fb67 (patch) | |
tree | 5db702d4ad645ed477ed8096f069bc194dede94d | |
parent | b7557de41a04346cb545d4dda7088760cb96e713 (diff) | |
download | op-kernel-dev-53b7c2b243bd31f857dddabd9339f2dd6ae3fb67.zip op-kernel-dev-53b7c2b243bd31f857dddabd9339f2dd6ae3fb67.tar.gz |
[ARM] 3229/1: Remove uneeded ARM apm dependency on PM_LEGACY
Patch from Richard Purdie
ARM doesn't use ACPI so ARM's apm implementation has no need to depend
on PM_LEGACY. This patch removes that dependency.
Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r-- | arch/arm/Kconfig | 1 | ||||
-rw-r--r-- | arch/arm/kernel/apm.c | 19 |
2 files changed, 7 insertions, 13 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index cb41310..16a5d52 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -660,7 +660,6 @@ source "kernel/power/Kconfig" config APM tristate "Advanced Power Management Emulation" - depends on PM_LEGACY ---help--- APM is a BIOS specification for saving power using several different techniques. This is mostly useful for battery powered laptops with diff --git a/arch/arm/kernel/apm.c b/arch/arm/kernel/apm.c index a2843be..b9df1b7 100644 --- a/arch/arm/kernel/apm.c +++ b/arch/arm/kernel/apm.c @@ -20,7 +20,6 @@ #include <linux/apm_bios.h> #include <linux/sched.h> #include <linux/pm.h> -#include <linux/pm_legacy.h> #include <linux/device.h> #include <linux/kernel.h> #include <linux/list.h> @@ -81,6 +80,7 @@ struct apm_user { */ static int suspends_pending; static int apm_disabled; +static int arm_apm_active; static DECLARE_WAIT_QUEUE_HEAD(apm_waitqueue); static DECLARE_WAIT_QUEUE_HEAD(apm_suspend_waitqueue); @@ -477,9 +477,9 @@ static int kapmd(void *arg) apm_event_t event; wait_event_interruptible(kapmd_wait, - !queue_empty(&kapmd_queue) || !pm_active); + !queue_empty(&kapmd_queue) || !arm_apm_active); - if (!pm_active) + if (!arm_apm_active) break; spin_lock_irq(&kapmd_queue_lock); @@ -522,16 +522,11 @@ static int __init apm_init(void) return -ENODEV; } - if (PM_IS_ACTIVE()) { - printk(KERN_NOTICE "apm: overridden by ACPI.\n"); - return -EINVAL; - } - - pm_active = 1; + arm_apm_active = 1; ret = kernel_thread(kapmd, NULL, CLONE_KERNEL); if (ret < 0) { - pm_active = 0; + arm_apm_active = 0; return ret; } @@ -543,7 +538,7 @@ static int __init apm_init(void) if (ret != 0) { remove_proc_entry("apm", NULL); - pm_active = 0; + arm_apm_active = 0; wake_up(&kapmd_wait); wait_for_completion(&kapmd_exit); } @@ -556,7 +551,7 @@ static void __exit apm_exit(void) misc_deregister(&apm_device); remove_proc_entry("apm", NULL); - pm_active = 0; + arm_apm_active = 0; wake_up(&kapmd_wait); wait_for_completion(&kapmd_exit); } |