summaryrefslogtreecommitdiff
path: root/documents
diff options
context:
space:
mode:
authorRobert Moore <Robert.Moore@intel.com>2018-09-27 07:11:19 -0700
committerRobert Moore <Robert.Moore@intel.com>2018-09-27 07:11:19 -0700
commitee203847a2dc911c57e148329dbb49c18e168a4b (patch)
treebfead2d472a3d5c28797a9c3c05ab69aaa0b162a /documents
parent8f81cbef4ca13d511cd9e2194cd650d77982afba (diff)
downloadacpica-ee203847a2dc911c57e148329dbb49c18e168a4b.tar.gz
Logfile: Changes for version 20180927
Version 20180927
Diffstat (limited to 'documents')
-rw-r--r--documents/changes.txt93
1 files changed, 93 insertions, 0 deletions
diff --git a/documents/changes.txt b/documents/changes.txt
index d2a76e90a..c416898bb 100644
--- a/documents/changes.txt
+++ b/documents/changes.txt
@@ -1,4 +1,97 @@
----------------------------------------
+27 September 2018. Summary of changes for version 20180927:
+
+
+1) ACPICA kernel-resident subsystem:
+
+Updated the GPE support to clear the status of all ACPI events when
+entering any/all sleep states in order to avoid premature wakeups. In
+theory, this may cause some wakeup events to be missed, but the
+likelihood of this is small. This change restores the original behavior
+of the ACPICA code in order to fix a regression seen from the previous
+"Stop unconditionally clearing ACPI IRQs during suspend/resume" change.
+This regression could cause some systems to incorrectly wake immediately.
+
+Updated the execution of the _REG methods during initialization and
+namespace loading to bring the behavior into closer conformance to the
+ACPI specification and other ACPI implementations:
+
+From the ACPI specification 6.2A, section 6.5.4 "_REG (Region):
+ "Control methods must assume all operation regions are inaccessible
+until the _REG(RegionSpace, 1) method is executed"
+
+ "The exceptions to this rule are:
+1. OSPM must guarantee that the following operation regions are always
+accessible:
+ SystemIO operation regions.
+ SystemMemory operation regions when accessing memory returned by the
+System Address Map reporting interfaces."
+
+Since the state of both the SystemIO and SystemMemory address spaces are
+defined by the specification to never change, this ACPICA change ensures
+that now _REG is never called on them. This solves some problems seen in
+the field and provides compatibility with other ACPI implementations. An
+update to the upcoming new version of the ACPI specification will help
+clarify this behavior.
+
+Updated the implementation of support for the Generic Serial Bus. For the
+"bidirectional" protocols, the internal implementation now automatically
+creates a return data buffer of the maximum size (255). This handles the
+worst-case for data that is returned from the serial bus handler, and
+fixes some problems seen in the field. This new buffer is directly
+returned to the ASL. As such, there is no true "bidirectional" buffer,
+which matches the ACPI specification. This is the reason for the "double
+store" seen in the example ASL code in the specification, shown below:
+
+Word Process Call (AttribProcessCall):
+ OperationRegion(TOP1, GenericSerialBus, 0x00, 0x100)
+ Field(TOP1, BufferAcc, NoLock, Preserve)
+ {
+ FLD1, 8, // Virtual register at command value 1.
+ }
+
+ Name(BUFF, Buffer(20){}) // Create GenericSerialBus data buffer
+ // as BUFF
+ CreateWordField(BUFF, 0x02, DATA) // DATA = Data (Word)
+
+ Store(0x5416, DATA) // Save 0x5416 into the data buffer
+ Store(Store(BUFF, FLD1), BUFF) // Invoke a write/read Process Call
+transaction
+ // This is the "double store". The write to
+ // FLD1 returns a new buffer, which is stored
+ // back into BUFF with the second Store.
+
+
+2) iASL Compiler/Disassembler and Tools:
+
+iASL: Implemented detection of extraneous/redundant uses of the Offset()
+operator within a Field Unit list. A remark is now issued for these. For
+example, the first two of the Offset() operators below are extraneous.
+Because both the compiler and the interpreter track the offsets
+automatically, these Offsets simply refer to the current offset and are
+unnecessary. Note, when optimization is enabled, the iASL compiler will
+in fact remove the redundant Offset operators and will not emit any AML
+code for them.
+
+ OperationRegion (OPR1, SystemMemory, 0x100, 0x100)
+ Field (OPR1)
+ {
+ Offset (0), // Never needed
+ FLD1, 32,
+ Offset (4), // Redundant, offset is already 4 (bytes)
+ FLD2, 8,
+ Offset (64), // OK use of Offset.
+ FLD3, 16,
+ }
+dsdt.asl 14: Offset (0),
+Remark 2158 - ^ Unnecessary/redundant use of Offset
+operator
+
+dsdt.asl 16: Offset (4),
+Remark 2158 - ^ Unnecessary/redundant use of Offset
+operator
+
+----------------------------------------
10 August 2018. Summary of changes for version 20180810: