5879 Commits

Author SHA1 Message Date
Robert Moore
5541c0cae8 Update error/warning interfaces.
Moved the module name and line number to the end of the message.
2009-03-25 14:23:48 -07:00
Robert Moore
bd334bf7cc Fix warnings for 64-bit build.
Several warnings in hwvalid.c for ACPI_IO_ADDRESS output on 64-bit.
2009-03-20 12:15:58 -07:00
Robert Moore
3a5c56fbe8 Remove unused code, dsopcode.
Unnecessary check of ACPI_STATUS.
2009-03-19 12:20:29 -07:00
Robert Moore
cc3df039ac Fix index value in package warning message.
For predefined method validation. Index value in warning message could
be off by one.
2009-03-18 08:11:24 -07:00
Robert Moore
3f956fd779 FADT: Favor 32-bit FACS and DSDT addresses.
If both the 32-bit and 64-bit addresses are non-null, use the 32-bit
address. Provides Windows compatibility.
2009-03-17 14:24:33 -07:00
Robert Moore
ae2ea280f4 FADT: Favor 32-bit register addresses for compatibility.
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.
2009-03-17 14:06:44 -07:00
Robert Moore
8526fe17f6 Fix PCI configuration space port address range.
Microsoft website uses 0xCF8-0xD00. Should be 0xCF8-0xCFF
(Two 32-bit registers.)
2009-03-17 12:43:35 -07:00
Robert Moore
0223f20b27 Condense some protected ports.
One entry in the protected port table eliminated. Added extra
comments to describe each table entry.
2009-03-16 14:42:56 -07:00
Robert Moore
5b1d2828ff Remove unused code, no functional change.
Removed unused code for dump of args and locals. General cleanup
and splitting of long lines.
2009-03-16 14:41:36 -07:00
Robert Moore
aa203e9e24 Clear PM register write-only bits on reading.
Affects PM1 Control register only. When reading the register,
zero the write-only bits as per the ACPI spec.
ACPICA BZ 443. Lin Ming.
2009-03-13 15:05:13 -07:00
Robert Moore
4df59faf08 Remove obsolete AcpiOsValidateAddress interface.
This interface is no longer necessary. Requests should be validated
on a per-field basis, not on the entire operation region.
2009-03-13 08:49:59 -07:00
Robert Moore
491a1e7ae0 New: I/O port protection.
Protect certain I/O ports from reads/writes. Provides MS
compatibility. New module, hwvalid.c
2009-03-13 08:08:55 -07:00
Robert Moore
cabb0010ed Remove "Linux" from supported _OSI strings.
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.
2009-03-12 14:18:26 -07:00
Robert Moore
a6fd0232e2 Preserve all PM control reserved and ignored bits.
As per the ACPI specification, preserve (read/modify/write) all
bits that are defined as either reserved or ignored (PM control
control registers only.)
2009-03-11 13:51:04 -07:00
Robert Moore
66bfc57c53 Change handling of PM1 Status register ignored bit.
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.
2009-03-06 13:29:34 -08:00
Robert Moore
b1c943d6c2 Fix AcpiWalkNamespace race condition with table unload.
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.
2009-03-06 08:54:39 -08:00
Robert Moore
9f849c6ae7 FADT: Fix extraneous length mismatch warning.
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.
2009-03-05 16:03:18 -08:00
Robert Moore
ead71a2916 Fix for illegal port access <regression>
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.
2009-03-05 13:25:18 -08:00
Robert Moore
30139ee39d Formatting update - no functional changes.
Split some long lines.
2009-02-24 13:26:26 -08:00
Robert Moore
8ca1520fb4 Formatting update - no functional changes.
Split long lines, update comments.
2009-02-20 13:09:09 -08:00
Robert Moore
ba31584376 Add manifest constants for bit register values.
Add and deploy constants for the PM status/enable/control
registers.
2009-02-20 10:14:25 -08:00
Robert Moore
b408d6f1bf Update table header print function.
Cleanup table header output.
2009-02-19 15:39:42 -08:00
Robert Moore
14b8df76ec Revert "Fix WalkNamespace/TableUnload race condition."
This reverts commit ab25f5e04d934cb5830f445b3ca35e272026b560.
Needs additional testing.
2009-02-19 15:31:21 -08:00
Robert Moore
ab25f5e04d Fix WalkNamespace/TableUnload race condition.
Fixes a problem where a WalkNamespace user function could have a
namespace node deleted out from under it due to the execution of
an AML Unload operator. A new mutex has been defined to exclude
these two activities. ACPICA BZ 749.
2009-02-17 14:37:48 -08:00
Robert Moore
9f6da2363c Restructure bit register access functions.
Update code for AcpiReadBitRegister and AcpiWriteBitRegister.
Simplified code path, condensed duplicate code.
2009-02-10 15:09:16 -08:00
Robert Moore
930bc63d04 Formatting update - no functional changes.
Split some long lines.
2009-02-10 13:40:53 -08:00
Robert Moore
89cce9695d Rename ACPI bit register access functions.
Rename AcpiGetRegister and AcpiSetRegister to clarify the purpose
of these functions. New names are AcpiReadBitRegister and
AcpiWriteBitRegister.
2009-02-10 09:00:12 -08:00
Robert Moore
d258fbe313 Optimize ACPI register locking.
Removed locking for reads from the ACPI bit registers in PM1 Status,
Enable, Control, and PM2 Control. The lock is not required when
reading the single-bit registers. The AcpiGetRegisterUnlocked function
is no longer needed and has been removed. This will improve performance
for reads on these registers.
ACPICA BZ 760.
2009-02-10 08:43:05 -08:00
Robert Moore
f21fd0d909 Fix warning message for root table truncation.
Fix the calculation used for this warning.
Myron Stowe <myron.stowe@hp.com>
2009-02-09 14:54:46 -08:00
Robert Moore
83388feb98 Formatting update - no functional changes.
Split some long lines.
2009-02-09 14:26:00 -08:00
Robert Moore
f2d5bfb9b8 Debug output: decrease verbosity of DB_INFO debug level.
Removed some of the extraneous debug prints using the DB_INFO level.
This should make the DB_INFO more useful.
2009-02-06 10:21:21 -08:00
Robert Moore
ec62cb3b5f Debug output: print result of _OSI invocations.
Print input strings and the result (supported or not supported)
for invocations of the _OSI method.
2009-02-06 10:19:35 -08:00
Robert Moore
69dc0f01c7 Conditionally compile AcpiSetFirmwareWakingVector64.
This function is only needed on 64-bit host operating systems.
2009-02-05 12:49:35 -08:00
Robert Moore
5025573120 Remove ACPI_GET_OBJECT_TYPE macro.
Remove all instances of this obsolete macro, since it is now a simple
reference to ->common.type. There were about 150 invocations of the
macro across 41 files.
2009-02-05 10:17:44 -08:00
Robert Moore
775c7c9341 Add function to handle PM1 control registers.
Added AcpiHwWritePm1Control. This function writes both of the PM1
control registers (A/B). These registers are
different than than the PM1 A/B status and enable registers
in that different values can be written to the A/B registers.
Most notably, the SLP_TYP bits can be different, as per the
values returned from the _Sx predefined methods.
2009-02-03 15:31:52 -08:00
Robert Moore
144e085305 Remove redundant ACPI_BITREG_SLEEP_TYPE_B.
This type is the same as TYPE_A. Removed this and all related instances.
Renamed SLEEP_TYPE_A to simply SLEEP_TYPE.
2009-02-03 14:57:38 -08:00
Robert Moore
26a2eea9f4 Fix parameter validation for AcpiRead/Write.
Now return AE_BAD_PARAMETER if the input register pointer is null,
and AE_BAD_ADDRESS if the register has an address of zero.
Previously, these cases simply returned AE_OK. For optional registers
such as PM1B status/enable/control, the caller should check for a valid
register address before calling.
ACPICA BZ 748.
2009-02-03 14:49:21 -08:00
Robert Moore
753eaf64ea For PM1B registers, do not shift value read or written.
The PM1B registers are mirrors of the PM1A registers with different
bits actually implemented. From the ACPI specification:
"Although the bits can be split between the two register blocks (each
register block has a unique pointer within the FADT), the bit positions
are maintained. The register block with unimplemented bits (that is, those
implemented in the other register block) always returns zeros, and
writes have no side effects"
2009-02-03 14:34:03 -08:00
Robert Moore
bef985b4bd Remove extra write for AcpiHwClearAcpiStatus.
This function was writing an optional PM1B status register twice.
The existing call to the low-level AcpiHwRegisterWrite automatically
handles a possibly split PM1 A/B register.
ACPICA BZ 751.
2009-02-03 09:20:05 -08:00
Robert Moore
599e9589eb Fix writes to optional PM1B registers.
On read, shift B register bits above the A bits. On write, shift B bits
down to zero before writing the B register. New: AcpiHwReadMultiple,
AcpiHwWriteMultiple. These two functions now transparently handle the
(possible) split registers for PM1 Status, Enable, and Control.
2009-02-02 13:47:26 -08:00
Robert Moore
dccd61004e Split out PM1 status registers from the FADT.
Add new globals for the PM1 status registers (A/B), similar to the
way the PM1 enable registers are handled. Instead of overloading the
FADT Event Register blocks. This makes the code clearer and less prone
to error.
2009-01-30 09:35:26 -08:00
Robert Moore
177325af3c Debugger: Automatically pad input names with '_'
For the Find command, automatically pad names that are shorter
than 4 characters with underscores, as they are within the
namespace.
2009-01-23 09:51:28 -08:00
Robert Moore
416eb5461f Update all copyrights and signons to 2009.
Add 2009 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.
2009-01-08 13:17:27 -08:00
Robert Moore
409f5b644f Add override for dynamic tables.
Add a call to AcpiOsTableOverride during the installation of
a dynamic table (loaded via the Load or LoadTable AML operators).
2008-12-11 12:58:42 -08:00
Robert Moore
05224d2cf5 Remove extraneous parameter in table manager.
Removed the Flags parameter from several internal functions
since it was not being used.
2008-12-09 10:02:20 -08:00
Robert Moore
2d8f95c694 Allow OS override of all ACPI tables.
Previously, the table override mechanism was implemented for the
DSDT only. Now, any table in the RSDT/XSDT can be replaced by the
host OS. (including the DSDT).
2008-12-09 09:37:48 -08:00
Robert Moore
7d19af2188 Add error check to debug object dump routine.
Add check for invalid handle in NsDumpOneObject.
2008-12-04 12:39:41 -08:00
Robert Moore
462b1db3db FADT: Update error msgs for consistency.
Update all messages so they look consistent.
2008-12-03 14:59:22 -08:00
Robert Moore
abcfc51e45 FADT: set UseDefaultRegisterWidths to TRUE by default.
This returns the FADT support to the original behavior, which is to
use default register widths. However, now check each register
definition and report a warning if it differs from the default.
This is a first step to moving away from the default widths, rather
than outright believing the widths in all FADTs for all machines,
considered rather dangerous until more data is obtained.
2008-12-03 09:41:09 -08:00
Robert Moore
1b61f8b176 Fix interface to AcpiGetGpeDevice.
Incorrectly defined with an extra indirection *
2008-12-03 09:38:53 -08:00