6005 Commits

Author SHA1 Message Date
Robert Moore
45979a335e Automated cleanup - no functional change.
Remove tabs and extra spaces.
2010-05-26 13:32:13 -07:00
Robert Moore
df3d422671 Enable multi-byte EC transfers.
Previously, the maximum data size passed to the EC operation region
handler was a single byte. Since there are often larger datums that
need to be transfered, and the EC would like to lock these as a single
transaction, this change enables transfers larger than a single byte.
This may require changes to the host-OS Embedded Controller driver
to enable 16/32/64 bit tranfers in addition to 8-bit transfers.
Alexey Starikovskiy, Lin Ming
2010-05-26 13:01:18 -07:00
Robert Moore
14aafc8b1b Update flags for operand object.
Remove obsolete AOPOBJ_SINGLE_DATUM. Add AOPOBJ_INVALID for use if
the host OS rejects the address of an operation region (currently
only used by Linux.)
2010-05-26 11:25:44 -07:00
Robert Moore
de716aac23 Performance enhancement for namespace search and access.
This change enhances the performance of namespace searches and walks
by adding a backpointer to the parent in each namespace node. On large
namespaces, this change can improve overall ACPI performance by up to 9X.
Adding a pointer to each namespace node increases the overall size of
the internal namespace by about 5%, since each namespace entry usually
consists of both a namespace node and an ACPI operand object.
Alexey Starikovskiy.
2010-05-25 12:38:08 -07:00
Robert Moore
045d5cf5c8 Truncate I/O addresses to 16 bits for Windows compatibility.
This feature is optional and is enabled if the BIOS requests any Windows
OSI strings. It can also be enabled by the host OS. Matthew Garrett,
Bob Moore.
2010-05-20 13:57:02 -07:00
Robert Moore
027c7ffd9a Expand device initialization counters to 32 bits.
Expand the various device initialization counters from 16-bit to 32-bit.
Allows for very large namespaces.
2010-05-20 12:29:29 -07:00
Robert Moore
3929a1f9a2 Core: Replace all %d format specifiers with %u (unsigned).
With only a few exceptions, ACPICA does not use signed integers.
Therefore, %d is incorrect.
2010-05-20 10:22:16 -07:00
Robert Moore
89f72c1af3 Optimization: Reduce the number of namespace walks.
On control method exit, only walk the namespace if the method is known
to have created namespace objects outside of its local scope.
Bob Moore, Alexey Starikovskiy.
2010-05-20 08:58:10 -07:00
Robert Moore
d90488f435 acpiexec: add option to disable memory tracking mechanism.
-dt option will disable the tracking mechanism, which improves performance
considerably. Also restructured the options into -d (disable) and -e (enable) options.
2010-05-19 13:53:55 -07:00
Robert Moore
b2bad68e4c Limit maximum time for Sleep() operator.
To prevent accidental deep sleeps, limit the maximum time that Sleep()
will sleep. Configurable, default maximum is two seconds.
ACPICA bugzilla 854.
2010-05-19 09:00:58 -07:00
Robert Moore
ba571ef4a6 Expand initialization counters to 32 bits.
Expand the various initialization counters from 16-bit to 32-bit.
Allows for very large namespaces. Alexey Starikovskiy, Bob Moore.
2010-05-18 15:10:09 -07:00
Robert Moore
27794f1bd0 Add comment: _BCL cannot be sorted on the fly.
Because of package index values used for _BQC and _BCM.
2010-04-30 12:19:10 -07:00
Robert Moore
03d18d0470 Rename AcpiExSystemDoSuspend->AcpiExSystemDoSleep.
Suspend has other meanings in ACPI context, name was misleading.
2010-04-19 13:32:17 -07:00
Robert Moore
681f8f4e6b Prevent possible allocation overrun during object copy.
Original code did not handle the case where the object to be
copied was a namespace node.
2010-04-09 12:47:44 -07:00
Robert Moore
c2e293f281 Update allocation dump routine.
Prevent possible access beyond end-of-allocation.
Fully validate descriptor (size and type) before output.
Lin Ming, Bob Moore.
2010-04-09 12:35:00 -07:00
Robert Moore
b0a99f238c Split large file, evgpeblk.c.
Create two new files, evgpeinit.c and evgpeutil.c. Updated unix and
linux makefiles.
2010-04-09 09:01:59 -07:00
Robert Moore
d764104bff Add GPE support for dynamically loaded ACPI tables.
For all GPEs, including FADT-based and GPE Block Devices, execute
any _PRW methods in the new table, and process any _Lxx/_Exx GPE
methods in the new table. Any runtime GPE that is referred to by
an _Lxx/_Exx method in the new table is immediately enabled.
ACPICA BZ 833. Lin Ming, Bob Moore.
2010-04-08 14:59:22 -07:00
Robert Moore
66525d7384 Clarify/rename some root table descriptor fields.
Original fields were not very descriptive and led to maintenance problems.
New fields should help to understand the existing code.
2010-04-05 10:19:39 -07:00
Robert Moore
752d13e806 Additional fix for root table size regression.
Set the size of the new root table correctly. Not the current size, but
the number of current tables + the default increment.
2010-04-02 12:53:37 -07:00
Robert Moore
67a1ef8c98 Additional change for table load regression
add .signature
2010-04-01 14:26:23 -07:00
Robert Moore
e4c530f4e7 Fix for table load regression.
Fixes a problem introduced in 20100331 where the table manager could
fault or return an AE_NO_ACPI_TABLES exception.
2010-04-01 14:05:20 -07:00
Robert Moore
dc2a536be0 Fix AcpiReallocateRootTable to set new root table size correctly.
New additional table count was not added into the table size
(count of total available slots.)
2010-03-31 08:15:59 -07:00
Robert Moore
8c28b93eee Update part 2: DSDT copy/detection.
Now handles the case where the root table can be reallocated, which
would invalidate the original pointer.
2010-03-31 07:51:40 -07:00
Robert Moore
45f0b38a92 Major update for GPE support code for shared GPEs.
Adds a reference count mechanism to simplify support of shared GPEs that
require multiple device drivers. Several external interfaces have changed.
One external interface has been removed.

Changed:
AcpiEnableGpe
AcpiDisableGpe
AcpiClearGpe
AcpiGetGpeStatus

Removed:
AcpiSetGpeType

New:
AcpiSetGpe

See the ACPICA Programmer Reference for details.
Matthew Garrett
Bob Moore
Rafael Wysocki
2010-03-26 15:54:55 -07:00
Robert Moore
1e7497f794 Update DSDT copy/detection.
Move initialization of DSDT pointer. Emit address of DSDT in
the dump of both table headers (good/bad DSDT).
2010-03-26 15:52:04 -07:00
Robert Moore
c6ad540dbe Add subsystem option to force copy of DSDT to local memory.
Optionally copy the entire DSDT to local memory (instead of simply
mapping it.) There are some BIOSs that corrupt or replace the original
DSDT, creating the need for this option. Default is FALSE, do not copy
the DSDT.
2010-03-24 15:30:14 -07:00
Robert Moore
3ff5a497b6 Add detection of corrupted/replaced DSDT.
This change adds support to detect a DSDT that has been corrupted
and/or replaced from outside the OS (by firmware). This is typically
catastrophic for the system, but has been seen on some machines.
Lin Ming, Bob Moore.
2010-03-24 14:43:33 -07:00
Robert Moore
b503f0621a Add write support for DataTable operation regions.
The original implementation only supported reading from a DataTable
region. However, some machines have been seen that actually write to
the ACPI table contained in such a region. This change adds support
for writing to a DataTable region.
2010-03-24 10:13:46 -07:00
Robert Moore
0f0cf23019 Fix for AcpiReallocateRootTable for incorrect root table copy.
When copying the root table to the new allocation, the length used
was incorrect. The new size was used instead of the current table size,
meaning too much data was copied. Alexey Starikovskiy.
2010-03-18 14:02:30 -07:00
Robert Moore
12f1f95afc Update comments/headers, no functional change.
Also split some long lines.
2010-03-12 12:23:20 -08:00
Robert Moore
9dff111362 Automated cleanup.
Some extra spaces removed.
2010-03-12 08:21:14 -08:00
Robert Moore
ba3c4a434a Fix for possible fault in AcpiExReleaseMutex.
Fixed a problem with the AML Mutex handling function AcpiExReleaseMutex
where the function could fault under the very rare condition when the
interpreter has blocked, the interpreter lock is released, the
interpreter is then reentered via the same thread, and attempts to
acquire a mutex that was previously acquired. FreeBSD report 140979. Lin Ming.
2010-03-04 08:42:11 -08:00
Robert Moore
23367dc568 Standardize integer output for ACPICA warnings/errors.
Always use 0x prefix for hex output, use %u for integer output (all
integers are unsigned.)

