Merge branch 'misc' into release
This commit is contained in:
commit
3e0fe36483
|
@ -0,0 +1,148 @@
|
|||
ACPI Debug Output
|
||||
|
||||
|
||||
The ACPI CA, the Linux ACPI core, and some ACPI drivers can generate debug
|
||||
output. This document describes how to use this facility.
|
||||
|
||||
Compile-time configuration
|
||||
--------------------------
|
||||
|
||||
ACPI debug output is globally enabled by CONFIG_ACPI_DEBUG. If this config
|
||||
option is turned off, the debug messages are not even built into the
|
||||
kernel.
|
||||
|
||||
Boot- and run-time configuration
|
||||
--------------------------------
|
||||
|
||||
When CONFIG_ACPI_DEBUG=y, you can select the component and level of messages
|
||||
you're interested in. At boot-time, use the acpi.debug_layer and
|
||||
acpi.debug_level kernel command line options. After boot, you can use the
|
||||
debug_layer and debug_level files in /sys/module/acpi/parameters/ to control
|
||||
the debug messages.
|
||||
|
||||
debug_layer (component)
|
||||
-----------------------
|
||||
|
||||
The "debug_layer" is a mask that selects components of interest, e.g., a
|
||||
specific driver or part of the ACPI interpreter. To build the debug_layer
|
||||
bitmask, look for the "#define _COMPONENT" in an ACPI source file.
|
||||
|
||||
You can set the debug_layer mask at boot-time using the acpi.debug_layer
|
||||
command line argument, and you can change it after boot by writing values
|
||||
to /sys/module/acpi/parameters/debug_layer.
|
||||
|
||||
The possible components are defined in include/acpi/acoutput.h and
|
||||
include/acpi/acpi_drivers.h. Reading /sys/module/acpi/parameters/debug_layer
|
||||
shows the supported mask values, currently these:
|
||||
|
||||
ACPI_UTILITIES 0x00000001
|
||||
ACPI_HARDWARE 0x00000002
|
||||
ACPI_EVENTS 0x00000004
|
||||
ACPI_TABLES 0x00000008
|
||||
ACPI_NAMESPACE 0x00000010
|
||||
ACPI_PARSER 0x00000020
|
||||
ACPI_DISPATCHER 0x00000040
|
||||
ACPI_EXECUTER 0x00000080
|
||||
ACPI_RESOURCES 0x00000100
|
||||
ACPI_CA_DEBUGGER 0x00000200
|
||||
ACPI_OS_SERVICES 0x00000400
|
||||
ACPI_CA_DISASSEMBLER 0x00000800
|
||||
ACPI_COMPILER 0x00001000
|
||||
ACPI_TOOLS 0x00002000
|
||||
ACPI_BUS_COMPONENT 0x00010000
|
||||
ACPI_AC_COMPONENT 0x00020000
|
||||
ACPI_BATTERY_COMPONENT 0x00040000
|
||||
ACPI_BUTTON_COMPONENT 0x00080000
|
||||
ACPI_SBS_COMPONENT 0x00100000
|
||||
ACPI_FAN_COMPONENT 0x00200000
|
||||
ACPI_PCI_COMPONENT 0x00400000
|
||||
ACPI_POWER_COMPONENT 0x00800000
|
||||
ACPI_CONTAINER_COMPONENT 0x01000000
|
||||
ACPI_SYSTEM_COMPONENT 0x02000000
|
||||
ACPI_THERMAL_COMPONENT 0x04000000
|
||||
ACPI_MEMORY_DEVICE_COMPONENT 0x08000000
|
||||
ACPI_VIDEO_COMPONENT 0x10000000
|
||||
ACPI_PROCESSOR_COMPONENT 0x20000000
|
||||
|
||||
debug_level
|
||||
-----------
|
||||
|
||||
The "debug_level" is a mask that selects different types of messages, e.g.,
|
||||
those related to initialization, method execution, informational messages, etc.
|
||||
To build debug_level, look at the level specified in an ACPI_DEBUG_PRINT()
|
||||
statement.
|
||||
|
||||
The ACPI interpreter uses several different levels, but the Linux
|
||||
ACPI core and ACPI drivers generally only use ACPI_LV_INFO.
|
||||
|
||||
You can set the debug_level mask at boot-time using the acpi.debug_level
|
||||
command line argument, and you can change it after boot by writing values
|
||||
to /sys/module/acpi/parameters/debug_level.
|
||||
|
||||
The possible levels are defined in include/acpi/acoutput.h. Reading
|
||||
/sys/module/acpi/parameters/debug_level shows the supported mask values,
|
||||
currently these:
|
||||
|
||||
ACPI_LV_INIT 0x00000001
|
||||
ACPI_LV_DEBUG_OBJECT 0x00000002
|
||||
ACPI_LV_INFO 0x00000004
|
||||
ACPI_LV_INIT_NAMES 0x00000020
|
||||
ACPI_LV_PARSE 0x00000040
|
||||
ACPI_LV_LOAD 0x00000080
|
||||
ACPI_LV_DISPATCH 0x00000100
|
||||
ACPI_LV_EXEC 0x00000200
|
||||
ACPI_LV_NAMES 0x00000400
|
||||
ACPI_LV_OPREGION 0x00000800
|
||||
ACPI_LV_BFIELD 0x00001000
|
||||
ACPI_LV_TABLES 0x00002000
|
||||
ACPI_LV_VALUES 0x00004000
|
||||
ACPI_LV_OBJECTS 0x00008000
|
||||
ACPI_LV_RESOURCES 0x00010000
|
||||
ACPI_LV_USER_REQUESTS 0x00020000
|
||||
ACPI_LV_PACKAGE 0x00040000
|
||||
ACPI_LV_ALLOCATIONS 0x00100000
|
||||
ACPI_LV_FUNCTIONS 0x00200000
|
||||
ACPI_LV_OPTIMIZATIONS 0x00400000
|
||||
ACPI_LV_MUTEX 0x01000000
|
||||
ACPI_LV_THREADS 0x02000000
|
||||
ACPI_LV_IO 0x04000000
|
||||
ACPI_LV_INTERRUPTS 0x08000000
|
||||
ACPI_LV_AML_DISASSEMBLE 0x10000000
|
||||
ACPI_LV_VERBOSE_INFO 0x20000000
|
||||
ACPI_LV_FULL_TABLES 0x40000000
|
||||
ACPI_LV_EVENTS 0x80000000
|
||||
|
||||
Examples
|
||||
--------
|
||||
|
||||
For example, drivers/acpi/bus.c contains this:
|
||||
|
||||
#define _COMPONENT ACPI_BUS_COMPONENT
|
||||
...
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Device insertion detected\n"));
|
||||
|
||||
To turn on this message, set the ACPI_BUS_COMPONENT bit in acpi.debug_layer
|
||||
and the ACPI_LV_INFO bit in acpi.debug_level. (The ACPI_DEBUG_PRINT
|
||||
statement uses ACPI_DB_INFO, which is macro based on the ACPI_LV_INFO
|
||||
definition.)
|
||||
|
||||
Enable all AML "Debug" output (stores to the Debug object while interpreting
|
||||
AML) during boot:
|
||||
|
||||
acpi.debug_layer=0xffffffff acpi.debug_level=0x2
|
||||
|
||||
Enable PCI and PCI interrupt routing debug messages:
|
||||
|
||||
acpi.debug_layer=0x400000 acpi.debug_level=0x4
|
||||
|
||||
Enable all ACPI hardware-related messages:
|
||||
|
||||
acpi.debug_layer=0x2 acpi.debug_level=0xffffffff
|
||||
|
||||
Enable all ACPI_DB_INFO messages after boot:
|
||||
|
||||
# echo 0x4 > /sys/module/acpi/parameters/debug_level
|
||||
|
||||
Show all valid component values:
|
||||
|
||||
# cat /sys/module/acpi/parameters/debug_layer
|
|
@ -198,59 +198,30 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||
that require a timer override, but don't have
|
||||
HPET
|
||||
|
||||
acpi.debug_layer= [HW,ACPI]
|
||||
acpi.debug_layer= [HW,ACPI,ACPI_DEBUG]
|
||||
acpi.debug_level= [HW,ACPI,ACPI_DEBUG]
|
||||
Format: <int>
|
||||
Each bit of the <int> indicates an ACPI debug layer,
|
||||
1: enable, 0: disable. It is useful for boot time
|
||||
debugging. After system has booted up, it can be set
|
||||
via /sys/module/acpi/parameters/debug_layer.
|
||||
CONFIG_ACPI_DEBUG must be enabled for this to produce any output.
|
||||
Available bits (add the numbers together) to enable debug output
|
||||
for specific parts of the ACPI subsystem:
|
||||
0x01 utilities 0x02 hardware 0x04 events 0x08 tables
|
||||
0x10 namespace 0x20 parser 0x40 dispatcher
|
||||
0x80 executer 0x100 resources 0x200 acpica debugger
|
||||
0x400 os services 0x800 acpica disassembler.
|
||||
The number can be in decimal or prefixed with 0x in hex.
|
||||
Warning: Many of these options can produce a lot of
|
||||
output and make your system unusable. Be very careful.
|
||||
CONFIG_ACPI_DEBUG must be enabled to produce any ACPI
|
||||
debug output. Bits in debug_layer correspond to a
|
||||
_COMPONENT in an ACPI source file, e.g.,
|
||||
#define _COMPONENT ACPI_PCI_COMPONENT
|
||||
Bits in debug_level correspond to a level in
|
||||
ACPI_DEBUG_PRINT statements, e.g.,
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_INFO, ...
|
||||
See Documentation/acpi/debug.txt for more information
|
||||
about debug layers and levels.
|
||||
|
||||
acpi.debug_level= [HW,ACPI]
|
||||
Format: <int>
|
||||
Each bit of the <int> indicates an ACPI debug level,
|
||||
which corresponds to the level in an ACPI_DEBUG_PRINT
|
||||
statement. After system has booted up, this mask
|
||||
can be set via /sys/module/acpi/parameters/debug_level.
|
||||
Enable AML "Debug" output, i.e., stores to the Debug
|
||||
object while interpreting AML:
|
||||
acpi.debug_layer=0xffffffff acpi.debug_level=0x2
|
||||
Enable PCI/PCI interrupt routing info messages:
|
||||
acpi.debug_layer=0x400000 acpi.debug_level=0x4
|
||||
Enable all messages related to ACPI hardware:
|
||||
acpi.debug_layer=0x2 acpi.debug_level=0xffffffff
|
||||
|
||||
CONFIG_ACPI_DEBUG must be enabled for this to produce
|
||||
any output. The number can be in decimal or prefixed
|
||||
with 0x in hex. Some of these options produce so much
|
||||
output that the system is unusable.
|
||||
|
||||
The following global components are defined by the
|
||||
ACPI CA:
|
||||
0x01 error
|
||||
0x02 warn
|
||||
0x04 init
|
||||
0x08 debug object
|
||||
0x10 info
|
||||
0x20 init names
|
||||
0x40 parse
|
||||
0x80 load
|
||||
0x100 dispatch
|
||||
0x200 execute
|
||||
0x400 names
|
||||
0x800 operation region
|
||||
0x1000 bfield
|
||||
0x2000 tables
|
||||
0x4000 values
|
||||
0x8000 objects
|
||||
0x10000 resources
|
||||
0x20000 user requests
|
||||
0x40000 package
|
||||
The number can be in decimal or prefixed with 0x in hex.
|
||||
Warning: Many of these options can produce a lot of
|
||||
output and make your system unusable. Be very careful.
|
||||
Some values produce so much output that the system is
|
||||
unusable. The "log_buf_len" parameter may be useful
|
||||
if you need to capture more output.
|
||||
|
||||
acpi.power_nocheck= [HW,ACPI]
|
||||
Format: 1/0 enable/disable the check of power state.
|
||||
|
|
11
MAINTAINERS
11
MAINTAINERS
|
@ -2185,6 +2185,13 @@ M: adaplas@gmail.com
|
|||
L: linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers)
|
||||
S: Maintained
|
||||
|
||||
INTEL MENLOW THERMAL DRIVER
|
||||
P: Sujith Thomas
|
||||
M: sujith.thomas@intel.com
|
||||
L: linux-acpi@vger.kernel.org
|
||||
W: http://www.lesswatts.org/projects/acpi/
|
||||
S: Supported
|
||||
|
||||
INTEL IA32 MICROCODE UPDATE SUPPORT
|
||||
P: Tigran Aivazian
|
||||
M: tigran@aivazian.fsnet.co.uk
|
||||
|
@ -3346,7 +3353,9 @@ S: Maintained
|
|||
|
||||
PNP SUPPORT
|
||||
P: Adam Belay
|
||||
M: ambx1@neo.rr.com
|
||||
M: abelay@mit.edu
|
||||
P: Bjorn Helgaas
|
||||
M: bjorn.helgaas@hp.com
|
||||
S: Maintained
|
||||
|
||||
PNXxxxx I2C DRIVER
|
||||
|
|
|
@ -113,7 +113,6 @@ static inline void acpi_disable_pci(void)
|
|||
acpi_pci_disabled = 1;
|
||||
acpi_noirq_set();
|
||||
}
|
||||
extern int acpi_irq_balance_set(char *str);
|
||||
|
||||
/* routines for saving/restoring kernel state */
|
||||
extern int acpi_save_state_mem(void);
|
||||
|
|
|
@ -1343,7 +1343,6 @@ static void __init acpi_process_madt(void)
|
|||
error = acpi_parse_madt_ioapic_entries();
|
||||
if (!error) {
|
||||
acpi_irq_model = ACPI_IRQ_MODEL_IOAPIC;
|
||||
acpi_irq_balance_set(NULL);
|
||||
acpi_ioapic = 1;
|
||||
|
||||
smp_found_config = 1;
|
||||
|
|
|
@ -312,9 +312,13 @@ config ACPI_DEBUG
|
|||
bool "Debug Statements"
|
||||
default n
|
||||
help
|
||||
The ACPI driver can optionally report errors with a great deal
|
||||
of verbosity. Saying Y enables these statements. This will increase
|
||||
your kernel size by around 50K.
|
||||
The ACPI subsystem can produce debug output. Saying Y enables this
|
||||
output and increases the kernel size by around 50K.
|
||||
|
||||
Use the acpi.debug_layer and acpi.debug_level kernel command-line
|
||||
parameters documented in Documentation/acpi/debug.txt and
|
||||
Documentation/kernel-parameters.txt to control the type and
|
||||
amount of debug output.
|
||||
|
||||
config ACPI_DEBUG_FUNC_TRACE
|
||||
bool "Additionally enable ACPI function tracing"
|
||||
|
@ -324,14 +328,6 @@ config ACPI_DEBUG_FUNC_TRACE
|
|||
ACPI Debug Statements slow down ACPI processing. Function trace
|
||||
is about half of the penalty and is rarely useful.
|
||||
|
||||
config ACPI_EC
|
||||
bool
|
||||
default y
|
||||
help
|
||||
This driver is required on some systems for the proper operation of
|
||||
the battery and thermal drivers. If you are compiling for a
|
||||
mobile system, say Y.
|
||||
|
||||
config ACPI_PCI_SLOT
|
||||
tristate "PCI slot detection driver"
|
||||
default n
|
||||
|
@ -341,10 +337,6 @@ config ACPI_PCI_SLOT
|
|||
help you correlate PCI bus addresses with the physical geography
|
||||
of your slots. If you are unsure, say N.
|
||||
|
||||
config ACPI_POWER
|
||||
bool
|
||||
default y
|
||||
|
||||
config ACPI_SYSTEM
|
||||
bool
|
||||
default y
|
||||
|
|
|
@ -39,7 +39,7 @@ obj-y += sleep/
|
|||
obj-y += bus.o glue.o
|
||||
obj-y += scan.o
|
||||
# Keep EC driver first. Initialization of others depend on it.
|
||||
obj-$(CONFIG_ACPI_EC) += ec.o
|
||||
obj-y += ec.o
|
||||
obj-$(CONFIG_ACPI_AC) += ac.o
|
||||
obj-$(CONFIG_ACPI_BATTERY) += battery.o
|
||||
obj-$(CONFIG_ACPI_BUTTON) += button.o
|
||||
|
@ -51,7 +51,7 @@ obj-$(CONFIG_ACPI_PCI_SLOT) += pci_slot.o
|
|||
obj-$(CONFIG_ACPI_PROCESSOR) += processor.o
|
||||
obj-$(CONFIG_ACPI_CONTAINER) += container.o
|
||||
obj-$(CONFIG_ACPI_THERMAL) += thermal.o
|
||||
obj-$(CONFIG_ACPI_POWER) += power.o
|
||||
obj-y += power.o
|
||||
obj-$(CONFIG_ACPI_SYSTEM) += system.o event.o
|
||||
obj-$(CONFIG_ACPI_DEBUG) += debug.o
|
||||
obj-$(CONFIG_ACPI_NUMA) += numa.o
|
||||
|
|
|
@ -37,7 +37,6 @@
|
|||
#include <acpi/acpi_bus.h>
|
||||
#include <acpi/acpi_drivers.h>
|
||||
|
||||
#define ACPI_AC_COMPONENT 0x00020000
|
||||
#define ACPI_AC_CLASS "ac_adapter"
|
||||
#define ACPI_AC_DEVICE_NAME "AC Adapter"
|
||||
#define ACPI_AC_FILE_STATE "state"
|
||||
|
|
|
@ -32,7 +32,6 @@
|
|||
#include <linux/memory_hotplug.h>
|
||||
#include <acpi/acpi_drivers.h>
|
||||
|
||||
#define ACPI_MEMORY_DEVICE_COMPONENT 0x08000000UL
|
||||
#define ACPI_MEMORY_DEVICE_CLASS "memory"
|
||||
#define ACPI_MEMORY_DEVICE_HID "PNP0C80"
|
||||
#define ACPI_MEMORY_DEVICE_NAME "Hotplug Mem Device"
|
||||
|
|
|
@ -46,7 +46,6 @@
|
|||
|
||||
#define ACPI_BATTERY_VALUE_UNKNOWN 0xFFFFFFFF
|
||||
|
||||
#define ACPI_BATTERY_COMPONENT 0x00040000
|
||||
#define ACPI_BATTERY_CLASS "battery"
|
||||
#define ACPI_BATTERY_DEVICE_NAME "Battery"
|
||||
#define ACPI_BATTERY_NOTIFY_STATUS 0x80
|
||||
|
|
|
@ -688,6 +688,14 @@ void __init acpi_early_init(void)
|
|||
if (acpi_disabled)
|
||||
return;
|
||||
|
||||
/*
|
||||
* ACPI CA initializes acpi_dbg_level to non-zero, which means
|
||||
* we get debug output merely by turning on CONFIG_ACPI_DEBUG.
|
||||
* Turn it off so we don't get output unless the user specifies
|
||||
* acpi.debug_level.
|
||||
*/
|
||||
acpi_dbg_level = 0;
|
||||
|
||||
printk(KERN_INFO PREFIX "Core revision %08x\n", ACPI_CA_VERSION);
|
||||
|
||||
/* enable workarounds, unless strict ACPI spec. compliance */
|
||||
|
@ -774,7 +782,7 @@ static int __init acpi_bus_init(void)
|
|||
"Unable to initialize ACPI OS objects\n");
|
||||
goto error1;
|
||||
}
|
||||
#ifdef CONFIG_ACPI_EC
|
||||
|
||||
/*
|
||||
* ACPI 2.0 requires the EC driver to be loaded and work before
|
||||
* the EC device is found in the namespace (i.e. before acpi_initialize_objects()
|
||||
|
@ -785,7 +793,6 @@ static int __init acpi_bus_init(void)
|
|||
*/
|
||||
status = acpi_ec_ecdt_probe();
|
||||
/* Ignore result. Not having an ECDT is not fatal. */
|
||||
#endif
|
||||
|
||||
status = acpi_initialize_objects(ACPI_FULL_INITIALIZATION);
|
||||
if (ACPI_FAILURE(status)) {
|
||||
|
|
|
@ -33,7 +33,6 @@
|
|||
#include <acpi/acpi_bus.h>
|
||||
#include <acpi/acpi_drivers.h>
|
||||
|
||||
#define ACPI_BUTTON_COMPONENT 0x00080000
|
||||
#define ACPI_BUTTON_CLASS "button"
|
||||
#define ACPI_BUTTON_FILE_INFO "info"
|
||||
#define ACPI_BUTTON_FILE_STATE "state"
|
||||
|
|
|
@ -34,7 +34,6 @@
|
|||
ACPI_MODULE_NAME("cm_sbs");
|
||||
#define ACPI_AC_CLASS "ac_adapter"
|
||||
#define ACPI_BATTERY_CLASS "battery"
|
||||
#define ACPI_SBS_COMPONENT 0x00080000
|
||||
#define _COMPONENT ACPI_SBS_COMPONENT
|
||||
static struct proc_dir_entry *acpi_ac_dir;
|
||||
static struct proc_dir_entry *acpi_battery_dir;
|
||||
|
@ -105,9 +104,3 @@ void acpi_unlock_battery_dir(struct proc_dir_entry *acpi_battery_dir_param)
|
|||
return;
|
||||
}
|
||||
EXPORT_SYMBOL(acpi_unlock_battery_dir);
|
||||
|
||||
static int __init acpi_cm_sbs_init(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
subsys_initcall(acpi_cm_sbs_init);
|
||||
|
|
|
@ -41,7 +41,6 @@
|
|||
#define INSTALL_NOTIFY_HANDLER 1
|
||||
#define UNINSTALL_NOTIFY_HANDLER 2
|
||||
|
||||
#define ACPI_CONTAINER_COMPONENT 0x01000000
|
||||
#define _COMPONENT ACPI_CONTAINER_COMPONENT
|
||||
ACPI_MODULE_NAME("container");
|
||||
|
||||
|
|
|
@ -44,6 +44,21 @@ static const struct acpi_dlayer acpi_debug_layers[] = {
|
|||
ACPI_DEBUG_INIT(ACPI_CA_DISASSEMBLER),
|
||||
ACPI_DEBUG_INIT(ACPI_COMPILER),
|
||||
ACPI_DEBUG_INIT(ACPI_TOOLS),
|
||||
|
||||
ACPI_DEBUG_INIT(ACPI_BUS_COMPONENT),
|
||||
ACPI_DEBUG_INIT(ACPI_AC_COMPONENT),
|
||||
ACPI_DEBUG_INIT(ACPI_BATTERY_COMPONENT),
|
||||
ACPI_DEBUG_INIT(ACPI_BUTTON_COMPONENT),
|
||||
ACPI_DEBUG_INIT(ACPI_SBS_COMPONENT),
|
||||
ACPI_DEBUG_INIT(ACPI_FAN_COMPONENT),
|
||||
ACPI_DEBUG_INIT(ACPI_PCI_COMPONENT),
|
||||
ACPI_DEBUG_INIT(ACPI_POWER_COMPONENT),
|
||||
ACPI_DEBUG_INIT(ACPI_CONTAINER_COMPONENT),
|
||||
ACPI_DEBUG_INIT(ACPI_SYSTEM_COMPONENT),
|
||||
ACPI_DEBUG_INIT(ACPI_THERMAL_COMPONENT),
|
||||
ACPI_DEBUG_INIT(ACPI_MEMORY_DEVICE_COMPONENT),
|
||||
ACPI_DEBUG_INIT(ACPI_VIDEO_COMPONENT),
|
||||
ACPI_DEBUG_INIT(ACPI_PROCESSOR_COMPONENT),
|
||||
};
|
||||
|
||||
static const struct acpi_dlevel acpi_debug_levels[] = {
|
||||
|
|
|
@ -289,8 +289,6 @@ acpi_status acpi_ev_disable_gpe(struct acpi_gpe_event_info *gpe_event_info)
|
|||
*/
|
||||
status = acpi_hw_low_disable_gpe(gpe_event_info);
|
||||
return_ACPI_STATUS(status);
|
||||
|
||||
return_ACPI_STATUS(AE_OK);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
|
|
|
@ -34,7 +34,6 @@
|
|||
#include <acpi/acpi_bus.h>
|
||||
#include <acpi/acpi_drivers.h>
|
||||
|
||||
#define ACPI_FAN_COMPONENT 0x00200000
|
||||
#define ACPI_FAN_CLASS "fan"
|
||||
#define ACPI_FAN_FILE_STATE "state"
|
||||
|
||||
|
|
|
@ -531,7 +531,7 @@ int __init acpi_irq_penalty_init(void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int acpi_irq_balance; /* 0: static, 1: balance */
|
||||
static int acpi_irq_balance = -1; /* 0: static, 1: balance */
|
||||
|
||||
static int acpi_pci_link_allocate(struct acpi_pci_link *link)
|
||||
{
|
||||
|
@ -950,10 +950,17 @@ device_initcall(irqrouter_init_sysfs);
|
|||
|
||||
static int __init acpi_pci_link_init(void)
|
||||
{
|
||||
|
||||
if (acpi_noirq)
|
||||
return 0;
|
||||
|
||||
if (acpi_irq_balance == -1) {
|
||||
/* no command line switch: enable balancing in IOAPIC mode */
|
||||
if (acpi_irq_model == ACPI_IRQ_MODEL_IOAPIC)
|
||||
acpi_irq_balance = 1;
|
||||
else
|
||||
acpi_irq_balance = 0;
|
||||
}
|
||||
|
||||
acpi_link.count = 0;
|
||||
INIT_LIST_HEAD(&acpi_link.entries);
|
||||
|
||||
|
|
|
@ -376,15 +376,9 @@ static int acpi_pci_root_remove(struct acpi_device *device, int type)
|
|||
|
||||
static int __init acpi_pci_root_init(void)
|
||||
{
|
||||
|
||||
if (acpi_pci_disabled)
|
||||
return 0;
|
||||
|
||||
/* DEBUG:
|
||||
acpi_dbg_layer = ACPI_PCI_COMPONENT;
|
||||
acpi_dbg_level = 0xFFFFFFFF;
|
||||
*/
|
||||
|
||||
if (acpi_bus_register_driver(&acpi_pci_root_driver) < 0)
|
||||
return -ENODEV;
|
||||
|
||||
|
|
|
@ -44,9 +44,8 @@
|
|||
#include <acpi/acpi_bus.h>
|
||||
#include <acpi/acpi_drivers.h>
|
||||
|
||||
#define _COMPONENT ACPI_POWER_COMPONENT
|
||||
#define _COMPONENT ACPI_POWER_COMPONENT
|
||||
ACPI_MODULE_NAME("power");
|
||||
#define ACPI_POWER_COMPONENT 0x00800000
|
||||
#define ACPI_POWER_CLASS "power_resource"
|
||||
#define ACPI_POWER_DEVICE_NAME "Power Resource"
|
||||
#define ACPI_POWER_FILE_INFO "info"
|
||||
|
|
|
@ -59,7 +59,6 @@
|
|||
#include <acpi/acpi_drivers.h>
|
||||
#include <acpi/processor.h>
|
||||
|
||||
#define ACPI_PROCESSOR_COMPONENT 0x01000000
|
||||
#define ACPI_PROCESSOR_CLASS "processor"
|
||||
#define ACPI_PROCESSOR_DEVICE_NAME "Processor"
|
||||
#define ACPI_PROCESSOR_FILE_INFO "info"
|
||||
|
|
|
@ -59,7 +59,6 @@
|
|||
#include <acpi/processor.h>
|
||||
#include <asm/processor.h>
|
||||
|
||||
#define ACPI_PROCESSOR_COMPONENT 0x01000000
|
||||
#define ACPI_PROCESSOR_CLASS "processor"
|
||||
#define _COMPONENT ACPI_PROCESSOR_COMPONENT
|
||||
ACPI_MODULE_NAME("processor_idle");
|
||||
|
|
|
@ -44,9 +44,9 @@
|
|||
#endif
|
||||
|
||||
#include <acpi/acpi_bus.h>
|
||||
#include <acpi/acpi_drivers.h>
|
||||
#include <acpi/processor.h>
|
||||
|
||||
#define ACPI_PROCESSOR_COMPONENT 0x01000000
|
||||
#define ACPI_PROCESSOR_CLASS "processor"
|
||||
#define ACPI_PROCESSOR_FILE_PERFORMANCE "performance"
|
||||
#define _COMPONENT ACPI_PROCESSOR_COMPONENT
|
||||
|
|
|
@ -40,7 +40,6 @@
|
|||
#include <acpi/processor.h>
|
||||
#include <acpi/acpi_drivers.h>
|
||||
|
||||
#define ACPI_PROCESSOR_COMPONENT 0x01000000
|
||||
#define ACPI_PROCESSOR_CLASS "processor"
|
||||
#define _COMPONENT ACPI_PROCESSOR_COMPONENT
|
||||
ACPI_MODULE_NAME("processor_thermal");
|
||||
|
|
|
@ -38,9 +38,9 @@
|
|||
#include <asm/uaccess.h>
|
||||
|
||||
#include <acpi/acpi_bus.h>
|
||||
#include <acpi/acpi_drivers.h>
|
||||
#include <acpi/processor.h>
|
||||
|
||||
#define ACPI_PROCESSOR_COMPONENT 0x01000000
|
||||
#define ACPI_PROCESSOR_CLASS "processor"
|
||||
#define _COMPONENT ACPI_PROCESSOR_COMPONENT
|
||||
ACPI_MODULE_NAME("processor_throttling");
|
||||
|
|
|
@ -15,28 +15,9 @@ void acpi_reboot(void)
|
|||
|
||||
rr = &acpi_gbl_FADT.reset_register;
|
||||
|
||||
/*
|
||||
* Is the ACPI reset register supported?
|
||||
*
|
||||
* According to ACPI 3.0, FADT.flags.RESET_REG_SUP indicates
|
||||
* whether the ACPI reset mechanism is supported.
|
||||
*
|
||||
* However, some boxes have this bit clear, yet a valid
|
||||
* ACPI_RESET_REG & RESET_VALUE, and ACPI reboot is the only
|
||||
* mechanism that works for them after S3.
|
||||
*
|
||||
* This suggests that other operating systems may not be checking
|
||||
* the RESET_REG_SUP bit, and are using other means to decide
|
||||
* whether to use the ACPI reboot mechanism or not.
|
||||
*
|
||||
* So when acpi reboot is requested,
|
||||
* only the reset_register is checked. If the following
|
||||
* conditions are met, it indicates that the reset register is supported.
|
||||
* a. reset_register is not zero
|
||||
* b. the access width is eight
|
||||
* c. the bit_offset is zero
|
||||
*/
|
||||
if (!(rr->address) || rr->bit_width != 8 || rr->bit_offset != 0)
|
||||
/* Is the reset register supported? */
|
||||
if (!(acpi_gbl_FADT.flags & ACPI_FADT_RESET_REGISTER) ||
|
||||
rr->bit_width != 8 || rr->bit_offset != 0)
|
||||
return;
|
||||
|
||||
reset_value = acpi_gbl_FADT.reset_value;
|
||||
|
|
|
@ -304,7 +304,7 @@ static void acpi_tb_convert_fadt(void)
|
|||
* The ACPI 1.0 reserved fields that will be zeroed are the bytes located at
|
||||
* offset 45, 55, 95, and the word located at offset 109, 110.
|
||||
*/
|
||||
if (acpi_gbl_FADT.header.revision < 3) {
|
||||
if (acpi_gbl_FADT.header.revision < FADT2_REVISION_ID) {
|
||||
acpi_gbl_FADT.preferred_profile = 0;
|
||||
acpi_gbl_FADT.pstate_control = 0;
|
||||
acpi_gbl_FADT.cst_control = 0;
|
||||
|
|
|
@ -47,7 +47,6 @@
|
|||
#include <acpi/acpi_bus.h>
|
||||
#include <acpi/acpi_drivers.h>
|
||||
|
||||
#define ACPI_THERMAL_COMPONENT 0x04000000
|
||||
#define ACPI_THERMAL_CLASS "thermal_zone"
|
||||
#define ACPI_THERMAL_DEVICE_NAME "Thermal Zone"
|
||||
#define ACPI_THERMAL_FILE_STATE "state"
|
||||
|
|
|
@ -41,7 +41,6 @@
|
|||
#include <acpi/acpi_bus.h>
|
||||
#include <acpi/acpi_drivers.h>
|
||||
|
||||
#define ACPI_VIDEO_COMPONENT 0x08000000
|
||||
#define ACPI_VIDEO_CLASS "video"
|
||||
#define ACPI_VIDEO_BUS_NAME "Video Bus"
|
||||
#define ACPI_VIDEO_DEVICE_NAME "Video Device"
|
||||
|
@ -2094,12 +2093,6 @@ static int __init acpi_video_init(void)
|
|||
{
|
||||
int result = 0;
|
||||
|
||||
|
||||
/*
|
||||
acpi_dbg_level = 0xFFFFFFFF;
|
||||
acpi_dbg_layer = 0x08000000;
|
||||
*/
|
||||
|
||||
acpi_video_dir = proc_mkdir(ACPI_VIDEO_CLASS, acpi_root_dir);
|
||||
if (!acpi_video_dir)
|
||||
return -ENODEV;
|
||||
|
|
|
@ -523,7 +523,7 @@ static int acpi_driver_registered;
|
|||
|
||||
static int sonypi_ec_write(u8 addr, u8 value)
|
||||
{
|
||||
#ifdef CONFIG_ACPI_EC
|
||||
#ifdef CONFIG_ACPI
|
||||
if (SONYPI_ACPI_ACTIVE)
|
||||
return ec_write(addr, value);
|
||||
#endif
|
||||
|
@ -539,7 +539,7 @@ static int sonypi_ec_write(u8 addr, u8 value)
|
|||
|
||||
static int sonypi_ec_read(u8 addr, u8 *value)
|
||||
{
|
||||
#ifdef CONFIG_ACPI_EC
|
||||
#ifdef CONFIG_ACPI
|
||||
if (SONYPI_ACPI_ACTIVE)
|
||||
return ec_read(addr, value);
|
||||
#endif
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
|
||||
menu "Memory power savings"
|
||||
depends on X86_64
|
||||
|
||||
config I7300_IDLE_IOAT_CHANNEL
|
||||
bool
|
||||
|
@ -7,7 +8,7 @@ config I7300_IDLE_IOAT_CHANNEL
|
|||
config I7300_IDLE
|
||||
tristate "Intel chipset idle memory power saving driver"
|
||||
select I7300_IDLE_IOAT_CHANNEL
|
||||
depends on X86_64 && EXPERIMENTAL
|
||||
depends on EXPERIMENTAL
|
||||
help
|
||||
Enable memory power savings when idle with certain Intel server
|
||||
chipsets. The chipset must have I/O AT support, such as the
|
||||
|
|
|
@ -230,7 +230,7 @@ config HP_WMI
|
|||
config MSI_LAPTOP
|
||||
tristate "MSI Laptop Extras"
|
||||
depends on X86
|
||||
depends on ACPI_EC
|
||||
depends on ACPI
|
||||
depends on BACKLIGHT_CLASS_DEVICE
|
||||
---help---
|
||||
This is a driver for laptops built by MSI (MICRO-STAR
|
||||
|
@ -260,7 +260,7 @@ config PANASONIC_LAPTOP
|
|||
config COMPAL_LAPTOP
|
||||
tristate "Compal Laptop Extras"
|
||||
depends on X86
|
||||
depends on ACPI_EC
|
||||
depends on ACPI
|
||||
depends on BACKLIGHT_CLASS_DEVICE
|
||||
---help---
|
||||
This is a driver for laptops built by Compal:
|
||||
|
|
|
@ -464,6 +464,14 @@ static int dmi_check_cb_s6410(const struct dmi_system_id *id)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int dmi_check_cb_s6420(const struct dmi_system_id *id)
|
||||
{
|
||||
dmi_check_cb_common(id);
|
||||
fujitsu->keycode1 = KEY_SCREENLOCK; /* "Lock" */
|
||||
fujitsu->keycode2 = KEY_HELP; /* "Mobility Center" */
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int dmi_check_cb_p8010(const struct dmi_system_id *id)
|
||||
{
|
||||
dmi_check_cb_common(id);
|
||||
|
@ -473,7 +481,7 @@ static int dmi_check_cb_p8010(const struct dmi_system_id *id)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct dmi_system_id __initdata fujitsu_dmi_table[] = {
|
||||
static struct dmi_system_id fujitsu_dmi_table[] = {
|
||||
{
|
||||
.ident = "Fujitsu Siemens S6410",
|
||||
.matches = {
|
||||
|
@ -481,6 +489,13 @@ static struct dmi_system_id __initdata fujitsu_dmi_table[] = {
|
|||
DMI_MATCH(DMI_PRODUCT_NAME, "LIFEBOOK S6410"),
|
||||
},
|
||||
.callback = dmi_check_cb_s6410},
|
||||
{
|
||||
.ident = "Fujitsu Siemens S6420",
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"),
|
||||
DMI_MATCH(DMI_PRODUCT_NAME, "LIFEBOOK S6420"),
|
||||
},
|
||||
.callback = dmi_check_cb_s6420},
|
||||
{
|
||||
.ident = "Fujitsu LifeBook P8010",
|
||||
.matches = {
|
||||
|
|
|
@ -52,6 +52,11 @@ MODULE_LICENSE("GPL");
|
|||
#define MEMORY_ARG_CUR_BANDWIDTH 1
|
||||
#define MEMORY_ARG_MAX_BANDWIDTH 0
|
||||
|
||||
/*
|
||||
* GTHS returning 'n' would mean that [0,n-1] states are supported
|
||||
* In that case max_cstate would be n-1
|
||||
* GTHS returning '0' would mean that no bandwidth control states are supported
|
||||
*/
|
||||
static int memory_get_int_max_bandwidth(struct thermal_cooling_device *cdev,
|
||||
unsigned long *max_state)
|
||||
{
|
||||
|
@ -71,6 +76,9 @@ static int memory_get_int_max_bandwidth(struct thermal_cooling_device *cdev,
|
|||
if (ACPI_FAILURE(status))
|
||||
return -EFAULT;
|
||||
|
||||
if (!value)
|
||||
return -EINVAL;
|
||||
|
||||
*max_state = value - 1;
|
||||
return 0;
|
||||
}
|
||||
|
@ -121,7 +129,7 @@ static int memory_set_cur_bandwidth(struct thermal_cooling_device *cdev,
|
|||
if (memory_get_int_max_bandwidth(cdev, &max_state))
|
||||
return -EFAULT;
|
||||
|
||||
if (max_state < 0 || state > max_state)
|
||||
if (state > max_state)
|
||||
return -EINVAL;
|
||||
|
||||
arg_list.count = 1;
|
||||
|
|
|
@ -31,8 +31,24 @@
|
|||
|
||||
#define ACPI_MAX_STRING 80
|
||||
|
||||
/*
|
||||
* Please update drivers/acpi/debug.c and Documentation/acpi/debug.txt
|
||||
* if you add to this list.
|
||||
*/
|
||||
#define ACPI_BUS_COMPONENT 0x00010000
|
||||
#define ACPI_AC_COMPONENT 0x00020000
|
||||
#define ACPI_BATTERY_COMPONENT 0x00040000
|
||||
#define ACPI_BUTTON_COMPONENT 0x00080000
|
||||
#define ACPI_SBS_COMPONENT 0x00100000
|
||||
#define ACPI_FAN_COMPONENT 0x00200000
|
||||
#define ACPI_PCI_COMPONENT 0x00400000
|
||||
#define ACPI_POWER_COMPONENT 0x00800000
|
||||
#define ACPI_CONTAINER_COMPONENT 0x01000000
|
||||
#define ACPI_SYSTEM_COMPONENT 0x02000000
|
||||
#define ACPI_THERMAL_COMPONENT 0x04000000
|
||||
#define ACPI_MEMORY_DEVICE_COMPONENT 0x08000000
|
||||
#define ACPI_VIDEO_COMPONENT 0x10000000
|
||||
#define ACPI_PROCESSOR_COMPONENT 0x20000000
|
||||
|
||||
/*
|
||||
* _HID definitions
|
||||
|
@ -54,7 +70,6 @@
|
|||
PCI
|
||||
-------------------------------------------------------------------------- */
|
||||
|
||||
#define ACPI_PCI_COMPONENT 0x00400000
|
||||
|
||||
/* ACPI PCI Interrupt Link (pci_link.c) */
|
||||
|
||||
|
@ -86,7 +101,6 @@ struct pci_bus *pci_acpi_scan_root(struct acpi_device *device, int domain,
|
|||
Power Resource
|
||||
-------------------------------------------------------------------------- */
|
||||
|
||||
#ifdef CONFIG_ACPI_POWER
|
||||
int acpi_device_sleep_wake(struct acpi_device *dev,
|
||||
int enable, int sleep_state, int dev_state);
|
||||
int acpi_enable_wakeup_device_power(struct acpi_device *dev, int sleep_state);
|
||||
|
@ -94,15 +108,12 @@ int acpi_disable_wakeup_device_power(struct acpi_device *dev);
|
|||
int acpi_power_get_inferred_state(struct acpi_device *device);
|
||||
int acpi_power_transition(struct acpi_device *device, int state);
|
||||
extern int acpi_power_nocheck;
|
||||
#endif
|
||||
|
||||
/* --------------------------------------------------------------------------
|
||||
Embedded Controller
|
||||
-------------------------------------------------------------------------- */
|
||||
#ifdef CONFIG_ACPI_EC
|
||||
int acpi_ec_ecdt_probe(void);
|
||||
int acpi_boot_ec_enable(void);
|
||||
#endif
|
||||
|
||||
/* --------------------------------------------------------------------------
|
||||
Processor
|
||||
|
|
|
@ -163,8 +163,6 @@ struct acpi_pci_driver {
|
|||
int acpi_pci_register_driver(struct acpi_pci_driver *driver);
|
||||
void acpi_pci_unregister_driver(struct acpi_pci_driver *driver);
|
||||
|
||||
#ifdef CONFIG_ACPI_EC
|
||||
|
||||
extern int ec_read(u8 addr, u8 *val);
|
||||
extern int ec_write(u8 addr, u8 val);
|
||||
extern int ec_transaction(u8 command,
|
||||
|
@ -172,8 +170,6 @@ extern int ec_transaction(u8 command,
|
|||
u8 *rdata, unsigned rdata_len,
|
||||
int force_poll);
|
||||
|
||||
#endif /*CONFIG_ACPI_EC*/
|
||||
|
||||
#if defined(CONFIG_ACPI_WMI) || defined(CONFIG_ACPI_WMI_MODULE)
|
||||
|
||||
typedef void (*wmi_notify_handler) (u32 value, void *context);
|
||||
|
|
Loading…
Reference in New Issue