Handler was never invoked. Now invoked if/when host node is deleted.
Data object was not automatically deleted when host node was deleted.
Interface to handler had an unused parameter, removed it.
ACPICA BZ 778.
Completed a major update for the AcpiGetObjectInfo external interface.
Changes include:
- Support for variable, unlimited length HID, UID, and CID strings
- Support Processor objects the same as Devices (HID,UID,CID,ADR,STA, etc.)
- Call the _SxW power methods on behalf of a device object
- Determine if a device is a PCI root bridge
- Change the ACPI_BUFFER parameter to ACPI_DEVICE_INFO.
These changes will require an update to all callers of this interface.
See the ACPICA Programmer Reference for details.
Needed by drivers for new ACPi tables.
Internal versions of these functions still use 32-bit max transfers,
in order to minimize disruption and stack use for the standard ACPI
registers (FADT-based).
Mark the DdbHandle as invalid after the table it refers to is unloaded.
This is needed because the handle itself may not be deleted after
the table unload, depending on whether it has been stored in a named
object by the caller.
The ACPI 4.0 specification has been changed to make the SyncLevel
for mutex objects more useful. When releasing a mutex, the synclevel
of the mutex must now be the same as the current sync level. This
makes more sense. This change updates the code to match the spec.
Fixes a problem where if multiple mutexes of the same sync level are
acquired but then not released in strict opposite order, the current
sync level becomes confused and can cause errors. ACPICA BZ 471.
The AML BreakPoint opcode will now cause a break into the AML debugger
if it is present/configured. This matches the expected behavior per
the ACPI specification. Previously, only a message was output.
The default type is an integer, but can be reconfigured as a pointer.
This change fixes some possible warnings when ACPI_THREAD_ID is
defined to be a pointer type.
For windows compatibility,
1) On a port protection violation, simply ignore the request and do not
return an exception (allow the control method to continue execution.)
2) If only part of the request overlaps a protected port, read/write the
individual ports that are not protected.
Warnings can be generated for printf-like statements that output
the ACPI_THREAD_ID on 64-bit builds, since this type can expand
to 64-bits depending on how it is defined. Use the %p format
specifier to allow the output to automatically expand to 64 bits.
Use the 32-bit register addresses whenever they are non-zero. This means
that the 32-bit addresses are favored over the 64-bit (GAS) addresses. The
64-bit addresses are only used if the 32-bit addresses are zero. This
change provides compatibility with all versions of Windows. The worst
case that this solves is when both the 32-bit and 64-bit addresses are
non-zero, but only the 32-bit addresses are actually valid. This appears
to happen in some BIOSes because in this case, Windows uses the 32-bit
addresses.
The Linux OS no longer wants to respond true for this string.
The only safe strings are windows-related as they represent
the tested path through the BIOS-provided ASL.
As per the ACPI specification, preserve (read/modify/write) all
bits that are defined as either reserved or ignored (PM control
control registers only.)
Ignored bits must be preserved according to the ACPI spec.
Usually this means a read/modify/write when writing to the register.
However, for status registers, writing a one means clear the event.
Writing a zero means preserve the event (do not clear.) This behavior
is clarified in the ACPI 4.0 spec, and the ACPICA code now simply
always writes a zero to the ignored bit.
Added a reader/writer locking mechanism to allow multiple
concurrent namespace walks (readers), but a dynamic table
unload will have exclusive access to the namespace. This fixes
a problem where a table unload could delete the portion of
the namespace that is currently being examined by a walk.
Adds a new file, utlock.c that implements the reader/writer
lock mechanism. ACPICA BZ 749.
Incorrect register length mismatch between the 32 and 64 bit
registers in some cases. Code was was checking the wrong pointer
for non-zero, should be looking at the address within the GAS
structure.
Fixes problem introduced in 20090220, "Split out PM1 status registers
from the FADT". Must check for the case where the PM1B status reg
does not exist, before the GAS structure is constructed.
Junk-uk Kim.