Affects ACPI_INFO, ACPI_ERROR, ACPI_WARNING, and ACPI_EXCEPTION.
ACPICA BZ 835.
2010-03-02 15:09:46 -08:00
Robert Moore
e51c2639b6 Enhance configuration for output of AML Debug Object.
This change will enable debug object output via a global variable,
AcpiGbl_EnableAmlDebugObject. This will help with remote machine
debugging. Also, moved all debug object support code to a new file,
executer/exdebug.c. Entire debug object module can now be configured
out of the ACPICA build if desired. Lin Ming, Bob Moore.
2010-02-26 13:48:18 -08:00
Robert Moore
594479d5c6 Disassembler: Remove obsolete "Integer64" field in parse object.
This field is no longer needed. The "Integer" field is 64 bit and
is sufficient.
2010-01-19 14:17:17 -08:00
Robert Moore
bce1fbe326 Remove obsolete ACPI_INTEGER (acpi_integer) type.
This type was introduced as the code was migrated from ACPI 1.0 (with 32-bit
AML integers) to ACPI 2.0 (with 64-bit integers). It is now obsolete and
this change removes it from the ACPICA code base, replaced by UINT64.
The original typedef has been retained for now for compatibility with
existing device driver code.
2010-01-19 13:39:26 -08:00
Robert Moore
2cd7f64bf8 Predefined name repair: fix NULL package elements.
For the predefined methods that return fixed-length packages (or subpackages),
attempt repair for a NULL element. Create an Integer of value 0, a NULL
String, or a zero-length buffer as appropriate. ACPICA BZ 818.
Lin Ming, Bob Moore.
2010-01-15 12:50:21 -08:00
Robert Moore
e2cf79783b AcpiGetDevices: Eliminate unnecessary _STA calls.
In the case where a specific _HID is requested, do not run _STA until a _HID
match is found. This eliminates potentially dozens of _STA calls during
a search for a particular device/HID.

Fixes ACPICA BZ 828. Lin Ming.
2010-01-08 13:05:56 -08:00
Robert Moore
c7dd20b0d7 Update all ACPICA copyrights and signons to 2010.
Add 2010 copyright to all module headers and signons, including the Linux
header. This affects virtually every file in the ACPICA core subsystem,
iASL compiler, and all utilities.
2010-01-08 08:49:11 -08:00
Robert Moore
cdfcc7cfce Update for new gcc-4 warning options.
Added several new options for the gcc-4 generation, and updated the source
accordingly. This includes some code restructuring to eliminate unreachable
code, elimination of some gotos, elimination of unused return values, and
some additional casting.
2010-01-08 08:14:05 -08:00
Robert Moore
8b73fb9ff4 Debugger: Cleanup output of returned buffer objects.
This change aligns the data dump for buffer objects.
2009-12-11 13:35:19 -08:00
Robert Moore
93324dd734 Move check for valid Thread ID structure.
This change moves the check for a valid Thread ID structure up a few lines
to insure that the check is made before the structure is actually used.
Dan Carpenter.
2009-12-10 14:52:07 -08:00
Robert Moore
cf2bc7db05 Predefined name repair: automatically remove null package elements.
This change will automatically remove embedded and trailing NULL package
elements from returned package objects that are defined to containe a
variable number of sub-packages. The driver is then presented with
a package with no null elements to deal with. ACPICA BZ 819.
2009-12-10 14:35:48 -08:00
Robert Moore
a3dcd06fa0 Module-level code: enable _REG execution in same scope.
This change enables the execution of _REG methods that appear in the
same scope as the module-level code, in resonse to an operation region
declaration within the module-level code.
2009-12-10 12:48:24 -08:00
Robert Moore
f0c2fd9c36 Conditionally perform complex per-predefined-name repairs.
Only attempt the "complex" repairs (package sorting, buffer expansion)
if the previous "generic" validation and repair was successful.
2009-12-09 14:44:38 -08:00
Robert Moore
d34e4dc230 Update function headers and comments, no functional change.
Update comments for repair of _FDE and _GTM methods.
2009-12-08 14:15:57 -08:00
Robert Moore
82abf467aa Remove messages if predefined repair(s) are successful.
Repair mechanism was considered too wordy. Now, messages are only
unconditionally emitted if the return object cannot be repaired.
Existing messages for successful repairs were converted to
ACPI_DEBUG_PRINT messages for now. ACPICA BZ 827.
2009-12-08 14:08:56 -08:00
Robert Moore
51dabc8bed Move Package-to-Buffer repair code into common ToBuffer function.
Move code specific to _FDE and _GTM into the generic repair code.
2009-12-04 15:16:53 -08:00
Robert Moore
b7f16e21e7 Fix mutex errors when running _REG methods.
Fixes a problem where mutex errors can occur when running a _REG method
that is in the same scope as a method-defined operation region or an
operation region under a module-level IF block. This is rare, so the
problem has not been seen before. ACPICA BZ 826. Lin Ming, Bob Moore.
2009-12-04 09:22:56 -08:00
Robert Moore
268aa6915f Update function headers; no functional change.
Fixed a few errors with the headers in utcopy.c
2009-12-04 08:30:14 -08:00