diff options
-rw-r--r-- | Documentation/kernel-parameters.txt | 32 | ||||
-rw-r--r-- | arch/i386/kernel/acpi/earlyquirk.c | 5 | ||||
-rw-r--r-- | drivers/acpi/Kconfig | 4 | ||||
-rw-r--r-- | drivers/acpi/acpi_memhotplug.c | 13 | ||||
-rw-r--r-- | drivers/acpi/bus.c | 4 | ||||
-rw-r--r-- | drivers/acpi/container.c | 6 | ||||
-rw-r--r-- | drivers/acpi/processor_core.c | 4 | ||||
-rw-r--r-- | drivers/acpi/processor_idle.c | 8 | ||||
-rw-r--r-- | drivers/acpi/scan.c | 4 | ||||
-rw-r--r-- | drivers/acpi/sleep/proc.c | 16 | ||||
-rw-r--r-- | drivers/clocksource/acpi_pm.c | 2 | ||||
-rw-r--r-- | drivers/pci/pci-acpi.c | 4 | ||||
-rw-r--r-- | include/acpi/actbl.h | 1 |
13 files changed, 65 insertions, 38 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 12533a958c51..e3394eb42cb7 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -181,19 +181,41 @@ and is between 256 and 4096 characters. It is defined in the file | |||
181 | that require a timer override, but don't have | 181 | that require a timer override, but don't have |
182 | HPET | 182 | HPET |
183 | 183 | ||
184 | acpi_dbg_layer= [HW,ACPI] | 184 | acpi.debug_layer= [HW,ACPI] |
185 | Format: <int> | 185 | Format: <int> |
186 | Each bit of the <int> indicates an ACPI debug layer, | 186 | Each bit of the <int> indicates an ACPI debug layer, |
187 | 1: enable, 0: disable. It is useful for boot time | 187 | 1: enable, 0: disable. It is useful for boot time |
188 | debugging. After system has booted up, it can be set | 188 | debugging. After system has booted up, it can be set |
189 | via /proc/acpi/debug_layer. | 189 | via /sys/module/acpi/parameters/debug_layer. |
190 | 190 | CONFIG_ACPI_DEBUG must be enabled for this to produce any output. | |
191 | acpi_dbg_level= [HW,ACPI] | 191 | Available bits (add the numbers together) to enable debug output |
192 | for specific parts of the ACPI subsystem: | ||
193 | 0x01 utilities 0x02 hardware 0x04 events 0x08 tables | ||
194 | 0x10 namespace 0x20 parser 0x40 dispatcher | ||
195 | 0x80 executer 0x100 resources 0x200 acpica debugger | ||
196 | 0x400 os services 0x800 acpica disassembler. | ||
197 | The number can be in decimal or prefixed with 0x in hex. | ||
198 | Warning: Many of these options can produce a lot of | ||
199 | output and make your system unusable. Be very careful. | ||
200 | |||
201 | acpi.debug_level= [HW,ACPI] | ||
192 | Format: <int> | 202 | Format: <int> |
193 | Each bit of the <int> indicates an ACPI debug level, | 203 | Each bit of the <int> indicates an ACPI debug level, |
194 | 1: enable, 0: disable. It is useful for boot time | 204 | 1: enable, 0: disable. It is useful for boot time |
195 | debugging. After system has booted up, it can be set | 205 | debugging. After system has booted up, it can be set |
196 | via /proc/acpi/debug_level. | 206 | via /sys/module/acpi/parameters/debug_level. |
207 | CONFIG_ACPI_DEBUG must be enabled for this to produce any output. | ||
208 | Available bits (add the numbers together) to enable different | ||
209 | debug output levels of the ACPI subsystem: | ||
210 | 0x01 error 0x02 warn 0x04 init 0x08 debug object | ||
211 | 0x10 info 0x20 init names 0x40 parse 0x80 load | ||
212 | 0x100 dispatch 0x200 execute 0x400 names 0x800 operation region | ||
213 | 0x1000 bfield 0x2000 tables 0x4000 values 0x8000 objects | ||
214 | 0x10000 resources 0x20000 user requests 0x40000 package. | ||
215 | The number can be in decimal or prefixed with 0x in hex. | ||
216 | Warning: Many of these options can produce a lot of | ||
217 | output and make your system unusable. Be very careful. | ||
218 | |||
197 | 219 | ||
198 | acpi_fake_ecdt [HW,ACPI] Workaround failure due to BIOS lacking ECDT | 220 | acpi_fake_ecdt [HW,ACPI] Workaround failure due to BIOS lacking ECDT |
199 | 221 | ||
diff --git a/arch/i386/kernel/acpi/earlyquirk.c b/arch/i386/kernel/acpi/earlyquirk.c index a7d22d9f3d7e..8f7efd38254d 100644 --- a/arch/i386/kernel/acpi/earlyquirk.c +++ b/arch/i386/kernel/acpi/earlyquirk.c | |||
@@ -23,10 +23,13 @@ static int __init nvidia_hpet_check(struct acpi_table_header *header) | |||
23 | static int __init check_bridge(int vendor, int device) | 23 | static int __init check_bridge(int vendor, int device) |
24 | { | 24 | { |
25 | #ifdef CONFIG_ACPI | 25 | #ifdef CONFIG_ACPI |
26 | static int warned; | ||
26 | /* According to Nvidia all timer overrides are bogus unless HPET | 27 | /* According to Nvidia all timer overrides are bogus unless HPET |
27 | is enabled. */ | 28 | is enabled. */ |
28 | if (!acpi_use_timer_override && vendor == PCI_VENDOR_ID_NVIDIA) { | 29 | if (!acpi_use_timer_override && vendor == PCI_VENDOR_ID_NVIDIA) { |
29 | if (acpi_table_parse(ACPI_SIG_HPET, nvidia_hpet_check)) { | 30 | if (!warned && acpi_table_parse(ACPI_SIG_HPET, |
31 | nvidia_hpet_check)) { | ||
32 | warned = 1; | ||
30 | acpi_skip_timer_override = 1; | 33 | acpi_skip_timer_override = 1; |
31 | printk(KERN_INFO "Nvidia board " | 34 | printk(KERN_INFO "Nvidia board " |
32 | "detected. Ignoring ACPI " | 35 | "detected. Ignoring ACPI " |
diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig index 45c43150826b..e905c950fd7b 100644 --- a/drivers/acpi/Kconfig +++ b/drivers/acpi/Kconfig | |||
@@ -85,8 +85,8 @@ config ACPI_PROCFS | |||
85 | depends on ACPI | 85 | depends on ACPI |
86 | default y | 86 | default y |
87 | ---help--- | 87 | ---help--- |
88 | Procfs interface for ACPI is made optional for back-compatible. | 88 | The Procfs interface for ACPI is made optional for backward compatibility. |
89 | As the same functions are duplicated in sysfs interface | 89 | As the same functions are duplicated in the sysfs interface |
90 | and this proc interface will be removed some time later, | 90 | and this proc interface will be removed some time later, |
91 | it's marked as deprecated. | 91 | it's marked as deprecated. |
92 | ( /proc/acpi/debug_layer && debug_level are deprecated by | 92 | ( /proc/acpi/debug_layer && debug_level are deprecated by |
diff --git a/drivers/acpi/acpi_memhotplug.c b/drivers/acpi/acpi_memhotplug.c index c26172671fd8..e65628a03085 100644 --- a/drivers/acpi/acpi_memhotplug.c +++ b/drivers/acpi/acpi_memhotplug.c | |||
@@ -44,11 +44,6 @@ MODULE_AUTHOR("Naveen B S <naveen.b.s@intel.com>"); | |||
44 | MODULE_DESCRIPTION("Hotplug Mem Driver"); | 44 | MODULE_DESCRIPTION("Hotplug Mem Driver"); |
45 | MODULE_LICENSE("GPL"); | 45 | MODULE_LICENSE("GPL"); |
46 | 46 | ||
47 | /* ACPI _STA method values */ | ||
48 | #define ACPI_MEMORY_STA_PRESENT (0x00000001UL) | ||
49 | #define ACPI_MEMORY_STA_ENABLED (0x00000002UL) | ||
50 | #define ACPI_MEMORY_STA_FUNCTIONAL (0x00000008UL) | ||
51 | |||
52 | /* Memory Device States */ | 47 | /* Memory Device States */ |
53 | #define MEMORY_INVALID_STATE 0 | 48 | #define MEMORY_INVALID_STATE 0 |
54 | #define MEMORY_POWER_ON_STATE 1 | 49 | #define MEMORY_POWER_ON_STATE 1 |
@@ -204,9 +199,9 @@ static int acpi_memory_check_device(struct acpi_memory_device *mem_device) | |||
204 | * Check for device status. Device should be | 199 | * Check for device status. Device should be |
205 | * present/enabled/functioning. | 200 | * present/enabled/functioning. |
206 | */ | 201 | */ |
207 | if (!((current_status & ACPI_MEMORY_STA_PRESENT) | 202 | if (!((current_status & ACPI_STA_DEVICE_PRESENT) |
208 | && (current_status & ACPI_MEMORY_STA_ENABLED) | 203 | && (current_status & ACPI_STA_DEVICE_ENABLED) |
209 | && (current_status & ACPI_MEMORY_STA_FUNCTIONAL))) | 204 | && (current_status & ACPI_STA_DEVICE_FUNCTIONING))) |
210 | return -ENODEV; | 205 | return -ENODEV; |
211 | 206 | ||
212 | return 0; | 207 | return 0; |
@@ -286,7 +281,7 @@ static int acpi_memory_powerdown_device(struct acpi_memory_device *mem_device) | |||
286 | return -ENODEV; | 281 | return -ENODEV; |
287 | 282 | ||
288 | /* Check for device status. Device should be disabled */ | 283 | /* Check for device status. Device should be disabled */ |
289 | if (current_status & ACPI_MEMORY_STA_ENABLED) | 284 | if (current_status & ACPI_STA_DEVICE_ENABLED) |
290 | return -EINVAL; | 285 | return -EINVAL; |
291 | 286 | ||
292 | return 0; | 287 | return 0; |
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c index dd49ea0d0ed3..e5084ececb6f 100644 --- a/drivers/acpi/bus.c +++ b/drivers/acpi/bus.c | |||
@@ -103,7 +103,9 @@ int acpi_bus_get_status(struct acpi_device *device) | |||
103 | else if (device->parent) | 103 | else if (device->parent) |
104 | device->status = device->parent->status; | 104 | device->status = device->parent->status; |
105 | else | 105 | else |
106 | STRUCT_TO_INT(device->status) = 0x0F; | 106 | STRUCT_TO_INT(device->status) = |
107 | ACPI_STA_DEVICE_PRESENT | ACPI_STA_DEVICE_ENABLED | | ||
108 | ACPI_STA_DEVICE_UI | ACPI_STA_DEVICE_FUNCTIONING; | ||
107 | 109 | ||
108 | if (device->status.functional && !device->status.present) { | 110 | if (device->status.functional && !device->status.present) { |
109 | printk(KERN_WARNING PREFIX "Device [%s] status [%08x]: " | 111 | printk(KERN_WARNING PREFIX "Device [%s] status [%08x]: " |
diff --git a/drivers/acpi/container.c b/drivers/acpi/container.c index 0930d9413dfa..0dd3bf7c0ed1 100644 --- a/drivers/acpi/container.c +++ b/drivers/acpi/container.c | |||
@@ -49,8 +49,6 @@ MODULE_AUTHOR("Anil S Keshavamurthy"); | |||
49 | MODULE_DESCRIPTION("ACPI container driver"); | 49 | MODULE_DESCRIPTION("ACPI container driver"); |
50 | MODULE_LICENSE("GPL"); | 50 | MODULE_LICENSE("GPL"); |
51 | 51 | ||
52 | #define ACPI_STA_PRESENT (0x00000001) | ||
53 | |||
54 | static int acpi_container_add(struct acpi_device *device); | 52 | static int acpi_container_add(struct acpi_device *device); |
55 | static int acpi_container_remove(struct acpi_device *device, int type); | 53 | static int acpi_container_remove(struct acpi_device *device, int type); |
56 | 54 | ||
@@ -75,13 +73,13 @@ static int is_device_present(acpi_handle handle) | |||
75 | 73 | ||
76 | status = acpi_get_handle(handle, "_STA", &temp); | 74 | status = acpi_get_handle(handle, "_STA", &temp); |
77 | if (ACPI_FAILURE(status)) | 75 | if (ACPI_FAILURE(status)) |
78 | return 1; /* _STA not found, assmue device present */ | 76 | return 1; /* _STA not found, assume device present */ |
79 | 77 | ||
80 | status = acpi_evaluate_integer(handle, "_STA", NULL, &sta); | 78 | status = acpi_evaluate_integer(handle, "_STA", NULL, &sta); |
81 | if (ACPI_FAILURE(status)) | 79 | if (ACPI_FAILURE(status)) |
82 | return 0; /* Firmware error */ | 80 | return 0; /* Firmware error */ |
83 | 81 | ||
84 | return ((sta & ACPI_STA_PRESENT) == ACPI_STA_PRESENT); | 82 | return ((sta & ACPI_STA_DEVICE_PRESENT) == ACPI_STA_DEVICE_PRESENT); |
85 | } | 83 | } |
86 | 84 | ||
87 | /*******************************************************************/ | 85 | /*******************************************************************/ |
diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c index 99d1516d1e70..f7de02a6f497 100644 --- a/drivers/acpi/processor_core.c +++ b/drivers/acpi/processor_core.c | |||
@@ -70,8 +70,6 @@ | |||
70 | #define ACPI_PROCESSOR_LIMIT_USER 0 | 70 | #define ACPI_PROCESSOR_LIMIT_USER 0 |
71 | #define ACPI_PROCESSOR_LIMIT_THERMAL 1 | 71 | #define ACPI_PROCESSOR_LIMIT_THERMAL 1 |
72 | 72 | ||
73 | #define ACPI_STA_PRESENT 0x00000001 | ||
74 | |||
75 | #define _COMPONENT ACPI_PROCESSOR_COMPONENT | 73 | #define _COMPONENT ACPI_PROCESSOR_COMPONENT |
76 | ACPI_MODULE_NAME("processor_core"); | 74 | ACPI_MODULE_NAME("processor_core"); |
77 | 75 | ||
@@ -779,7 +777,7 @@ static int is_processor_present(acpi_handle handle) | |||
779 | 777 | ||
780 | 778 | ||
781 | status = acpi_evaluate_integer(handle, "_STA", NULL, &sta); | 779 | status = acpi_evaluate_integer(handle, "_STA", NULL, &sta); |
782 | if (ACPI_FAILURE(status) || !(sta & ACPI_STA_PRESENT)) { | 780 | if (ACPI_FAILURE(status) || !(sta & ACPI_STA_DEVICE_PRESENT)) { |
783 | ACPI_EXCEPTION((AE_INFO, status, "Processor Device is not present")); | 781 | ACPI_EXCEPTION((AE_INFO, status, "Processor Device is not present")); |
784 | return 0; | 782 | return 0; |
785 | } | 783 | } |
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c index cdf78943af4d..ae0654cd11ea 100644 --- a/drivers/acpi/processor_idle.c +++ b/drivers/acpi/processor_idle.c | |||
@@ -51,14 +51,6 @@ | |||
51 | #include <asm/apic.h> | 51 | #include <asm/apic.h> |
52 | #endif | 52 | #endif |
53 | 53 | ||
54 | /* | ||
55 | * Include the apic definitions for x86 to have the APIC timer related defines | ||
56 | * available also for UP (on SMP it gets magically included via linux/smp.h). | ||
57 | */ | ||
58 | #ifdef CONFIG_X86 | ||
59 | #include <asm/apic.h> | ||
60 | #endif | ||
61 | |||
62 | #include <asm/io.h> | 54 | #include <asm/io.h> |
63 | #include <asm/uaccess.h> | 55 | #include <asm/uaccess.h> |
64 | 56 | ||
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c index bb0e0da39fb1..d80dd84e5bfd 100644 --- a/drivers/acpi/scan.c +++ b/drivers/acpi/scan.c | |||
@@ -1068,7 +1068,9 @@ acpi_add_single_object(struct acpi_device **child, | |||
1068 | } | 1068 | } |
1069 | break; | 1069 | break; |
1070 | default: | 1070 | default: |
1071 | STRUCT_TO_INT(device->status) = 0x0F; | 1071 | STRUCT_TO_INT(device->status) = |
1072 | ACPI_STA_DEVICE_PRESENT | ACPI_STA_DEVICE_ENABLED | | ||
1073 | ACPI_STA_DEVICE_UI | ACPI_STA_DEVICE_FUNCTIONING; | ||
1072 | break; | 1074 | break; |
1073 | } | 1075 | } |
1074 | 1076 | ||
diff --git a/drivers/acpi/sleep/proc.c b/drivers/acpi/sleep/proc.c index ccc11b33d89c..2d912b71e543 100644 --- a/drivers/acpi/sleep/proc.c +++ b/drivers/acpi/sleep/proc.c | |||
@@ -350,21 +350,31 @@ acpi_system_wakeup_device_seq_show(struct seq_file *seq, void *offset) | |||
350 | { | 350 | { |
351 | struct list_head *node, *next; | 351 | struct list_head *node, *next; |
352 | 352 | ||
353 | seq_printf(seq, "Device Sleep state Status\n"); | 353 | seq_printf(seq, "Device\tS-state\t Status Sysfs node\n"); |
354 | 354 | ||
355 | spin_lock(&acpi_device_lock); | 355 | spin_lock(&acpi_device_lock); |
356 | list_for_each_safe(node, next, &acpi_wakeup_device_list) { | 356 | list_for_each_safe(node, next, &acpi_wakeup_device_list) { |
357 | struct acpi_device *dev = | 357 | struct acpi_device *dev = |
358 | container_of(node, struct acpi_device, wakeup_list); | 358 | container_of(node, struct acpi_device, wakeup_list); |
359 | struct device *ldev; | ||
359 | 360 | ||
360 | if (!dev->wakeup.flags.valid) | 361 | if (!dev->wakeup.flags.valid) |
361 | continue; | 362 | continue; |
362 | spin_unlock(&acpi_device_lock); | 363 | spin_unlock(&acpi_device_lock); |
363 | seq_printf(seq, "%4s %4d %s%8s\n", | 364 | |
365 | ldev = acpi_get_physical_device(dev->handle); | ||
366 | seq_printf(seq, "%s\t S%d\t%c%-8s ", | ||
364 | dev->pnp.bus_id, | 367 | dev->pnp.bus_id, |
365 | (u32) dev->wakeup.sleep_state, | 368 | (u32) dev->wakeup.sleep_state, |
366 | dev->wakeup.flags.run_wake ? "*" : "", | 369 | dev->wakeup.flags.run_wake ? '*' : ' ', |
367 | dev->wakeup.state.enabled ? "enabled" : "disabled"); | 370 | dev->wakeup.state.enabled ? "enabled" : "disabled"); |
371 | if (ldev) | ||
372 | seq_printf(seq, "%s:%s", | ||
373 | ldev->bus ? ldev->bus->name : "no-bus", | ||
374 | ldev->bus_id); | ||
375 | seq_printf(seq, "\n"); | ||
376 | put_device(ldev); | ||
377 | |||
368 | spin_lock(&acpi_device_lock); | 378 | spin_lock(&acpi_device_lock); |
369 | } | 379 | } |
370 | spin_unlock(&acpi_device_lock); | 380 | spin_unlock(&acpi_device_lock); |
diff --git a/drivers/clocksource/acpi_pm.c b/drivers/clocksource/acpi_pm.c index 5ac309ee7f05..5cfcff532545 100644 --- a/drivers/clocksource/acpi_pm.c +++ b/drivers/clocksource/acpi_pm.c | |||
@@ -26,7 +26,7 @@ | |||
26 | /* | 26 | /* |
27 | * The I/O port the PMTMR resides at. | 27 | * The I/O port the PMTMR resides at. |
28 | * The location is detected during setup_arch(), | 28 | * The location is detected during setup_arch(), |
29 | * in arch/i386/acpi/boot.c | 29 | * in arch/i386/kernel/acpi/boot.c |
30 | */ | 30 | */ |
31 | u32 pmtmr_ioport __read_mostly; | 31 | u32 pmtmr_ioport __read_mostly; |
32 | 32 | ||
diff --git a/drivers/pci/pci-acpi.c b/drivers/pci/pci-acpi.c index a064f36a0805..b5ac810404c0 100644 --- a/drivers/pci/pci-acpi.c +++ b/drivers/pci/pci-acpi.c | |||
@@ -317,6 +317,10 @@ static int __init acpi_pci_init(void) | |||
317 | { | 317 | { |
318 | int ret; | 318 | int ret; |
319 | 319 | ||
320 | if (acpi_gbl_FADT.boot_flags & BAF_MSI_NOT_SUPPORTED) { | ||
321 | printk(KERN_INFO"ACPI FADT declares the system doesn't support MSI, so disable it\n"); | ||
322 | pci_no_msi(); | ||
323 | } | ||
320 | ret = register_acpi_bus_type(&acpi_pci_bus); | 324 | ret = register_acpi_bus_type(&acpi_pci_bus); |
321 | if (ret) | 325 | if (ret) |
322 | return 0; | 326 | return 0; |
diff --git a/include/acpi/actbl.h b/include/acpi/actbl.h index 09469e7db6a5..955adfb8d64c 100644 --- a/include/acpi/actbl.h +++ b/include/acpi/actbl.h | |||
@@ -276,6 +276,7 @@ enum acpi_prefered_pm_profiles { | |||
276 | 276 | ||
277 | #define BAF_LEGACY_DEVICES 0x0001 | 277 | #define BAF_LEGACY_DEVICES 0x0001 |
278 | #define BAF_8042_KEYBOARD_CONTROLLER 0x0002 | 278 | #define BAF_8042_KEYBOARD_CONTROLLER 0x0002 |
279 | #define BAF_MSI_NOT_SUPPORTED 0x0008 | ||
279 | 280 | ||
280 | #define FADT2_REVISION_ID 3 | 281 | #define FADT2_REVISION_ID 3 |
281 | #define FADT2_MINUS_REVISION_ID 2 | 282 | #define FADT2_MINUS_REVISION_ID 2 |