Commit graph

86 commits

Author SHA1 Message Date
Len Brown
6c89cce75c Merge acpi-2.6.12 to-akpm 2005-08-11 17:43:19 -04:00
Len Brown
50526df605 [ACPI] Lindent drivers/acpi/ec.c
necessary for clean merge from acpi-2.6.12 to-akpm

Signed-off-by: Len Brown <len.brown@intel.com>
2005-08-11 17:33:10 -04:00
Luming Yu
716e084edb [ACPI] Fix "ec_burst=1" mode latency issue
http://bugzilla.kernel.org/show_bug.cgi?id=3851

Signed-off-by: Luming Yu <luming.yu@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
2005-08-11 17:30:51 -04:00
Len Brown
4be44fcd3b [ACPI] Lindent all ACPI files
Signed-off-by: Len Brown <len.brown@intel.com>
2005-08-05 00:45:14 -04:00
Pavel Machek
c65ade4dc8 [ACPI] whitespace
Signed-off-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Len Brown <len.brown@intel.com>
2005-08-05 00:38:58 -04:00
Len Brown
1d492eb413 [ACPI] Merge acpi-2.6.12 branch into 2.6.13-rc3
Signed-off-by: Len Brown <len.brown@intel.com>
2005-08-05 00:31:42 -04:00
Adrian Bunk
cbfc1bae55 [ACPI] ACPI_HOTPLUG_CPU Kconfig dependency update
prevent:

HOTPLUG_CPU=y
ACPI_PROCESSOR=y
ACPI_HOTPLUG_CPU=n

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Len Brown <len.brown@intel.com>
2005-08-04 22:42:23 -04:00
Andrew Morton
4fdcf08045 [ACPI] lint: irqrouter_suspend() takes a pm_message_t, not a u32
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Len Brown <len.brown@intel.com>
2005-08-04 22:38:20 -04:00
Karol Kozimor
031ec77bf6 [ACPI] acpi_remove_notify_handler() on video driver unload
The video driver doesn't properly remove all the notify handlers
on module unload.  This has a side effect of subdevices failing
to register on module reload, but sudden death looms if the
handlers trigger after the module is unloaded.

Signed-off-by: Karol Kozimor <sziwan@hell.org.pl>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Len Brown <len.brown@intel.com>
2005-08-04 22:32:51 -04:00
Kenji Kaneshige
349f0d5640 [ACPI] acpi_pci_enable_irq() now checks for acpi_register_gsi() errors
Signed-off-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Len Brown <len.brown@intel.com>
2005-08-04 22:15:06 -04:00
Len Brown
5d2a22079c /home/lenb/src/to-akpm branch 'acpi-2.6.12' 2005-08-04 18:09:09 -04:00
Linus Torvalds
fd6f31c318 Merge master.kernel.org:/pub/scm/linux/kernel/git/lenb/to-linus 2005-08-04 10:36:25 -07:00
Len Brown
bd6dbdf3c7 When a merge does not work automatically, git prevents
commit from running until a change has been made in
the destination.  In this instance the desired result
was to choose the destination version of the file
and ignore the source version, but git would not
allow that.

Here I added a blank line to let git commit think
I resolved a merge conflict.
2005-08-04 00:17:42 -04:00
Len Brown
8edc81cc0b Merge ../to-linus-stable 2005-08-03 23:53:50 -04:00
Len Brown
62778ba1aa /home/lenb/src/to-linus-stable branch 'acpi-2.6.12' 2005-08-03 23:53:35 -04:00
David Shaohua Li
11e981f1e0 [ACPI] S3 resume: avoid kmalloc() might_sleep oops symptom
ACPI now uses kmalloc(...,GPF_ATOMIC) during suspend/resume.

http://bugzilla.kernel.org/show_bug.cgi?id=3469

Signed-off-by: David Shaohua Li <shaohua.li@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
2005-08-03 23:50:36 -04:00
Len Brown
d4ab025b73 [ACPI] delete Warning: Encountered executable code at module level, [AE_NOT_CONFIGURED]
http://bugzilla.kernel.org/show_bug.cgi?id=4923

Signed-off-by: Len Brown <len.brown@intel.com>
2005-08-03 23:22:10 -04:00
Linus Torvalds
d95a1b4818 Merge master.kernel.org:/pub/scm/linux/kernel/git/lenb/to-linus 2005-08-03 16:50:19 -07:00
Len Brown
8066eff0a1 /home/lenb/src/to-linus branch 'acpi-2.6.12' 2005-08-03 18:15:15 -04:00
Len Brown
aefdcfa6c2 Merge ../to-linus 2005-08-03 18:12:57 -04:00
Luming Yu
79cda7d0e1 [ACPI] CONFIG_ACPI_HOTKEY is now "n" by default
For 2.6.12 behaviour, this (EXPERIMENTAL) driver
should not be built.

Update the driver source with latest from Luming.

Signed-off-by: Luming Yu <luming.yu@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
2005-08-03 18:11:22 -04:00
Alexey Starikovskiy
b34a8030ee [ACPI] restore /proc/acpi/button/ (ala 2.6.12)
Signed-off-by Alexey Starikovskiy <alexey.y.starikovskiy@intel.com>
Signed-off-by Len Brown <len.brown@intel.com>
2005-08-03 17:57:24 -04:00
Luming Yu
7b15f5e7bb [ACPI] revert Embedded Controller to polling-mode by default (ala 2.6.12)
Burst mode isn't ready for prime time,
but can be enabled for test via "ec_burst=1"

Signed-off-by: Luming Yu <luming.yu@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
2005-08-03 17:40:43 -04:00
David Shaohua Li
ecc21ebe60 [ACPI] PCI interrupt link suspend/resume - revert to 2.6.12 behaviour
This patch disables the PCI Interrupt Link refernece counts,
which should not co-exist with the 2.6.12 irq_router.resume
method or else a double acpi_pci_link_set() could result
on resume.

Signed-off-by: David Shaohua Li <shaohua.li@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
2005-08-03 11:04:10 -04:00
Len Brown
3d35600a9d [ACPI] fix 64-bit build warning in processor_idle.c
Signed-off-by: Len Brown <len.brown@intel.com>
2005-08-03 00:23:45 -04:00
Ivan Kokshaysky
0b2bfb4e7f [PATCH] ACPI: increase PCIBIOS_MIN_IO on x86
We have increased PCIBIOS_MIN_IO to 0x4000, but still want
motherboard resources to be allocated properly. So we need
to state 0x1000 (according to the comment) limit explicitely.

Signed-off-by: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-08-02 18:21:25 -07:00
Linus Torvalds
697a2d63a3 Revert ACPI interrupt resume changes
If there are devices that use interrupts over a suspend event, ACPI must
restore the PCI interrupt links on resume.  Anything else breaks any
device that hasn't been converted to the new (dubious) PM rules.

Drivers that need the irq free/re-aquire sequence can be done one by one
independently of this one.
2005-08-01 12:37:54 -07:00
Robert Moore
0c9938cc75 [ACPI] ACPICA 20050729 from Bob Moore
Implemented support to ignore an attempt to install/load
a particular ACPI table more than once. Apparently there
exists BIOS code that repeatedly attempts to load the same
SSDT upon certain events. Thanks to Venkatesh Pallipadi.

Restructured the main interface to the AML parser in
order to correctly handle all exceptional conditions. This
will prevent leakage of the OwnerId resource and should
eliminate the AE_OWNER_ID_LIMIT exceptions seen on some
machines. Thanks to Alexey Starikovskiy.

Support for "module level code" has been disabled in this
version due to a number of issues that have appeared
on various machines. The support can be enabled by
defining ACPI_ENABLE_MODULE_LEVEL_CODE during subsystem
compilation. When the issues are fully resolved, the code
will be enabled by default again.

Modified the internal functions for debug print support
to define the FunctionName parameter as a (const char *)
for compatibility with compiler built-in macros such as
__FUNCTION__, etc.

Linted the entire ACPICA source tree for both 32-bit
and 64-bit.

Signed-off-by: Robert Moore <robert.moore@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
2005-07-30 00:51:39 -04:00
Len Brown
d6ac1a7910 /home/lenb/src/to-linus branch 'acpi-2.6.12' 2005-07-29 23:31:17 -04:00
Len Brown
dd8f39bbf5 Merge ../to-linus 2005-07-29 23:11:11 -04:00
David Shaohua Li
87bec66b96 [ACPI] suspend/resume ACPI PCI Interrupt Links
Add reference count and disable ACPI PCI Interrupt Link
when no device still uses it.

Warn when drivers have not released Link at suspend time.

