diff options
| author | Len Brown <len.brown@intel.com> | 2007-04-28 23:12:03 -0400 |
|---|---|---|
| committer | Len Brown <len.brown@intel.com> | 2007-04-28 23:12:03 -0400 |
| commit | fb16596997ded3e70d308bec58e32c1e2c5cf9b0 (patch) | |
| tree | 28939b49c26e51d2c22047ef2e07f4b1d6352bbb | |
| parent | f188291aec9b17ef7cec01db66b9cdb6fae26372 (diff) | |
| parent | afd3810d9b6b0d446a34e1d4e94f0cc020b00a14 (diff) | |
Pull misc-for-upstream into release branch
| -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 |
