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
|
that require a timer override, but don't have
|
||||||
HPET
|
HPET
|
||||||
|
|
||||||
acpi.debug_layer= [HW,ACPI]
|
acpi.debug_layer= [HW,ACPI,ACPI_DEBUG]
|
||||||
|
acpi.debug_level= [HW,ACPI,ACPI_DEBUG]
|
||||||
Format: <int>
|
Format: <int>
|
||||||
Each bit of the <int> indicates an ACPI debug layer,
|
CONFIG_ACPI_DEBUG must be enabled to produce any ACPI
|
||||||
1: enable, 0: disable. It is useful for boot time
|
debug output. Bits in debug_layer correspond to a
|
||||||
debugging. After system has booted up, it can be set
|
_COMPONENT in an ACPI source file, e.g.,
|
||||||
via /sys/module/acpi/parameters/debug_layer.
|
#define _COMPONENT ACPI_PCI_COMPONENT
|
||||||
CONFIG_ACPI_DEBUG must be enabled for this to produce any output.
|
Bits in debug_level correspond to a level in
|
||||||
Available bits (add the numbers together) to enable debug output
|
ACPI_DEBUG_PRINT statements, e.g.,
|
||||||
for specific parts of the ACPI subsystem:
|
ACPI_DEBUG_PRINT((ACPI_DB_INFO, ...
|
||||||
0x01 utilities 0x02 hardware 0x04 events 0x08 tables
|
See Documentation/acpi/debug.txt for more information
|
||||||
0x10 namespace 0x20 parser 0x40 dispatcher
|
about debug layers and levels.
|
||||||
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.
|
|
||||||
|
|
||||||
acpi.debug_level= [HW,ACPI]
|
Enable AML "Debug" output, i.e., stores to the Debug
|
||||||
Format: <int>
|
object while interpreting AML:
|
||||||
Each bit of the <int> indicates an ACPI debug level,
|
acpi.debug_layer=0xffffffff acpi.debug_level=0x2
|
||||||
which corresponds to the level in an ACPI_DEBUG_PRINT
|
Enable PCI/PCI interrupt routing info messages:
|
||||||
statement. After system has booted up, this mask
|
acpi.debug_layer=0x400000 acpi.debug_level=0x4
|
||||||
can be set via /sys/module/acpi/parameters/debug_level.
|
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
|
Some values produce so much output that the system is
|
||||||
any output. The number can be in decimal or prefixed
|
unusable. The "log_buf_len" parameter may be useful
|
||||||
with 0x in hex. Some of these options produce so much
|
if you need to capture more output.
|
||||||
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.
|
|
||||||
|
|
||||||
acpi.power_nocheck= [HW,ACPI]
|
acpi.power_nocheck= [HW,ACPI]
|
||||||
Format: 1/0 enable/disable the check of power state.
|
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)
|
L: linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers)
|
||||||
S: Maintained
|
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
|
INTEL IA32 MICROCODE UPDATE SUPPORT
|
||||||
P: Tigran Aivazian
|
P: Tigran Aivazian
|
||||||
M: tigran@aivazian.fsnet.co.uk
|
M: tigran@aivazian.fsnet.co.uk
|
||||||
|
@ -3346,7 +3353,9 @@ S: Maintained
|
||||||
|
|
||||||
PNP SUPPORT
|
PNP SUPPORT
|
||||||
P: Adam Belay
|
P: Adam Belay
|
||||||
M: ambx1@neo.rr.com
|
M: abelay@mit.edu
|
||||||
|
P: Bjorn Helgaas
|
||||||
|
M: bjorn.helgaas@hp.com
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
|
||||||
PNXxxxx I2C DRIVER
|
PNXxxxx I2C DRIVER
|
||||||
|
|
|
@ -113,7 +113,6 @@ static inline void acpi_disable_pci(void)
|
||||||
acpi_pci_disabled = 1;
|
acpi_pci_disabled = 1;
|
||||||
acpi_noirq_set();
|
acpi_noirq_set();
|
||||||
}
|
}
|
||||||
extern int acpi_irq_balance_set(char *str);
|
|
||||||
|
|
||||||
/* routines for saving/restoring kernel state */
|
/* routines for saving/restoring kernel state */
|
||||||
extern int acpi_save_state_mem(void);
|
extern int acpi_save_state_mem(void);
|
||||||
|
|
|
@ -1343,7 +1343,6 @@ static void __init acpi_process_madt(void)
|
||||||
error = acpi_parse_madt_ioapic_entries();
|
error = acpi_parse_madt_ioapic_entries();
|
||||||
if (!error) {
|
if (!error) {
|
||||||
acpi_irq_model = ACPI_IRQ_MODEL_IOAPIC;
|
acpi_irq_model = ACPI_IRQ_MODEL_IOAPIC;
|
||||||
acpi_irq_balance_set(NULL);
|
|
||||||
acpi_ioapic = 1;
|
acpi_ioapic = 1;
|
||||||
|
|
||||||
smp_found_config = 1;
|
smp_found_config = 1;
|
||||||
|
|
|
@ -312,9 +312,13 @@ config ACPI_DEBUG
|
||||||
bool "Debug Statements"
|
bool "Debug Statements"
|
||||||
default n
|
default n
|
||||||
help
|
help
|
||||||
The ACPI driver can optionally report errors with a great deal
|
The ACPI subsystem can produce debug output. Saying Y enables this
|
||||||
of verbosity. Saying Y enables these statements. This will increase
|
output and increases the kernel size by around 50K.
|
||||||
your 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
|
config ACPI_DEBUG_FUNC_TRACE
|
||||||
bool "Additionally enable ACPI function tracing"
|
bool "Additionally enable ACPI function tracing"
|
||||||
|
@ -324,14 +328,6 @@ config ACPI_DEBUG_FUNC_TRACE
|
||||||
ACPI Debug Statements slow down ACPI processing. Function trace
|
ACPI Debug Statements slow down ACPI processing. Function trace
|
||||||
is about half of the penalty and is rarely useful.
|
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
|
config ACPI_PCI_SLOT
|
||||||
tristate "PCI slot detection driver"
|
tristate "PCI slot detection driver"
|
||||||
default n
|
default n
|
||||||
|
@ -341,10 +337,6 @@ config ACPI_PCI_SLOT
|
||||||
help you correlate PCI bus addresses with the physical geography
|
help you correlate PCI bus addresses with the physical geography
|
||||||
of your slots. If you are unsure, say N.
|
of your slots. If you are unsure, say N.
|
||||||
|
|
||||||
config ACPI_POWER
|
|
||||||
bool
|
|
||||||
default y
|
|
||||||
|
|
||||||
config ACPI_SYSTEM
|
config ACPI_SYSTEM
|
||||||
bool
|
bool
|
||||||
default y
|
default y
|
||||||
|
|
|
@ -39,7 +39,7 @@ obj-y += sleep/
|
||||||
obj-y += bus.o glue.o
|
obj-y += bus.o glue.o
|
||||||
obj-y += scan.o
|
obj-y += scan.o
|
||||||
# Keep EC driver first. Initialization of others depend on it.
|
# 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_AC) += ac.o
|
||||||
obj-$(CONFIG_ACPI_BATTERY) += battery.o
|
obj-$(CONFIG_ACPI_BATTERY) += battery.o
|
||||||
obj-$(CONFIG_ACPI_BUTTON) += button.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_PROCESSOR) += processor.o
|
||||||
obj-$(CONFIG_ACPI_CONTAINER) += container.o
|
obj-$(CONFIG_ACPI_CONTAINER) += container.o
|
||||||
obj-$(CONFIG_ACPI_THERMAL) += thermal.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_SYSTEM) += system.o event.o
|
||||||
obj-$(CONFIG_ACPI_DEBUG) += debug.o
|
obj-$(CONFIG_ACPI_DEBUG) += debug.o
|
||||||
obj-$(CONFIG_ACPI_NUMA) += numa.o
|
obj-$(CONFIG_ACPI_NUMA) += numa.o
|
||||||
|
|
|
@ -37,7 +37,6 @@
|
||||||
#include <acpi/acpi_bus.h>
|
#include <acpi/acpi_bus.h>
|
||||||
#include <acpi/acpi_drivers.h>
|
#include <acpi/acpi_drivers.h>
|
||||||
|
|
||||||
#define ACPI_AC_COMPONENT 0x00020000
|
|
||||||
#define ACPI_AC_CLASS "ac_adapter"
|
#define ACPI_AC_CLASS "ac_adapter"
|
||||||
#define ACPI_AC_DEVICE_NAME "AC Adapter"
|
#define ACPI_AC_DEVICE_NAME "AC Adapter"
|
||||||
#define ACPI_AC_FILE_STATE "state"
|
#define ACPI_AC_FILE_STATE "state"
|
||||||
|
|
|
@ -32,7 +32,6 @@
|
||||||
#include <linux/memory_hotplug.h>
|
#include <linux/memory_hotplug.h>
|
||||||
#include <acpi/acpi_drivers.h>
|
#include <acpi/acpi_drivers.h>
|
||||||
|
|
||||||
#define ACPI_MEMORY_DEVICE_COMPONENT 0x08000000UL
|
|
||||||
#define ACPI_MEMORY_DEVICE_CLASS "memory"
|
#define ACPI_MEMORY_DEVICE_CLASS "memory"
|
||||||
#define ACPI_MEMORY_DEVICE_HID "PNP0C80"
|
#define ACPI_MEMORY_DEVICE_HID "PNP0C80"
|
||||||
#define ACPI_MEMORY_DEVICE_NAME "Hotplug Mem Device"
|
#define ACPI_MEMORY_DEVICE_NAME "Hotplug Mem Device"
|
||||||
|
|
|
@ -46,7 +46,6 @@
|
||||||
|
|
||||||
#define ACPI_BATTERY_VALUE_UNKNOWN 0xFFFFFFFF
|
#define ACPI_BATTERY_VALUE_UNKNOWN 0xFFFFFFFF
|
||||||
|
|
||||||
#define ACPI_BATTERY_COMPONENT 0x00040000
|
|
||||||
#define ACPI_BATTERY_CLASS "battery"
|
#define ACPI_BATTERY_CLASS "battery"
|
||||||
#define ACPI_BATTERY_DEVICE_NAME "Battery"
|
#define ACPI_BATTERY_DEVICE_NAME "Battery"
|
||||||
#define ACPI_BATTERY_NOTIFY_STATUS 0x80
|
#define ACPI_BATTERY_NOTIFY_STATUS 0x80
|
||||||
|
|
|
@ -688,6 +688,14 @@ void __init acpi_early_init(void)
|
||||||
if (acpi_disabled)
|
if (acpi_disabled)
|
||||||
return;
|
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);
|
printk(KERN_INFO PREFIX "Core revision %08x\n", ACPI_CA_VERSION);
|
||||||
|
|
||||||
/* enable workarounds, unless strict ACPI spec. compliance */
|
/* 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");
|
"Unable to initialize ACPI OS objects\n");
|
||||||
goto error1;
|
goto error1;
|
||||||
}
|
}
|
||||||
#ifdef CONFIG_ACPI_EC
|
|
||||||
/*
|
/*
|
||||||
* ACPI 2.0 requires the EC driver to be loaded and work before
|
* 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()
|
* 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();
|
status = acpi_ec_ecdt_probe();
|
||||||
/* Ignore result. Not having an ECDT is not fatal. */
|
/* Ignore result. Not having an ECDT is not fatal. */
|
||||||
#endif
|
|
||||||
|
|
||||||
status = acpi_initialize_objects(ACPI_FULL_INITIALIZATION);
|
status = acpi_initialize_objects(ACPI_FULL_INITIALIZATION);
|
||||||
if (ACPI_FAILURE(status)) {
|
if (ACPI_FAILURE(status)) {
|
||||||
|
|
|
@ -33,7 +33,6 @@
|
||||||
#include <acpi/acpi_bus.h>
|
#include <acpi/acpi_bus.h>
|
||||||
#include <acpi/acpi_drivers.h>
|
#include <acpi/acpi_drivers.h>
|
||||||
|
|
||||||
#define ACPI_BUTTON_COMPONENT 0x00080000
|
|
||||||
#define ACPI_BUTTON_CLASS "button"
|
#define ACPI_BUTTON_CLASS "button"
|
||||||
#define ACPI_BUTTON_FILE_INFO "info"
|
#define ACPI_BUTTON_FILE_INFO "info"
|
||||||
#define ACPI_BUTTON_FILE_STATE "state"
|
#define ACPI_BUTTON_FILE_STATE "state"
|
||||||
|
|
|
@ -34,7 +34,6 @@
|
||||||
ACPI_MODULE_NAME("cm_sbs");
|
ACPI_MODULE_NAME("cm_sbs");
|
||||||
#define ACPI_AC_CLASS "ac_adapter"
|
#define ACPI_AC_CLASS "ac_adapter"
|
||||||
#define ACPI_BATTERY_CLASS "battery"
|
#define ACPI_BATTERY_CLASS "battery"
|
||||||
#define ACPI_SBS_COMPONENT 0x00080000
|
|
||||||
#define _COMPONENT ACPI_SBS_COMPONENT
|
#define _COMPONENT ACPI_SBS_COMPONENT
|
||||||
static struct proc_dir_entry *acpi_ac_dir;
|
static struct proc_dir_entry *acpi_ac_dir;
|
||||||
static struct proc_dir_entry *acpi_battery_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;
|
return;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(acpi_unlock_battery_dir);
|
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 INSTALL_NOTIFY_HANDLER 1
|
||||||
#define UNINSTALL_NOTIFY_HANDLER 2
|
#define UNINSTALL_NOTIFY_HANDLER 2
|
||||||
|
|
||||||
#define ACPI_CONTAINER_COMPONENT 0x01000000
|
|
||||||
#define _COMPONENT ACPI_CONTAINER_COMPONENT
|
#define _COMPONENT ACPI_CONTAINER_COMPONENT
|
||||||
ACPI_MODULE_NAME("container");
|
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_CA_DISASSEMBLER),
|
||||||
ACPI_DEBUG_INIT(ACPI_COMPILER),
|
ACPI_DEBUG_INIT(ACPI_COMPILER),
|
||||||
ACPI_DEBUG_INIT(ACPI_TOOLS),
|
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[] = {
|
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);
|
status = acpi_hw_low_disable_gpe(gpe_event_info);
|
||||||
return_ACPI_STATUS(status);
|
return_ACPI_STATUS(status);
|
||||||
|
|
||||||
return_ACPI_STATUS(AE_OK);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
|
|
|
@ -34,7 +34,6 @@
|
||||||
#include <acpi/acpi_bus.h>
|
#include <acpi/acpi_bus.h>
|
||||||
#include <acpi/acpi_drivers.h>
|
#include <acpi/acpi_drivers.h>
|
||||||
|
|
||||||
#define ACPI_FAN_COMPONENT 0x00200000
|
|
||||||
#define ACPI_FAN_CLASS "fan"
|
#define ACPI_FAN_CLASS "fan"
|
||||||
#define ACPI_FAN_FILE_STATE "state"
|
#define ACPI_FAN_FILE_STATE "state"
|
||||||
|
|
||||||
|
|
|
@ -531,7 +531,7 @@ int __init acpi_irq_penalty_init(void)
|
||||||
return 0;
|
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)
|
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)
|
static int __init acpi_pci_link_init(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (acpi_noirq)
|
if (acpi_noirq)
|
||||||
return 0;
|
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;
|
acpi_link.count = 0;
|
||||||
INIT_LIST_HEAD(&acpi_link.entries);
|
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)
|
static int __init acpi_pci_root_init(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (acpi_pci_disabled)
|
if (acpi_pci_disabled)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* DEBUG:
|
|
||||||
acpi_dbg_layer = ACPI_PCI_COMPONENT;
|
|
||||||
acpi_dbg_level = 0xFFFFFFFF;
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (acpi_bus_register_driver(&acpi_pci_root_driver) < 0)
|
if (acpi_bus_register_driver(&acpi_pci_root_driver) < 0)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
|
|
|
@ -44,9 +44,8 @@
|
||||||
#include <acpi/acpi_bus.h>
|
#include <acpi/acpi_bus.h>
|
||||||
#include <acpi/acpi_drivers.h>
|
#include <acpi/acpi_drivers.h>
|
||||||
|
|
||||||
#define _COMPONENT ACPI_POWER_COMPONENT
|
#define _COMPONENT ACPI_POWER_COMPONENT
|
||||||
ACPI_MODULE_NAME("power");
|
ACPI_MODULE_NAME("power");
|
||||||
#define ACPI_POWER_COMPONENT 0x00800000
|
|
||||||
#define ACPI_POWER_CLASS "power_resource"
|
#define ACPI_POWER_CLASS "power_resource"
|
||||||
#define ACPI_POWER_DEVICE_NAME "Power Resource"
|
#define ACPI_POWER_DEVICE_NAME "Power Resource"
|
||||||
#define ACPI_POWER_FILE_INFO "info"
|
#define ACPI_POWER_FILE_INFO "info"
|
||||||
|
|
|
@ -59,7 +59,6 @@
|
||||||
#include <acpi/acpi_drivers.h>
|
#include <acpi/acpi_drivers.h>
|
||||||
#include <acpi/processor.h>
|
#include <acpi/processor.h>
|
||||||
|
|
||||||
#define ACPI_PROCESSOR_COMPONENT 0x01000000
|
|
||||||
#define ACPI_PROCESSOR_CLASS "processor"
|
#define ACPI_PROCESSOR_CLASS "processor"
|
||||||
#define ACPI_PROCESSOR_DEVICE_NAME "Processor"
|
#define ACPI_PROCESSOR_DEVICE_NAME "Processor"
|
||||||
#define ACPI_PROCESSOR_FILE_INFO "info"
|
#define ACPI_PROCESSOR_FILE_INFO "info"
|
||||||
|
|
|
@ -59,7 +59,6 @@
|
||||||
#include <acpi/processor.h>
|
#include <acpi/processor.h>
|
||||||
#include <asm/processor.h>
|
#include <asm/processor.h>
|
||||||
|
|
||||||
#define ACPI_PROCESSOR_COMPONENT 0x01000000
|
|
||||||
#define ACPI_PROCESSOR_CLASS "processor"
|
#define ACPI_PROCESSOR_CLASS "processor"
|
||||||
#define _COMPONENT ACPI_PROCESSOR_COMPONENT
|
#define _COMPONENT ACPI_PROCESSOR_COMPONENT
|
||||||
ACPI_MODULE_NAME("processor_idle");
|
ACPI_MODULE_NAME("processor_idle");
|
||||||
|
|
|
@ -44,9 +44,9 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <acpi/acpi_bus.h>
|
#include <acpi/acpi_bus.h>
|
||||||
|
#include <acpi/acpi_drivers.h>
|
||||||
#include <acpi/processor.h>
|
#include <acpi/processor.h>
|
||||||
|
|
||||||
#define ACPI_PROCESSOR_COMPONENT 0x01000000
|
|
||||||
#define ACPI_PROCESSOR_CLASS "processor"
|
#define ACPI_PROCESSOR_CLASS "processor"
|
||||||
#define ACPI_PROCESSOR_FILE_PERFORMANCE "performance"
|
#define ACPI_PROCESSOR_FILE_PERFORMANCE "performance"
|
||||||
#define _COMPONENT ACPI_PROCESSOR_COMPONENT
|
#define _COMPONENT ACPI_PROCESSOR_COMPONENT
|
||||||
|
|
|
@ -40,7 +40,6 @@
|
||||||
#include <acpi/processor.h>
|
#include <acpi/processor.h>
|
||||||
#include <acpi/acpi_drivers.h>
|
#include <acpi/acpi_drivers.h>
|
||||||
|
|
||||||
#define ACPI_PROCESSOR_COMPONENT 0x01000000
|
|
||||||
#define ACPI_PROCESSOR_CLASS "processor"
|
#define ACPI_PROCESSOR_CLASS "processor"
|
||||||
#define _COMPONENT ACPI_PROCESSOR_COMPONENT
|
#define _COMPONENT ACPI_PROCESSOR_COMPONENT
|
||||||
ACPI_MODULE_NAME("processor_thermal");
|
ACPI_MODULE_NAME("processor_thermal");
|
||||||
|
|
|
@ -38,9 +38,9 @@
|
||||||
#include <asm/uaccess.h>
|
#include <asm/uaccess.h>
|
||||||
|
|
||||||
#include <acpi/acpi_bus.h>
|
#include <acpi/acpi_bus.h>
|
||||||
|
#include <acpi/acpi_drivers.h>
|
||||||
#include <acpi/processor.h>
|
#include <acpi/processor.h>
|
||||||
|
|
||||||
#define ACPI_PROCESSOR_COMPONENT 0x01000000
|
|
||||||
#define ACPI_PROCESSOR_CLASS "processor"
|
#define ACPI_PROCESSOR_CLASS "processor"
|
||||||
#define _COMPONENT ACPI_PROCESSOR_COMPONENT
|
#define _COMPONENT ACPI_PROCESSOR_COMPONENT
|
||||||
ACPI_MODULE_NAME("processor_throttling");
|
ACPI_MODULE_NAME("processor_throttling");
|
||||||
|
|
|
@ -15,28 +15,9 @@ void acpi_reboot(void)
|
||||||
|
|
||||||
rr = &acpi_gbl_FADT.reset_register;
|
rr = &acpi_gbl_FADT.reset_register;
|
||||||
|
|
||||||
/*
|
/* Is the reset register supported? */
|
||||||
* Is the ACPI reset register supported?
|
if (!(acpi_gbl_FADT.flags & ACPI_FADT_RESET_REGISTER) ||
|
||||||
*
|
rr->bit_width != 8 || rr->bit_offset != 0)
|
||||||
* 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)
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
reset_value = acpi_gbl_FADT.reset_value;
|
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
|
* 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.
|
* 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.preferred_profile = 0;
|
||||||
acpi_gbl_FADT.pstate_control = 0;
|
acpi_gbl_FADT.pstate_control = 0;
|
||||||
acpi_gbl_FADT.cst_control = 0;
|
acpi_gbl_FADT.cst_control = 0;
|
||||||
|
|
|
@ -47,7 +47,6 @@
|
||||||
#include <acpi/acpi_bus.h>
|
#include <acpi/acpi_bus.h>
|
||||||
#include <acpi/acpi_drivers.h>
|
#include <acpi/acpi_drivers.h>
|
||||||
|
|
||||||
#define ACPI_THERMAL_COMPONENT 0x04000000
|
|
||||||
#define ACPI_THERMAL_CLASS "thermal_zone"
|
#define ACPI_THERMAL_CLASS "thermal_zone"
|
||||||
#define ACPI_THERMAL_DEVICE_NAME "Thermal Zone"
|
#define ACPI_THERMAL_DEVICE_NAME "Thermal Zone"
|
||||||
#define ACPI_THERMAL_FILE_STATE "state"
|
#define ACPI_THERMAL_FILE_STATE "state"
|
||||||
|
|
|
@ -41,7 +41,6 @@
|
||||||
#include <acpi/acpi_bus.h>
|
#include <acpi/acpi_bus.h>
|
||||||
#include <acpi/acpi_drivers.h>
|
#include <acpi/acpi_drivers.h>
|
||||||
|
|
||||||
#define ACPI_VIDEO_COMPONENT 0x08000000
|
|
||||||
#define ACPI_VIDEO_CLASS "video"
|
#define ACPI_VIDEO_CLASS "video"
|
||||||
#define ACPI_VIDEO_BUS_NAME "Video Bus"
|
#define ACPI_VIDEO_BUS_NAME "Video Bus"
|
||||||
#define ACPI_VIDEO_DEVICE_NAME "Video Device"
|
#define ACPI_VIDEO_DEVICE_NAME "Video Device"
|
||||||
|
@ -2094,12 +2093,6 @@ static int __init acpi_video_init(void)
|
||||||
{
|
{
|
||||||
int result = 0;
|
int result = 0;
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
acpi_dbg_level = 0xFFFFFFFF;
|
|
||||||
acpi_dbg_layer = 0x08000000;
|
|
||||||
*/
|
|
||||||
|
|
||||||
acpi_video_dir = proc_mkdir(ACPI_VIDEO_CLASS, acpi_root_dir);
|
acpi_video_dir = proc_mkdir(ACPI_VIDEO_CLASS, acpi_root_dir);
|
||||||
if (!acpi_video_dir)
|
if (!acpi_video_dir)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
|
@ -523,7 +523,7 @@ static int acpi_driver_registered;
|
||||||
|
|
||||||
static int sonypi_ec_write(u8 addr, u8 value)
|
static int sonypi_ec_write(u8 addr, u8 value)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_ACPI_EC
|
#ifdef CONFIG_ACPI
|
||||||
if (SONYPI_ACPI_ACTIVE)
|
if (SONYPI_ACPI_ACTIVE)
|
||||||
return ec_write(addr, value);
|
return ec_write(addr, value);
|
||||||
#endif
|
#endif
|
||||||
|
@ -539,7 +539,7 @@ static int sonypi_ec_write(u8 addr, u8 value)
|
||||||
|
|
||||||
static int sonypi_ec_read(u8 addr, u8 *value)
|
static int sonypi_ec_read(u8 addr, u8 *value)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_ACPI_EC
|
#ifdef CONFIG_ACPI
|
||||||
if (SONYPI_ACPI_ACTIVE)
|
if (SONYPI_ACPI_ACTIVE)
|
||||||
return ec_read(addr, value);
|
return ec_read(addr, value);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
|
|
||||||
menu "Memory power savings"
|
menu "Memory power savings"
|
||||||
|
depends on X86_64
|
||||||
|
|
||||||
config I7300_IDLE_IOAT_CHANNEL
|
config I7300_IDLE_IOAT_CHANNEL
|
||||||
bool
|
bool
|
||||||
|
@ -7,7 +8,7 @@ config I7300_IDLE_IOAT_CHANNEL
|
||||||
config I7300_IDLE
|
config I7300_IDLE
|
||||||
tristate "Intel chipset idle memory power saving driver"
|
tristate "Intel chipset idle memory power saving driver"
|
||||||
select I7300_IDLE_IOAT_CHANNEL
|
select I7300_IDLE_IOAT_CHANNEL
|
||||||
depends on X86_64 && EXPERIMENTAL
|
depends on EXPERIMENTAL
|
||||||
help
|
help
|
||||||
Enable memory power savings when idle with certain Intel server
|
Enable memory power savings when idle with certain Intel server
|
||||||
chipsets. The chipset must have I/O AT support, such as the
|
chipsets. The chipset must have I/O AT support, such as the
|
||||||
|
|
|
@ -230,7 +230,7 @@ config HP_WMI
|
||||||
config MSI_LAPTOP
|
config MSI_LAPTOP
|
||||||
tristate "MSI Laptop Extras"
|
tristate "MSI Laptop Extras"
|
||||||
depends on X86
|
depends on X86
|
||||||
depends on ACPI_EC
|
depends on ACPI
|
||||||
depends on BACKLIGHT_CLASS_DEVICE
|
depends on BACKLIGHT_CLASS_DEVICE
|
||||||
---help---
|
---help---
|
||||||
This is a driver for laptops built by MSI (MICRO-STAR
|
This is a driver for laptops built by MSI (MICRO-STAR
|
||||||
|
@ -260,7 +260,7 @@ config PANASONIC_LAPTOP
|
||||||
config COMPAL_LAPTOP
|
config COMPAL_LAPTOP
|
||||||
tristate "Compal Laptop Extras"
|
tristate "Compal Laptop Extras"
|
||||||
depends on X86
|
depends on X86
|
||||||
depends on ACPI_EC
|
depends on ACPI
|
||||||
depends on BACKLIGHT_CLASS_DEVICE
|
depends on BACKLIGHT_CLASS_DEVICE
|
||||||
---help---
|
---help---
|
||||||
This is a driver for laptops built by Compal:
|
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;
|
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)
|
static int dmi_check_cb_p8010(const struct dmi_system_id *id)
|
||||||
{
|
{
|
||||||
dmi_check_cb_common(id);
|
dmi_check_cb_common(id);
|
||||||
|
@ -473,7 +481,7 @@ static int dmi_check_cb_p8010(const struct dmi_system_id *id)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct dmi_system_id __initdata fujitsu_dmi_table[] = {
|
static struct dmi_system_id fujitsu_dmi_table[] = {
|
||||||
{
|
{
|
||||||
.ident = "Fujitsu Siemens S6410",
|
.ident = "Fujitsu Siemens S6410",
|
||||||
.matches = {
|
.matches = {
|
||||||
|
@ -481,6 +489,13 @@ static struct dmi_system_id __initdata fujitsu_dmi_table[] = {
|
||||||
DMI_MATCH(DMI_PRODUCT_NAME, "LIFEBOOK S6410"),
|
DMI_MATCH(DMI_PRODUCT_NAME, "LIFEBOOK S6410"),
|
||||||
},
|
},
|
||||||
.callback = dmi_check_cb_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",
|
.ident = "Fujitsu LifeBook P8010",
|
||||||
.matches = {
|
.matches = {
|
||||||
|
|
|
@ -52,6 +52,11 @@ MODULE_LICENSE("GPL");
|
||||||
#define MEMORY_ARG_CUR_BANDWIDTH 1
|
#define MEMORY_ARG_CUR_BANDWIDTH 1
|
||||||
#define MEMORY_ARG_MAX_BANDWIDTH 0
|
#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,
|
static int memory_get_int_max_bandwidth(struct thermal_cooling_device *cdev,
|
||||||
unsigned long *max_state)
|
unsigned long *max_state)
|
||||||
{
|
{
|
||||||
|
@ -71,6 +76,9 @@ static int memory_get_int_max_bandwidth(struct thermal_cooling_device *cdev,
|
||||||
if (ACPI_FAILURE(status))
|
if (ACPI_FAILURE(status))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
|
|
||||||
|
if (!value)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
*max_state = value - 1;
|
*max_state = value - 1;
|
||||||
return 0;
|
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))
|
if (memory_get_int_max_bandwidth(cdev, &max_state))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
|
|
||||||
if (max_state < 0 || state > max_state)
|
if (state > max_state)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
arg_list.count = 1;
|
arg_list.count = 1;
|
||||||
|
|
|
@ -31,8 +31,24 @@
|
||||||
|
|
||||||
#define ACPI_MAX_STRING 80
|
#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_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_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
|
* _HID definitions
|
||||||
|
@ -54,7 +70,6 @@
|
||||||
PCI
|
PCI
|
||||||
-------------------------------------------------------------------------- */
|
-------------------------------------------------------------------------- */
|
||||||
|
|
||||||
#define ACPI_PCI_COMPONENT 0x00400000
|
|
||||||
|
|
||||||
/* ACPI PCI Interrupt Link (pci_link.c) */
|
/* 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
|
Power Resource
|
||||||
-------------------------------------------------------------------------- */
|
-------------------------------------------------------------------------- */
|
||||||
|
|
||||||
#ifdef CONFIG_ACPI_POWER
|
|
||||||
int acpi_device_sleep_wake(struct acpi_device *dev,
|
int acpi_device_sleep_wake(struct acpi_device *dev,
|
||||||
int enable, int sleep_state, int dev_state);
|
int enable, int sleep_state, int dev_state);
|
||||||
int acpi_enable_wakeup_device_power(struct acpi_device *dev, int sleep_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_get_inferred_state(struct acpi_device *device);
|
||||||
int acpi_power_transition(struct acpi_device *device, int state);
|
int acpi_power_transition(struct acpi_device *device, int state);
|
||||||
extern int acpi_power_nocheck;
|
extern int acpi_power_nocheck;
|
||||||
#endif
|
|
||||||
|
|
||||||
/* --------------------------------------------------------------------------
|
/* --------------------------------------------------------------------------
|
||||||
Embedded Controller
|
Embedded Controller
|
||||||
-------------------------------------------------------------------------- */
|
-------------------------------------------------------------------------- */
|
||||||
#ifdef CONFIG_ACPI_EC
|
|
||||||
int acpi_ec_ecdt_probe(void);
|
int acpi_ec_ecdt_probe(void);
|
||||||
int acpi_boot_ec_enable(void);
|
int acpi_boot_ec_enable(void);
|
||||||
#endif
|
|
||||||
|
|
||||||
/* --------------------------------------------------------------------------
|
/* --------------------------------------------------------------------------
|
||||||
Processor
|
Processor
|
||||||
|
|
|
@ -163,8 +163,6 @@ struct acpi_pci_driver {
|
||||||
int acpi_pci_register_driver(struct acpi_pci_driver *driver);
|
int acpi_pci_register_driver(struct acpi_pci_driver *driver);
|
||||||
void acpi_pci_unregister_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_read(u8 addr, u8 *val);
|
||||||
extern int ec_write(u8 addr, u8 val);
|
extern int ec_write(u8 addr, u8 val);
|
||||||
extern int ec_transaction(u8 command,
|
extern int ec_transaction(u8 command,
|
||||||
|
@ -172,8 +170,6 @@ extern int ec_transaction(u8 command,
|
||||||
u8 *rdata, unsigned rdata_len,
|
u8 *rdata, unsigned rdata_len,
|
||||||
int force_poll);
|
int force_poll);
|
||||||
|
|
||||||
#endif /*CONFIG_ACPI_EC*/
|
|
||||||
|
|
||||||
#if defined(CONFIG_ACPI_WMI) || defined(CONFIG_ACPI_WMI_MODULE)
|
#if defined(CONFIG_ACPI_WMI) || defined(CONFIG_ACPI_WMI_MODULE)
|
||||||
|
|
||||||
typedef void (*wmi_notify_handler) (u32 value, void *context);
|
typedef void (*wmi_notify_handler) (u32 value, void *context);
|
||||||
|
|
Loading…
Reference in New Issue