http://bugzilla.kernel.org/show_bug.cgi?id=3469

Signed-off-by: David Shaohua Li <shaohua.li@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
2005-07-29 22:49:38 -04:00
Venkatesh Pallipadi
68ac767686 [ACPI] delete boot-time printk()s from processor_idle.c
http://bugzilla.kernel.org/show_bug.cgi?id=4401

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
2005-07-29 22:10:09 -04:00
Luming Yu
45bea1555f [ACPI] Add "ec_polling" boot option
EC burst mode benefits many machines, some of
them significantly.  However, our current
implementation fails on some machines such
as Rafael's Asus L5D.

This patch restores the alternative EC polling code,
which can be enabled at boot time via "ec_polling"

http://bugzilla.kernel.org/show_bug.cgi?id=4665

Signed-off-by: Luming Yu <luming.yu@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
2005-07-29 18:15:25 -04:00
David Shaohua Li
335f16be5d [ACPI] address boot-freeze with updated DMI blacklist for c-states
http://bugzilla.kernel.org/show_bug.cgi?id=4763

Signed-off-by: David Shaohua Li <shaohua.li@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
2005-07-29 18:06:29 -04:00
Venkatesh Pallipadi
0b6b2f08c2 [ACPI] Fix memset arguments in acpi processor_idle.c
http://bugzilla.kernel.org/show_bug.cgi?id=4954

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
2005-07-29 16:02:02 -04:00
Venkatesh Pallipadi
4a71640239 [ACPI] Fix the regression with c1_default_handler on some systems
where C-states come from FADT.

Thanks to Kevin Radloff for identifying the issue and
isolating it to exact line of code that is causing the issue.

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
2005-07-29 15:54:03 -04:00
Len Brown
670fac79b9 [ACPI] disable module level AML code (for now)
It is important that we support module level code --
BIOS's implement it.  But this implementation needs
more testing.

Signed-off-by: Len Brown <len.brown@intel.com>
2005-07-29 00:19:34 -04:00
Len Brown
feee957075 [ACPI] comment out prototypes for new unused debug routines
Signed-off-by: Len Brown <len.brown@intel.com>
2005-07-29 00:03:17 -04:00
Eric W. Biederman
b35c67a46b [PATCH] acpi: Don't call acpi_sleep_prepare from acpi_power_off
Now that all of the code paths that call acpi_power_off
have been modified to call either call kernel_power_off
(which calls apci_sleep_prepare by way of acpi_shutdown)
or to call acpi_sleep_prepare directly it is redundant to call
acpi_sleep_prepare from acpi_power_off.

So simplify the code and simply don't call acpi_sleep_prepare.

In addition there is a little error handling done so if we
can't register the acpi class we don't hook pm_power_off.

I think I have done the right thing with the CONFIG_PM define
but I'm not certain.  Can this code even be compiled if
CONFIG_PM is false?

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-07-26 14:35:45 -07:00
Eric W. Biederman
6660316cb7 [PATCH] acpi_power_off: Don't switch to the boot cpu
machine_power_off on i386 and x86_64 now switch to the
boot cpu out of paranoia and because the MP Specification indicates it
is a good idea on reboot, so for those architectures it is a noop.
I can't see anything in the acpi spec that requires you to be on
the boot cpu to power off the system, so this should not be an issue
for ia64.  In addition ia64 has the altix a massive multi-node
system where switching to the boot cpu sounds insane as we may
hot removed the boot cpu.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-07-26 14:35:45 -07:00
Luming Yu
8ed693d29b /home/lenb/linux-2.6 branch 'acpi-2.6.12' 2005-07-23 00:34:41 -04:00
Luming Yu
668d74c04c ACPI: delete unnecessary EC console messages
http://bugzilla.kernel.org/show_bug.cgi?id=4534

Signed-off-by: Luming Yu <luming.yu@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
2005-07-23 00:26:33 -04:00
Robert Moore
f9f4601f33 ACPICA 20050708 from Bob Moore <robert.moore@intel.com>
The use of the CPU stack in the debug version of the
subsystem has been considerably reduced.  Previously, a
debug structure was declared in every function that used
the debug macros.  This structure has been removed in
favor of declaring the individual elements as parameters
to the debug functions.  This reduces the cumulative stack
use during nested execution of ACPI function calls at the
cost of a small increase in the code size of the debug
version of the subsystem.  With assistance from Alexey
Starikovskiy and Len Brown.

