diff options
| -rw-r--r-- | drivers/acpi/Makefile | 2 | ||||
| -rw-r--r-- | drivers/acpi/acpi_memhotplug.c | 31 | ||||
| -rw-r--r-- | drivers/acpi/internal.h | 6 |
3 files changed, 26 insertions, 13 deletions
diff --git a/drivers/acpi/Makefile b/drivers/acpi/Makefile index 4f23f3295b12..f1c9266430d9 100644 --- a/drivers/acpi/Makefile +++ b/drivers/acpi/Makefile | |||
| @@ -66,7 +66,7 @@ obj-$(CONFIG_ACPI_PCI_SLOT) += pci_slot.o | |||
| 66 | obj-$(CONFIG_ACPI_PROCESSOR) += processor.o | 66 | obj-$(CONFIG_ACPI_PROCESSOR) += processor.o |
| 67 | obj-y += container.o | 67 | obj-y += container.o |
| 68 | obj-$(CONFIG_ACPI_THERMAL) += thermal.o | 68 | obj-$(CONFIG_ACPI_THERMAL) += thermal.o |
| 69 | obj-$(CONFIG_ACPI_HOTPLUG_MEMORY) += acpi_memhotplug.o | 69 | obj-y += acpi_memhotplug.o |
| 70 | obj-$(CONFIG_ACPI_BATTERY) += battery.o | 70 | obj-$(CONFIG_ACPI_BATTERY) += battery.o |
| 71 | obj-$(CONFIG_ACPI_SBS) += sbshc.o | 71 | obj-$(CONFIG_ACPI_SBS) += sbshc.o |
| 72 | obj-$(CONFIG_ACPI_SBS) += sbs.o | 72 | obj-$(CONFIG_ACPI_SBS) += sbs.o |
diff --git a/drivers/acpi/acpi_memhotplug.c b/drivers/acpi/acpi_memhotplug.c index b67be85ff0fc..23e2319ead41 100644 --- a/drivers/acpi/acpi_memhotplug.c +++ b/drivers/acpi/acpi_memhotplug.c | |||
| @@ -44,6 +44,13 @@ | |||
| 44 | 44 | ||
| 45 | ACPI_MODULE_NAME("acpi_memhotplug"); | 45 | ACPI_MODULE_NAME("acpi_memhotplug"); |
| 46 | 46 | ||
| 47 | static const struct acpi_device_id memory_device_ids[] = { | ||
| 48 | {ACPI_MEMORY_DEVICE_HID, 0}, | ||
| 49 | {"", 0}, | ||
| 50 | }; | ||
| 51 | |||
| 52 | #ifdef CONFIG_ACPI_HOTPLUG_MEMORY | ||
| 53 | |||
| 47 | /* Memory Device States */ | 54 | /* Memory Device States */ |
| 48 | #define MEMORY_INVALID_STATE 0 | 55 | #define MEMORY_INVALID_STATE 0 |
| 49 | #define MEMORY_POWER_ON_STATE 1 | 56 | #define MEMORY_POWER_ON_STATE 1 |
| @@ -53,11 +60,6 @@ static int acpi_memory_device_add(struct acpi_device *device, | |||
| 53 | const struct acpi_device_id *not_used); | 60 | const struct acpi_device_id *not_used); |
| 54 | static void acpi_memory_device_remove(struct acpi_device *device); | 61 | static void acpi_memory_device_remove(struct acpi_device *device); |
| 55 | 62 | ||
| 56 | static const struct acpi_device_id memory_device_ids[] = { | ||
| 57 | {ACPI_MEMORY_DEVICE_HID, 0}, | ||
| 58 | {"", 0}, | ||
| 59 | }; | ||
| 60 | |||
| 61 | static struct acpi_scan_handler memory_device_handler = { | 63 | static struct acpi_scan_handler memory_device_handler = { |
| 62 | .ids = memory_device_ids, | 64 | .ids = memory_device_ids, |
| 63 | .attach = acpi_memory_device_add, | 65 | .attach = acpi_memory_device_add, |
| @@ -364,9 +366,11 @@ static bool __initdata acpi_no_memhotplug; | |||
| 364 | 366 | ||
| 365 | void __init acpi_memory_hotplug_init(void) | 367 | void __init acpi_memory_hotplug_init(void) |
| 366 | { | 368 | { |
| 367 | if (acpi_no_memhotplug) | 369 | if (acpi_no_memhotplug) { |
| 370 | memory_device_handler.attach = NULL; | ||
| 371 | acpi_scan_add_handler(&memory_device_handler); | ||
| 368 | return; | 372 | return; |
| 369 | 373 | } | |
| 370 | acpi_scan_add_handler_with_hotplug(&memory_device_handler, "memory"); | 374 | acpi_scan_add_handler_with_hotplug(&memory_device_handler, "memory"); |
| 371 | } | 375 | } |
| 372 | 376 | ||
| @@ -376,3 +380,16 @@ static int __init disable_acpi_memory_hotplug(char *str) | |||
| 376 | return 1; | 380 | return 1; |
| 377 | } | 381 | } |
| 378 | __setup("acpi_no_memhotplug", disable_acpi_memory_hotplug); | 382 | __setup("acpi_no_memhotplug", disable_acpi_memory_hotplug); |
| 383 | |||
| 384 | #else | ||
| 385 | |||
| 386 | static struct acpi_scan_handler memory_device_handler = { | ||
| 387 | .ids = memory_device_ids, | ||
| 388 | }; | ||
| 389 | |||
| 390 | void __init acpi_memory_hotplug_init(void) | ||
| 391 | { | ||
| 392 | acpi_scan_add_handler(&memory_device_handler); | ||
| 393 | } | ||
| 394 | |||
| 395 | #endif /* CONFIG_ACPI_HOTPLUG_MEMORY */ | ||
diff --git a/drivers/acpi/internal.h b/drivers/acpi/internal.h index cc93efd22a24..5ad27bf8e4bd 100644 --- a/drivers/acpi/internal.h +++ b/drivers/acpi/internal.h | |||
| @@ -33,6 +33,7 @@ void acpi_platform_init(void); | |||
| 33 | void acpi_pnp_init(void); | 33 | void acpi_pnp_init(void); |
| 34 | int acpi_sysfs_init(void); | 34 | int acpi_sysfs_init(void); |
| 35 | void acpi_container_init(void); | 35 | void acpi_container_init(void); |
| 36 | void acpi_memory_hotplug_init(void); | ||
| 36 | #ifdef CONFIG_ACPI_DOCK | 37 | #ifdef CONFIG_ACPI_DOCK |
| 37 | void register_dock_dependent_device(struct acpi_device *adev, | 38 | void register_dock_dependent_device(struct acpi_device *adev, |
| 38 | acpi_handle dshandle); | 39 | acpi_handle dshandle); |
| @@ -44,11 +45,6 @@ static inline void register_dock_dependent_device(struct acpi_device *adev, | |||
| 44 | static inline int dock_notify(struct acpi_device *adev, u32 event) { return -ENODEV; } | 45 | static inline int dock_notify(struct acpi_device *adev, u32 event) { return -ENODEV; } |
| 45 | static inline void acpi_dock_add(struct acpi_device *adev) {} | 46 | static inline void acpi_dock_add(struct acpi_device *adev) {} |
| 46 | #endif | 47 | #endif |
| 47 | #ifdef CONFIG_ACPI_HOTPLUG_MEMORY | ||
| 48 | void acpi_memory_hotplug_init(void); | ||
| 49 | #else | ||
| 50 | static inline void acpi_memory_hotplug_init(void) {} | ||
| 51 | #endif | ||
| 52 | #ifdef CONFIG_X86 | 48 | #ifdef CONFIG_X86 |
| 53 | void acpi_cmos_rtc_init(void); | 49 | void acpi_cmos_rtc_init(void); |
| 54 | #else | 50 | #else |
