Skip to content

Commit cd51e61

Browse files
committed
PM / ACPI: Remove references to pm_flags from bus.c
If direct references to pm_flags are removed from drivers/acpi/bus.c, CONFIG_ACPI will not need to depend on CONFIG_PM any more. Make that happen. Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Acked-by: Len Brown <len.brown@intel.com>
1 parent cb8f51b commit cd51e61

File tree

4 files changed

+21
-5
lines changed

4 files changed

+21
-5
lines changed

drivers/acpi/Kconfig

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ menuconfig ACPI
77
depends on !IA64_HP_SIM
88
depends on IA64 || X86
99
depends on PCI
10-
depends on PM
1110
select PNP
1211
default y
1312
help

drivers/acpi/bus.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
#include <acpi/acpi_bus.h>
4141
#include <acpi/acpi_drivers.h>
4242
#include <linux/dmi.h>
43+
#include <linux/suspend.h>
4344

4445
#include "internal.h"
4546

@@ -1025,13 +1026,13 @@ static int __init acpi_init(void)
10251026

10261027
if (!result) {
10271028
pci_mmcfg_late_init();
1028-
if (!(pm_flags & PM_APM))
1029-
pm_flags |= PM_ACPI;
1030-
else {
1029+
if (pm_apm_enabled()) {
10311030
printk(KERN_INFO PREFIX
10321031
"APM is already active, exiting\n");
10331032
disable_acpi();
10341033
result = -ENODEV;
1034+
} else {
1035+
pm_set_acpi_flag();
10351036
}
10361037
} else
10371038
disable_acpi();

include/linux/suspend.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,9 @@ extern int unregister_pm_notifier(struct notifier_block *nb);
272272
register_pm_notifier(&fn##_nb); \
273273
}
274274

275+
extern bool pm_apm_enabled(void);
276+
extern void pm_set_acpi_flag(void);
277+
275278
/* drivers/base/power/wakeup.c */
276279
extern bool events_check_enabled;
277280

@@ -292,6 +295,9 @@ static inline int unregister_pm_notifier(struct notifier_block *nb)
292295

293296
#define pm_notifier(fn, pri) do { (void)(fn); } while (0)
294297

298+
static inline bool pm_apm_enabled(void) { return false; }
299+
static inline void pm_set_acpi_flag(void) {}
300+
295301
static inline bool pm_wakeup_pending(void) { return false; }
296302
#endif /* !CONFIG_PM_SLEEP */
297303

kernel/power/main.c

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,20 @@
1717

1818
DEFINE_MUTEX(pm_mutex);
1919

20+
#ifdef CONFIG_PM_SLEEP
21+
2022
unsigned int pm_flags;
2123
EXPORT_SYMBOL(pm_flags);
2224

23-
#ifdef CONFIG_PM_SLEEP
25+
bool pm_apm_enabled(void)
26+
{
27+
return !!(pm_flags & PM_APM);
28+
}
29+
30+
void pm_set_acpi_flag(void)
31+
{
32+
pm_flags |= PM_ACPI;
33+
}
2434

2535
/* Routines for PM-transition notifications */
2636

0 commit comments

Comments
 (0)