Added the ACPI_GET_FUNCTION_NAME macro to enable the
compiler-dependent headers to define a macro that will
return the current function name at runtime (such as
__FUNCTION__ or _func_, etc.) The function name is used
by the debug trace output.  If ACPI_GET_FUNCTION_NAME
is not defined in the compiler-dependent header, the
function name is saved on the CPU stack (one pointer per
function.) This mechanism is used because apparently there
exists no standard ANSI-C defined macro that that returns
the function name.

Alexey Starikovskiy redesigned and reimplemented the
"Owner ID" mechanism used to track namespace objects
created/deleted by ACPI tables and control method
execution.  A bitmap is now used to allocate and free the
IDs, thus solving the wraparound problem present in the
previous implementation.  The size of the namespace node
descriptor was reduced by 2 bytes as a result.

Removed the UINT32_BIT and UINT16_BIT types that were used
for the bitfield flag definitions within the headers for
the predefined ACPI tables.  These have been replaced by
UINT8_BIT in order to increase the code portability of
the subsystem.  If the use of UINT8 remains a problem,
we may be forced to eliminate bitfields entirely because
of a lack of portability.

Alexey Starikovksiy enhanced the performance of
acpi_ut_update_object_reference.  This is a frequently used
function and this improvement increases the performance
of the entire subsystem.

Alexey Starikovskiy fixed several possible memory leaks
and the inverse - premature object deletion.

Signed-off-by: Len Brown <len.brown@intel.com>
2005-07-14 00:42:23 -04:00
David Shaohua Li
4c3ffbd795 [ACPI] revert R40 workaround
Should not be necessary...

http://bugme.osdl.org/show_bug.cgi?id=1038

Signed-off-by: Len Brown <len.brown@intel.com>
2005-07-14 00:40:26 -04:00
Robert Moore
73459f73e5 ACPICA 20050617-0624 from Bob Moore <robert.moore@intel.com>
ACPICA 20050617:

Moved the object cache operations into the OS interface
layer (OSL) to allow the host OS to handle these operations
if desired (for example, the Linux OSL will invoke the
slab allocator).  This support is optional; the compile
time define ACPI_USE_LOCAL_CACHE may be used to utilize
the original cache code in the ACPI CA core.  The new OSL
interfaces are shown below.  See utalloc.c for an example
implementation, and acpiosxf.h for the exact interface
definitions.  Thanks to Alexey Starikovskiy.
	acpi_os_create_cache
	acpi_os_delete_cache
	acpi_os_purge_cache
	acpi_os_acquire_object
	acpi_os_release_object

Modified the interfaces to acpi_os_acquire_lock and
acpi_os_release_lock to return and restore a flags
parameter.  This fits better with many OS lock models.
Note: the current execution state (interrupt handler
or not) is no longer passed to these interfaces.  If
necessary, the OSL must determine this state by itself, a
simple and fast operation.  Thanks to Alexey Starikovskiy.

Fixed a problem in the ACPI table handling where a valid
XSDT was assumed present if the revision of the RSDP
was 2 or greater.  According to the ACPI specification,
the XSDT is optional in all cases, and the table manager
therefore now checks for both an RSDP >=2 and a valid
XSDT pointer.  Otherwise, the RSDT pointer is used.
Some ACPI 2.0 compliant BIOSs contain only the RSDT.

Fixed an interpreter problem with the Mid() operator in the
case of an input string where the resulting output string
is of zero length.  It now correctly returns a valid,
null terminated string object instead of a string object
with a null pointer.

Fixed a problem with the control method argument handling
to allow a store to an Arg object that already contains an
object of type Device.  The Device object is now correctly
overwritten.  Previously, an error was returned.

ACPICA 20050624:

Modified the new OSL cache interfaces to use ACPI_CACHE_T
as the type for the host-defined cache object.  This allows
the OSL implementation to define and type this object in
any manner desired, simplifying the OSL implementation.
For example, ACPI_CACHE_T is defined as kmem_cache_t for
Linux, and should be defined in the OS-specific header
file for other operating systems as required.

Changed the interface to AcpiOsAcquireObject to directly
return the requested object as the function return (instead
of ACPI_STATUS.) This change was made for performance
reasons, since this is the purpose of the interface in the
first place.  acpi_os_acquire_object is now similar to the
acpi_os_allocate interface.  Thanks to Alexey Starikovskiy.

Modified the initialization sequence in
acpi_initialize_subsystem to call the OSL interface
acpi_osl_initialize first, before any local initialization.
This change was required because the global initialization
now calls OSL interfaces.

Restructured the code base to split some files because
of size and/or because the code logically belonged in a
separate file.  New files are listed below.

  utilities/utcache.c	/* Local cache interfaces */
  utilities/utmutex.c	/* Local mutex support */
  utilities/utstate.c	/* State object support */
  parser/psloop.c	/* Main AML parse loop */

Signed-off-by: Len Brown <len.brown@intel.com>
2005-07-13 23:45:36 -04:00
Robert Moore
88ac00f5a8 ACPICA 20050526 from Bob Moore <robert.moore@intel.com>
Implemented support to execute Type 1 and Type 2 AML
opcodes appearing at the module level (not within a control
method.)  These opcodes are executed exactly once at the
time the table is loaded. This type of code was legal up
until the release of ACPI 2.0B (2002) and is now supported
within ACPI CA in order to provide backwards compatibility
with earlier BIOS implementations. This eliminates the
"Encountered executable code at module level" warning that
was previously generated upon detection of such code.

Fixed a problem in the interpreter where an AE_NOT_FOUND
exception could inadvertently be generated during the
lookup of namespace objects in the second pass parse of
ACPI tables and control methods. It appears that this
problem could occur during the resolution of forward
references to namespace objects.

Added the ACPI_MUTEX_DEBUG #ifdef to the
acpi_ut_release_mutex function, corresponding to the same
the deadlock detection debug code to be compiled out in
the normal case, improving mutex performance (and overall
subsystem performance) considerably.  As suggested by
Alexey Starikovskiy.

Implemented a handful of miscellaneous fixes for possible
memory leaks on error conditions and error handling
control paths. These fixes were suggested by FreeBSD and
the Coverity Prevent source code analysis tool.

Added a check for a null RSDT pointer in
acpi_get_firmware_table (tbxfroot.c) to prevent a fault
in this error case.

Signed-off-by Len Brown <len.brown@intel.com>
2005-07-13 16:46:34 -04:00
Robert Moore
6f42ccf2fc ACPICA from Bob Moore <robert.moore@intel.com>
Implemented support for PCI Express root bridges
-- added support for device PNP0A08 in the root
bridge search within AcpiEvPciConfigRegionSetup.
acpi_ev_pci_config_region_setup().

The interpreter now automatically truncates incoming
64-bit constants to 32 bits if currently executing out
of a 32-bit ACPI table (Revision < 2). This also affects
the iASL compiler constant folding. (Note: as per below,
the iASL compiler no longer allows 64-bit constants within
32-bit tables.)

Fixed a problem where string and buffer objects with
"static" pointers (pointers to initialization data within
an ACPI table) were not handled consistently. The internal
object copy operation now always copies the data to a newly
allocated buffer, regardless of whether the source object
is static or not.

Fixed a problem with the FromBCD operator where an
implicit result conversion was improperly performed while
storing the result to the target operand. Since this is an
"explicit conversion" operator, the implicit conversion
should never be performed on the output.

Fixed a problem with the CopyObject operator where a copy
to an existing named object did not always completely
overwrite the existing object stored at name. Specifically,
a buffer-to-buffer copy did not delete the existing buffer.

Replaced "interrupt_level" with "interrupt_number" in all
GPE interfaces and structs for consistency.

Signed-off-by: Len Brown <len.brown@intel.com>
2005-07-13 16:29:07 -04:00
Len Brown
5028770a42 [ACPI] merge acpi-2.6.12 branch into latest Linux 2.6.13-rc...
Signed-off-by: Len Brown <len.brown@intel.com>
2005-07-12 17:21:56 -04:00
Venkatesh Pallipadi
02df8b9385 [ACPI] enable C2 and C3 idle power states on SMP
http://bugzilla.kernel.org/show_bug.cgi?id=4401

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
2005-07-12 00:14:36 -04:00
Luming Yu
17e9c78a75 [ACPI] EC GPE-disabled issue
http://bugzilla.kernel.org/show_bug.cgi?id=3851

Signed-off-by: Luming Yu <luming.yu@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
2005-07-12 00:12:53 -04:00