git: 1b7a2680fba5 - main - Import ACPICA 20210930
Jung-uk Kim
jkim at FreeBSD.org
Fri Oct 1 02:17:11 UTC 2021
The branch main has been updated by jkim:
URL: https://cgit.FreeBSD.org/src/commit/?id=1b7a2680fba589daf6f700565214919cb941ab56
commit 1b7a2680fba589daf6f700565214919cb941ab56
Author: Jung-uk Kim <jkim at FreeBSD.org>
AuthorDate: 2021-09-30 20:23:21 +0000
Commit: Jung-uk Kim <jkim at FreeBSD.org>
CommitDate: 2021-10-01 02:05:52 +0000
Import ACPICA 20210930
(cherry picked from commit c509b6ab0d7e5bafc5348b08653b8738bd40716e)
---
sys/contrib/dev/acpica/changes.txt | 50 ++++
sys/contrib/dev/acpica/common/dmtable.c | 58 ++++
sys/contrib/dev/acpica/common/dmtbdump2.c | 300 +++++++++++++++++++++
sys/contrib/dev/acpica/common/dmtbdump3.c | 5 +
sys/contrib/dev/acpica/common/dmtbinfo2.c | 183 +++++++++++++
sys/contrib/dev/acpica/common/dmtbinfo3.c | 28 +-
sys/contrib/dev/acpica/compiler/aslmethod.c | 70 ++---
sys/contrib/dev/acpica/compiler/dtcompiler.h | 4 +
sys/contrib/dev/acpica/compiler/dttable2.c | 5 +
sys/contrib/dev/acpica/compiler/dtutils.c | 2 +
sys/contrib/dev/acpica/compiler/preprocess.h | 2 +-
.../dev/acpica/components/dispatcher/dsfield.c | 2 +-
.../dev/acpica/components/hardware/hwesleep.c | 7 +-
.../dev/acpica/components/hardware/hwsleep.c | 10 +-
.../dev/acpica/components/hardware/hwxfsleep.c | 6 +
.../dev/acpica/components/utilities/utosi.c | 1 +
sys/contrib/dev/acpica/include/acdisasm.h | 25 +-
sys/contrib/dev/acpica/include/acglobal.h | 2 +
sys/contrib/dev/acpica/include/acpixf.h | 2 +-
sys/contrib/dev/acpica/include/actbinfo.h | 14 +
sys/contrib/dev/acpica/include/actbl2.h | 289 +++++++++++++++++++-
sys/contrib/dev/acpica/include/actbl3.h | 10 +-
sys/contrib/dev/acpica/include/actypes.h | 1 +
23 files changed, 1005 insertions(+), 71 deletions(-)
diff --git a/sys/contrib/dev/acpica/changes.txt b/sys/contrib/dev/acpica/changes.txt
index 64ca5cccdce4..ad2323971aea 100644
--- a/sys/contrib/dev/acpica/changes.txt
+++ b/sys/contrib/dev/acpica/changes.txt
@@ -1,3 +1,53 @@
+----------------------------------------
+30 September 2021. Summary of changes for version 20210930:
+
+This release is available at https://acpica.org/downloads
+
+1) ACPICA kernel-resident subsystem:
+
+Hardware: Avoid evaluating methods too early during system resume. During
+wakeup from system-wide sleep states, AcpiGetSleepTypeData() is called
+and it tries to get memory from the OS in order to evaluate a control
+method, but if KFENCE is enabled in the Linux kernel, the memory
+allocation attempt causes an IRQ work to be queued and a self-IPI to be
+sent to the CPU running the code which requires the memory controller to
+be ready, so if that happens too early in the wakeup path, it doesn't
+work.
+
+Prevent that from taking place by calling AcpiGetSleepTypeData() for S0
+upfront, when preparing to enter a given sleep state, and saving the data
+obtained by it for later use during system wakeup.
+
+Added a new _OSI string, "Windows 2020". Posted by superm1.
+
+2) iASL Compiler/Disassembler and ACPICA tools:
+
+iASL compiler: Updated the check for usage of _CRS, _DIS, _PRS, and _SRS
+objects:
+New/latest rules: Under a Device Object:
+ 1) If _PRS is present, must have _CRS and _SRS
+ 2) If _SRS is present, must have _PRS (_PRS requires _CRS and
+_SRS)
+ 3) If _DIS is present, must have _SRS (_SRS requires _PRS, _PRS
+requires _CRS and _SRS)
+ 4) If _SRS is present, probably should have a _DIS (Remark only)
+
+iASL table disassembler: Added disassembly support for the NHLT ACPI
+table. Note: support for Vendor-defined microphone arrays and SNR
+extensions are not supported at this time -- mostly due to a lack of
+example tables. Actual compiler support for NHLT is forthcoming.
+
+Added a new subtable type for ACPI 6.4 SRAT Generic Port Affinity. It
+uses the same subtable structure as the existing Generic Initiator
+Affinity type.
+
+Added the flag for online capable in the MADT, introduced in ACPI 6.3.
+Posted by superm1.
+
+3) ACPICA documentation: Updated the legal info (that appears at the
+start of the Documents) to clarify distribution rights that are granted.
+
+
----------------------------------------
30 July 2021. Summary of changes for version 20210730:
diff --git a/sys/contrib/dev/acpica/common/dmtable.c b/sys/contrib/dev/acpica/common/dmtable.c
index cbef83364e73..5e3f2ef748da 100644
--- a/sys/contrib/dev/acpica/common/dmtable.c
+++ b/sys/contrib/dev/acpica/common/dmtable.c
@@ -417,6 +417,26 @@ static const char *AcpiDmNfitSubnames[] =
"Unknown Subtable Type" /* Reserved */
};
+static const char *AcpiDmNhltLinkTypeNames[] =
+{
+ "Reserved for HD-Audio", /* ACPI_NHLT_RESERVED_HD_AUDIO */
+ "Reserved for DSP", /* ACPI_NHLT_RESERVED_DSP */
+ "Type PDM", /* ACPI_NHLT_PDM */
+ "Type SSP", /* ACPI_NHLT_SSP */
+ "Reserved for SlimBus", /* ACPI_NHLT_RESERVED_SLIMBUS */
+ "Reserved for SoundWire", /* ACPI_NHLT_RESERVED_SOUNDWIRE */
+ "Unknown Link Type" /* Reserved */
+};
+
+static const char *AcpiDmNhltDirectionNames[] =
+{
+ "Render", /* ACPI_NHLT_DIR_RENDER */
+ "Capture", /* ACPI_NHLT_DIR_CAPTURE */
+ "Render with Loopback", /* ACPI_NHLT_DIR_RENDER_LOOPBACK */
+ "Feedback for Render", /* ACPI_NHLT_DIR_RENDER_FEEDBACK */
+ "Unknown Direction" /* Reserved */
+};
+
static const char *AcpiDmPcctSubnames[] =
{
"Generic Communications Subspace", /* ACPI_PCCT_TYPE_GENERIC_SUBSPACE */
@@ -473,6 +493,7 @@ static const char *AcpiDmSratSubnames[] =
"GICC Affinity",
"GIC ITS Affinity", /* Acpi 6.2 */
"Generic Initiator Affinity", /* Acpi 6.3 */
+ "Generic Port Affinity", /* Acpi 6.4 */
"Unknown Subtable Type" /* Reserved */
};
@@ -614,6 +635,7 @@ const ACPI_DMTABLE_DATA AcpiDmTableData[] =
{ACPI_SIG_MSCT, NULL, AcpiDmDumpMsct, DtCompileMsct, TemplateMsct},
{ACPI_SIG_MSDM, NULL, AcpiDmDumpSlic, DtCompileSlic, TemplateMsdm},
{ACPI_SIG_NFIT, AcpiDmTableInfoNfit, AcpiDmDumpNfit, DtCompileNfit, TemplateNfit},
+ {ACPI_SIG_NHLT, AcpiDmTableInfoNhlt, AcpiDmDumpNhlt, NULL, NULL},
{ACPI_SIG_PCCT, AcpiDmTableInfoPcct, AcpiDmDumpPcct, DtCompilePcct, TemplatePcct},
{ACPI_SIG_PDTT, AcpiDmTableInfoPdtt, AcpiDmDumpPdtt, DtCompilePdtt, TemplatePdtt},
{ACPI_SIG_PHAT, NULL, AcpiDmDumpPhat, DtCompilePhat, TemplatePhat},
@@ -1050,6 +1072,8 @@ AcpiDmDumpTable (
case ACPI_DMT_IVRS_DE:
case ACPI_DMT_GTDT:
case ACPI_DMT_MADT:
+ case ACPI_DMT_NHLT1:
+ case ACPI_DMT_NHLT1a:
case ACPI_DMT_PCCT:
case ACPI_DMT_PMTT:
case ACPI_DMT_PPTT:
@@ -1138,6 +1162,11 @@ AcpiDmDumpTable (
ByteLength = 16;
break;
+ case ACPI_DMT_BUF18:
+
+ ByteLength = 18;
+ break;
+
case ACPI_DMT_BUF128:
ByteLength = 128;
@@ -1343,6 +1372,7 @@ AcpiDmDumpTable (
case ACPI_DMT_BUF10:
case ACPI_DMT_BUF12:
case ACPI_DMT_BUF16:
+ case ACPI_DMT_BUF18:
case ACPI_DMT_BUF128:
/*
* Buffer: Size depends on the opcode and was set above.
@@ -1790,6 +1820,34 @@ AcpiDmDumpTable (
AcpiDmNfitSubnames[Temp16]);
break;
+ case ACPI_DMT_NHLT1:
+
+ /* NHLT link types */
+
+ Temp8 = *Target;
+ if (Temp8 > ACPI_NHLT_TYPE_RESERVED)
+ {
+ Temp8 = ACPI_NHLT_TYPE_RESERVED;
+ }
+
+ AcpiOsPrintf (UINT8_FORMAT, *Target,
+ AcpiDmNhltLinkTypeNames[Temp8]);
+ break;
+
+ case ACPI_DMT_NHLT1a:
+
+ /* NHLT direction */
+
+ Temp8 = *Target;
+ if (Temp8 > ACPI_NHLT_DIR_RESERVED)
+ {
+ Temp8 = ACPI_NHLT_DIR_RESERVED;
+ }
+
+ AcpiOsPrintf (UINT8_FORMAT, *Target,
+ AcpiDmNhltDirectionNames[Temp8]);
+ break;
+
case ACPI_DMT_PCCT:
/* PCCT subtable types */
diff --git a/sys/contrib/dev/acpica/common/dmtbdump2.c b/sys/contrib/dev/acpica/common/dmtbdump2.c
index a13e77e5c03b..e3ad649479b0 100644
--- a/sys/contrib/dev/acpica/common/dmtbdump2.c
+++ b/sys/contrib/dev/acpica/common/dmtbdump2.c
@@ -1467,6 +1467,306 @@ NextSubtable:
}
+/*******************************************************************************
+ *
+ * FUNCTION: AcpiDmDumpNhlt
+ *
+ * PARAMETERS: Table - A NHLT table
+ *
+ * RETURN: None
+ *
+ * DESCRIPTION: Format the contents of an NHLT.
+ *
+ ******************************************************************************/
+
+void
+AcpiDmDumpNhlt (
+ ACPI_TABLE_HEADER *Table)
+{
+ ACPI_STATUS Status;
+ UINT32 Offset;
+ UINT32 TableLength = Table->Length;
+ UINT32 EndpointCount;
+ UINT8 FormatsCount;
+ ACPI_NHLT_ENDPOINT *Subtable;
+ ACPI_NHLT_FORMAT_CONFIG *FormatSubtable;
+ ACPI_TABLE_NHLT *InfoTable;
+ UINT32 CapabilitiesSize;
+ UINT32 i;
+ UINT32 j;
+ UINT32 k;
+ UINT32 EndpointEndOffset;
+ UINT8 ConfigType = 0;
+ UINT8 ArrayType;
+ ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_A *DevSpecific;
+ ACPI_NHLT_FORMATS_CONFIG *FormatsConfig;
+ ACPI_NHLT_LINUX_SPECIFIC_COUNT *Count;
+ ACPI_NHLT_LINUX_SPECIFIC_DATA *LinuxData;
+
+
+ /* Main table */
+
+ AcpiOsPrintf ("/* Main table */\n");
+
+ Status = AcpiDmDumpTable (TableLength, 0, Table, 0, AcpiDmTableInfoNhlt);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+
+ /* Get the Endpoint Descriptor Count */
+
+ InfoTable = ACPI_ADD_PTR (ACPI_TABLE_NHLT, Table, 0);
+ EndpointCount = InfoTable->EndpointCount;
+
+ /* Subtables */
+
+ Offset = sizeof (ACPI_TABLE_NHLT);
+
+ while (Offset < TableLength)
+ {
+ /* A variable number of Endpoint Descriptors - process each */
+
+ for (i = 0; i < EndpointCount; i++)
+ {
+ /* Do the Endpoint Descriptor table */
+
+ Subtable = ACPI_ADD_PTR (ACPI_NHLT_ENDPOINT, Table, Offset);
+ if (Subtable->DescriptorLength > TableLength)
+ {
+ Offset += 1;
+ AcpiOsPrintf ("\n/* Endpoint Descriptor Length larger than"
+ " table size: %X, table %X, adjusting table offset (+1) */\n",
+ Subtable->DescriptorLength, TableLength);
+
+ Subtable = ACPI_ADD_PTR (ACPI_NHLT_ENDPOINT, Table, Offset);
+ }
+
+ AcpiOsPrintf ("\n/* Endpoint Descriptor #%u */\n", i+1);
+ Status = AcpiDmDumpTable (TableLength, Offset, Subtable,
+ Subtable->DescriptorLength, AcpiDmTableInfoNhlt0);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+ EndpointEndOffset = Subtable->DescriptorLength + Offset;
+
+ /* Check for endpoint descriptor beyond end-of-table */
+
+ if (Subtable->DescriptorLength > TableLength)
+ {
+ AcpiOsPrintf ("\n/* Endpoint Descriptor Length larger than table size: %X, table %X */\n",
+ Subtable->DescriptorLength, TableLength);
+ }
+ Offset += sizeof (ACPI_NHLT_ENDPOINT);
+ Subtable = ACPI_ADD_PTR (ACPI_NHLT_ENDPOINT, Table, Offset);
+
+ /* Do the Device Specific table */
+
+ AcpiOsPrintf ("\n/* Endpoint Device_Specific_Config table */\n");
+ DevSpecific = ACPI_CAST_PTR (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_A, Subtable);
+ CapabilitiesSize = DevSpecific->CapabilitiesSize;
+
+ /* Different subtables based upon capabilities_size */
+
+ switch (CapabilitiesSize)
+ {
+ case 0:
+ Status = AcpiDmDumpTable (TableLength, Offset, DevSpecific,
+ sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_B), AcpiDmTableInfoNhlt5b);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+ Offset += sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_B);
+ break;
+
+ case 1:
+ Status = AcpiDmDumpTable (TableLength, Offset, DevSpecific,
+ sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_C), AcpiDmTableInfoNhlt5c);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+ Offset += sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_C);
+ break;
+
+ case 2:
+ Status = AcpiDmDumpTable (TableLength, Offset, DevSpecific,
+ sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG), AcpiDmTableInfoNhlt5);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+ Offset += sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG);
+ break;
+
+ case 3:
+ ConfigType = DevSpecific->ConfigType;
+ ArrayType = DevSpecific->ArrayType;
+
+ Status = AcpiDmDumpTable (TableLength, Offset, DevSpecific,
+ sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_A), AcpiDmTableInfoNhlt5a);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+
+ /* Capabilities Size == 3 */
+ Offset += sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_A);
+
+ /* Check for a vendor-defined mic array */
+
+ if ((ConfigType == ACPI_NHLT_TYPE_MIC_ARRAY) && ((ArrayType & ARRAY_TYPE_MASK) == VENDOR_DEFINED))
+ {
+ /* Vendor-defined microphone array */
+
+ AcpiOsPrintf ("\n/* Vendor-defined microphone array */\n");
+
+ Status = AcpiDmDumpTable (TableLength, Offset, DevSpecific,
+ sizeof (ACPI_NHLT_VENDOR_MIC_CONFIG), AcpiDmTableInfoNhlt6);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+ Offset += sizeof (ACPI_NHLT_VENDOR_MIC_CONFIG);
+ }
+ break;
+
+ default:
+ Status = AcpiDmDumpTable (TableLength, Offset, DevSpecific,
+ sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_B), AcpiDmTableInfoNhlt5b);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+
+ Offset += sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_B);
+ Status = AcpiDmDumpTable (TableLength, Offset, DevSpecific,
+ CapabilitiesSize, AcpiDmTableInfoNhlt3a);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+ Offset += CapabilitiesSize;
+ break;
+ }
+
+ /* Do the Formats_Config table */
+
+ FormatsConfig = ACPI_ADD_PTR (ACPI_NHLT_FORMATS_CONFIG, Table, Offset);
+ FormatsCount = FormatsConfig->FormatsCount;
+
+ AcpiOsPrintf ("\n/* Formats_Config table */\n");
+
+ Status = AcpiDmDumpTable (TableLength, Offset, FormatsConfig,
+ sizeof (ACPI_NHLT_FORMATS_CONFIG), AcpiDmTableInfoNhlt4);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+ Offset += sizeof (ACPI_NHLT_FORMATS_CONFIG);
+
+ /* A variable number of Format_Config Descriptors - process each */
+
+ for (j = 0; j < FormatsCount; j++)
+ {
+ FormatSubtable = ACPI_ADD_PTR (ACPI_NHLT_FORMAT_CONFIG, Table, Offset);
+ CapabilitiesSize = FormatSubtable->CapabilitySize;
+
+ /* Do the Wave_extensible struct */
+
+ AcpiOsPrintf ("\n/* Wave_Format_Extensible table #%u */\n", j+1);
+ Status = AcpiDmDumpTable (TableLength, Offset, FormatSubtable,
+ sizeof (ACPI_NHLT_FORMAT_CONFIG), AcpiDmTableInfoNhlt3);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+ Offset += sizeof (ACPI_NHLT_WAVE_EXTENSIBLE);
+
+ /* Do the Capabilities array */
+
+ Offset += sizeof (UINT32);
+ AcpiOsPrintf ("\n/* Specific_Config table #%u */\n", j+1);
+ FormatSubtable = ACPI_ADD_PTR (ACPI_NHLT_FORMAT_CONFIG, Table, Offset);
+ Status = AcpiDmDumpTable (TableLength, Offset, FormatSubtable,
+ CapabilitiesSize, AcpiDmTableInfoNhlt3a);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+ Offset += CapabilitiesSize;
+ }
+
+ /*
+ * If we are not done with the Endpoint(s) yet, then there must be
+ * some Linux-specific structure(s) yet to be processed.
+ */
+ if (Offset < EndpointEndOffset)
+ {
+ AcpiOsPrintf ("\n");
+ Count = ACPI_ADD_PTR (ACPI_NHLT_LINUX_SPECIFIC_COUNT, Table, Offset);
+ Status = AcpiDmDumpTable (TableLength, Offset, Count,
+ sizeof (ACPI_NHLT_LINUX_SPECIFIC_COUNT), AcpiDmTableInfoNhlt7);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+ Offset += sizeof (ACPI_NHLT_LINUX_SPECIFIC_COUNT);
+
+ /* Variable number of linux-specific structures */
+
+ for (k = 0; k < Count->StructureCount; k++)
+ {
+ LinuxData = ACPI_ADD_PTR (ACPI_NHLT_LINUX_SPECIFIC_DATA, Table, Offset);
+
+ AcpiOsPrintf ("\n/* Linux-specific structure #%u */\n", k+1);
+
+ Status = AcpiDmDumpTable (TableLength, Offset, LinuxData,
+ sizeof (ACPI_NHLT_LINUX_SPECIFIC_DATA), AcpiDmTableInfoNhlt7a);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+
+ Offset += sizeof (ACPI_NHLT_LINUX_SPECIFIC_DATA);
+ }
+
+ /* Should be at the end of the Endpoint structure. Skip any extra bytes */
+
+ if (Offset < EndpointEndOffset)
+ {
+ AcpiOsPrintf ("\n/* Endpoint descriptor ended before endpoint size was reached. "
+ "skipped %X input bytes, current offset: %X, Endpoint End Offset: %X */\n",
+ EndpointEndOffset - Offset, Offset, EndpointEndOffset);
+ AcpiUtDumpBuffer (((UINT8 *)Table)+Offset,
+ EndpointEndOffset - Offset, DB_BYTE_DISPLAY, Offset);
+ Offset = EndpointEndOffset;
+ }
+ }
+ }
+
+ /* Emit the table terminator (if present) */
+
+ if (Offset == TableLength - sizeof (ACPI_NHLT_TABLE_TERMINATOR))
+ {
+ LinuxData = ACPI_ADD_PTR (ACPI_NHLT_LINUX_SPECIFIC_DATA, Table, Offset);
+ AcpiOsPrintf ("\n/* Table terminator structure */\n");
+
+ Status = AcpiDmDumpTable (TableLength, Offset, LinuxData,
+ sizeof (ACPI_NHLT_TABLE_TERMINATOR), AcpiDmTableInfoNhlt8);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+ }
+
+ return;
+ }
+}
+
+
/*******************************************************************************
*
* FUNCTION: AcpiDmDumpPcct
diff --git a/sys/contrib/dev/acpica/common/dmtbdump3.c b/sys/contrib/dev/acpica/common/dmtbdump3.c
index 26cfe2f9b695..f23aeaf8ee64 100644
--- a/sys/contrib/dev/acpica/common/dmtbdump3.c
+++ b/sys/contrib/dev/acpica/common/dmtbdump3.c
@@ -338,6 +338,11 @@ AcpiDmDumpSrat (
InfoTable = AcpiDmTableInfoSrat5;
break;
+ case ACPI_SRAT_TYPE_GENERIC_PORT_AFFINITY:
+
+ InfoTable = AcpiDmTableInfoSrat6;
+ break;
+
default:
AcpiOsPrintf ("\n**** Unknown SRAT subtable type 0x%X\n",
Subtable->Type);
diff --git a/sys/contrib/dev/acpica/common/dmtbinfo2.c b/sys/contrib/dev/acpica/common/dmtbinfo2.c
index 3eb4e44902d3..52173c5f8a0e 100644
--- a/sys/contrib/dev/acpica/common/dmtbinfo2.c
+++ b/sys/contrib/dev/acpica/common/dmtbinfo2.c
@@ -1194,6 +1194,189 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoNfit7[] =
};
+/*******************************************************************************
+ *
+ * NHLT - Non HD Audio Link Table. Conforms to Intel Smart Sound Technology
+ * NHLT Specification, January 2020 Revision 0.8.1
+ *
+ ******************************************************************************/
+
+/* Main table */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt[] =
+{
+ {ACPI_DMT_UINT8, ACPI_NHLT_OFFSET (EndpointCount), "Endpoint Count", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* Endpoint config */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt0[] =
+{
+ {ACPI_DMT_UINT32, ACPI_NHLT0_OFFSET (DescriptorLength), "Descriptor Length", DT_LENGTH},
+ {ACPI_DMT_NHLT1, ACPI_NHLT0_OFFSET (LinkType), "Link Type", 0},
+ {ACPI_DMT_UINT8, ACPI_NHLT0_OFFSET (InstanceId), "Instance Id", 0},
+ {ACPI_DMT_UINT16, ACPI_NHLT0_OFFSET (VendorId), "Vendor Id", 0},
+ {ACPI_DMT_UINT16, ACPI_NHLT0_OFFSET (DeviceId), "Device Id", 0},
+ {ACPI_DMT_UINT16, ACPI_NHLT0_OFFSET (RevisionId), "Revision Id", 0},
+ {ACPI_DMT_UINT32, ACPI_NHLT0_OFFSET (SubsystemId), "Subsystem Id", 0},
+ {ACPI_DMT_UINT8, ACPI_NHLT0_OFFSET (DeviceType), "Device Type", 0},
+ {ACPI_DMT_NHLT1a, ACPI_NHLT0_OFFSET (Direction), "Direction", 0},
+ {ACPI_DMT_UINT8, ACPI_NHLT0_OFFSET (VirtualBusId), "Virtual Bus Id", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* Device_Specific config */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt1[] =
+{
+ {ACPI_DMT_UINT32, ACPI_NHLT1_OFFSET (CapabilitiesSize), "Capabilities Size", DT_LENGTH},
+ {ACPI_DMT_UINT8, ACPI_NHLT1_OFFSET (VirtualSlot), "Virtual Slot", 0},
+ {ACPI_DMT_UINT8, ACPI_NHLT1_OFFSET (ConfigType), "Config Type", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* Wave Format Extensible */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt2[] =
+{
+ {ACPI_DMT_UINT16, ACPI_NHLT2_OFFSET (FormatTag), "Format Tag", 0},
+ {ACPI_DMT_UINT16, ACPI_NHLT2_OFFSET (ChannelCount), "Channel Count", 0},
+ {ACPI_DMT_UINT32, ACPI_NHLT2_OFFSET (SamplesPerSec), "Samples Per Second", 0},
+ {ACPI_DMT_UINT32, ACPI_NHLT2_OFFSET (AvgBytesPerSec), "Average Bytes Per Second", 0},
+ {ACPI_DMT_UINT16, ACPI_NHLT2_OFFSET (BlockAlign), "Block Alignment", 0},
+ {ACPI_DMT_UINT16, ACPI_NHLT2_OFFSET (BitsPerSample), "Bits Per Sample", 0},
+ {ACPI_DMT_UINT16, ACPI_NHLT2_OFFSET (ExtraFormatSize), "Extra Format Size", 0},
+ {ACPI_DMT_UINT16, ACPI_NHLT2_OFFSET (ValidBitsPerSample), "Valid Bits Per Sample", 0},
+ {ACPI_DMT_UINT32, ACPI_NHLT2_OFFSET (ChannelMask), "Channel Mask", 0},
+ {ACPI_DMT_UUID, ACPI_NHLT2_OFFSET (SubFormatGuid), "SubFormat GUID", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* Format Config */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt3[] =
+{
+ {ACPI_DMT_UINT16, ACPI_NHLT3_OFFSET (Format.FormatTag), "Format Tag", 0},
+ {ACPI_DMT_UINT16, ACPI_NHLT3_OFFSET (Format.ChannelCount), "Channel Count", 0},
+ {ACPI_DMT_UINT32, ACPI_NHLT3_OFFSET (Format.SamplesPerSec), "Samples Per Second", 0},
+ {ACPI_DMT_UINT32, ACPI_NHLT3_OFFSET (Format.AvgBytesPerSec), "Average Bytes Per Second", 0},
+ {ACPI_DMT_UINT16, ACPI_NHLT3_OFFSET (Format.BlockAlign), "Block Alignment", 0},
+ {ACPI_DMT_UINT16, ACPI_NHLT3_OFFSET (Format.BitsPerSample), "Bits Per Sample", 0},
+ {ACPI_DMT_UINT16, ACPI_NHLT3_OFFSET (Format.ExtraFormatSize), "Extra Format Size", 0},
+ {ACPI_DMT_UINT16, ACPI_NHLT3_OFFSET (Format.ValidBitsPerSample), "Valid Bits Per Sample", 0},
+ {ACPI_DMT_UINT32, ACPI_NHLT3_OFFSET (Format.ChannelMask), "Channel Mask", 0},
+ {ACPI_DMT_UUID, ACPI_NHLT3_OFFSET (Format.SubFormatGuid), "SubFormat GUID", 0},
+ {ACPI_DMT_UINT32, ACPI_NHLT3_OFFSET (CapabilitySize), "Capabilities Length", DT_LENGTH},
+ ACPI_DMT_TERMINATOR
+};
+
+/*
+ * We treat the binary Capabilities field as its own subtable (to make
+ * ACPI_DMT_RAW_BUFFER work properly).
+ */
+ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt3a[] =
+{
+ {ACPI_DMT_RAW_BUFFER, 0, "Capabilities", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+
+/* Formats Config */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt4[] =
+{
+ {ACPI_DMT_UINT8, ACPI_NHLT4_OFFSET (FormatsCount), "Formats Count", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* Specific Config, CapabilitiesSize == 2 */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5[] =
+{
+ {ACPI_DMT_UINT32, ACPI_NHLT5_OFFSET (CapabilitiesSize), "Capabilities Size", DT_LENGTH},
+ {ACPI_DMT_UINT8, ACPI_NHLT5_OFFSET (VirtualSlot), "Virtual Slot", 0},
+ {ACPI_DMT_UINT8, ACPI_NHLT5_OFFSET (ConfigType), "Config Type", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* Specific Config, CapabilitiesSize == 3 */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5a[] =
+{
+ {ACPI_DMT_UINT32, ACPI_NHLT5A_OFFSET (CapabilitiesSize), "Capabilities Size", DT_LENGTH},
+ {ACPI_DMT_UINT8, ACPI_NHLT5A_OFFSET (VirtualSlot), "Virtual Slot", 0},
+ {ACPI_DMT_UINT8, ACPI_NHLT5A_OFFSET (ConfigType), "Config Type", 0},
+ {ACPI_DMT_UINT8, ACPI_NHLT5A_OFFSET (ArrayType), "Array Type", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* Specific Config, CapabilitiesSize == 0 */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5b[] =
+{
+ {ACPI_DMT_UINT32, ACPI_NHLT5B_OFFSET (CapabilitiesSize), "Capabilities Size", DT_LENGTH},
+ ACPI_DMT_TERMINATOR
+};
+
+/* Specific Config, CapabilitiesSize == 1 */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5c[] =
+{
+ {ACPI_DMT_UINT32, ACPI_NHLT5C_OFFSET (CapabilitiesSize), "Capabilities Size", DT_LENGTH},
+ {ACPI_DMT_UINT8, ACPI_NHLT5C_OFFSET (VirtualSlot), "Virtual Slot", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* Microphone array Config */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt6[] =
+{
+ {ACPI_DMT_UINT8, ACPI_NHLT6_OFFSET (Type), "Type", 0},
+ {ACPI_DMT_UINT8, ACPI_NHLT6_OFFSET (Panel), "Panel", 0},
+ {ACPI_DMT_UINT16, ACPI_NHLT6_OFFSET (SpeakerPositionDistance), "Speaker Position Distance", 0},
+ {ACPI_DMT_UINT16, ACPI_NHLT6_OFFSET (HorizontalOffset), "Horizontal Offset", 0},
+ {ACPI_DMT_UINT16, ACPI_NHLT6_OFFSET (VerticalOffset), "Vertical Offset", 0},
+ {ACPI_DMT_UINT8, ACPI_NHLT6_OFFSET (FrequencyLowBand), "Frequency Low Band", 0},
+ {ACPI_DMT_UINT8, ACPI_NHLT6_OFFSET (FrequencyHighBand), "Frequency High Band", 0},
+ {ACPI_DMT_UINT16, ACPI_NHLT6_OFFSET (DirectionAngle), "Direction Angle", 0},
+ {ACPI_DMT_UINT16, ACPI_NHLT6_OFFSET (ElevationAngle), "Elevation Angle", 0},
+ {ACPI_DMT_UINT16, ACPI_NHLT6_OFFSET (WorkVerticalAngleBegin), "Work Vertical Angle Begin", 0},
+ {ACPI_DMT_UINT16, ACPI_NHLT6_OFFSET (WorkVerticalAngleEnd), "Work Vertical Angle End", 0},
+ {ACPI_DMT_UINT16, ACPI_NHLT6_OFFSET (WorkHorizontalAngleBegin), "Work Horizontal Angle Begin", 0},
+ {ACPI_DMT_UINT16, ACPI_NHLT6_OFFSET (WorkHorizontalAngleEnd), "Work Horizontal Angle End", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* Number of Linux-specific structures */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt7[] =
+{
+ {ACPI_DMT_UINT8, ACPI_NHLT7_OFFSET (StructureCount), "Linux-specific struct count", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* The Linux-specific structure */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt7a[] =
+{
+ {ACPI_DMT_BUF16, ACPI_NHLT7A_OFFSET (DeviceId), "Device ID", 0},
+ {ACPI_DMT_UINT8, ACPI_NHLT7A_OFFSET (DeviceInstanceId), "Device Instance ID", 0},
+ {ACPI_DMT_UINT8, ACPI_NHLT7A_OFFSET (DevicePortId), "Device Port ID", 0},
+ {ACPI_DMT_BUF18, ACPI_NHLT7A_OFFSET (Filler), "Specific Data", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* Table terminator (may or may not be present) */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt8[] =
+{
+ {ACPI_DMT_UINT32, ACPI_NHLT8_OFFSET (TerminatorValue), "Terminator Value", 0},
+ {ACPI_DMT_UINT32, ACPI_NHLT8_OFFSET (TerminatorSignature), "Terminator Signature", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+
/*******************************************************************************
*
* PCCT - Platform Communications Channel Table (ACPI 5.0)
diff --git a/sys/contrib/dev/acpica/common/dmtbinfo3.c b/sys/contrib/dev/acpica/common/dmtbinfo3.c
index 9b2e30814921..63c49f2680e4 100644
--- a/sys/contrib/dev/acpica/common/dmtbinfo3.c
+++ b/sys/contrib/dev/acpica/common/dmtbinfo3.c
@@ -368,21 +368,33 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoSrat4[] =
ACPI_DMT_TERMINATOR
};
+/* Common SRAT structure for Generic Affinity Subtables */
+
+#define ACPI_DM_SRAT_GENERIC_AFFINITY \
+ {ACPI_DMT_UINT8, ACPI_SRAT5_OFFSET (Reserved), "Reserved1", 0}, \
+ {ACPI_DMT_UINT8, ACPI_SRAT5_OFFSET (DeviceHandleType), "Device Handle Type", 0}, \
+ {ACPI_DMT_UINT32, ACPI_SRAT5_OFFSET (ProximityDomain), "Proximity Domain", 0}, \
+ {ACPI_DMT_BUF16, ACPI_SRAT5_OFFSET (DeviceHandle), "Device Handle", 0}, \
+ {ACPI_DMT_UINT32, ACPI_SRAT5_OFFSET (Flags), "Flags (decoded below)", DT_FLAG}, \
+ {ACPI_DMT_FLAG0, ACPI_SRAT5_FLAG_OFFSET (Flags,0), "Enabled", 0}, \
+ {ACPI_DMT_FLAG1, ACPI_SRAT5_FLAG_OFFSET (Flags,0), "Architectural Transactions", 0}, \
+ {ACPI_DMT_UINT32, ACPI_SRAT5_OFFSET (Reserved1), "Reserved2", 0}
+
/* 5: Generic Initiator Affinity Structure (ACPI 6.3) */
ACPI_DMTABLE_INFO AcpiDmTableInfoSrat5[] =
{
- {ACPI_DMT_UINT8, ACPI_SRAT5_OFFSET (Reserved), "Reserved1", 0},
- {ACPI_DMT_UINT8, ACPI_SRAT5_OFFSET (DeviceHandleType), "Device Handle Type", 0},
- {ACPI_DMT_UINT32, ACPI_SRAT5_OFFSET (ProximityDomain), "Proximity Domain", 0},
- {ACPI_DMT_BUF16, ACPI_SRAT5_OFFSET (DeviceHandle), "Device Handle", 0},
- {ACPI_DMT_UINT32, ACPI_SRAT5_OFFSET (Flags), "Flags (decoded below)", DT_FLAG},
- {ACPI_DMT_FLAG0, ACPI_SRAT5_FLAG_OFFSET (Flags,0), "Enabled", 0},
- {ACPI_DMT_FLAG1, ACPI_SRAT5_FLAG_OFFSET (Flags,0), "Architectural Transactions", 0},
- {ACPI_DMT_UINT32, ACPI_SRAT5_OFFSET (Reserved1), "Reserved2", 0},
+ ACPI_DM_SRAT_GENERIC_AFFINITY,
ACPI_DMT_TERMINATOR
};
+/* 6: Generic Port Affinity Structure (ACPI 6.4) */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoSrat6[] =
+{
+ ACPI_DM_SRAT_GENERIC_AFFINITY,
+ ACPI_DMT_TERMINATOR
+};
/*******************************************************************************
*
diff --git a/sys/contrib/dev/acpica/compiler/aslmethod.c b/sys/contrib/dev/acpica/compiler/aslmethod.c
index a0cb02ae6dc8..889f2baf5e95 100644
--- a/sys/contrib/dev/acpica/compiler/aslmethod.c
+++ b/sys/contrib/dev/acpica/compiler/aslmethod.c
@@ -559,74 +559,56 @@ MtMethodAnalysisWalkBegin (
*
* Under the Device Object:
*
- * 1) If _DIS is present, must have a _CRS, _PRS, and _SRS
- * 2) If _PRS is present, must have a _CRS and _SRS
- * 3) If _SRS is present, must have a _CRS and _PRS
+ * 1) If _PRS present, must have _CRS and _SRS
+ * 2) If _SRS present, must have _PRS (_PRS requires _CRS and _SRS)
+ * 3) If _DIS present, must have _SRS (_SRS requires _PRS, _PRS requires _CRS and _SRS)
+ * 4) If _SRS present, probably should have a _DIS (Remark only)
*/
CrsExists = ApFindNameInDeviceTree (METHOD_NAME__CRS, Op);
DisExists = ApFindNameInDeviceTree (METHOD_NAME__DIS, Op);
PrsExists = ApFindNameInDeviceTree (METHOD_NAME__PRS, Op);
SrsExists = ApFindNameInDeviceTree (METHOD_NAME__SRS, Op);
- /* 1) If _DIS is present, must have a _CRS, _PRS, and _SRS */
+ /* 1) If _PRS is present, must have a _CRS and _SRS */
- if (DisExists)
+ if (PrsExists)
{
if (!CrsExists)
{
AslError (ASL_WARNING, ASL_MSG_MISSING_DEPENDENCY, Op,
- "_DIS is missing a _CRS, requires a _CRS, _PRS, and a _SRS");
- }
-
- if (!PrsExists)
- {
- AslError (ASL_WARNING, ASL_MSG_MISSING_DEPENDENCY, Op,
- "_DIS is missing a _PRS, requires a _CRS, _PRS, and a _SRS");
+ "Device has a _PRS, missing a _CRS, required");
}
-
if (!SrsExists)
{
AslError (ASL_WARNING, ASL_MSG_MISSING_DEPENDENCY, Op,
- "_DIS is missing a _SRS, requires a _CRS, _PRS, and a _SRS");
+ "Device has a _PRS, missing a _SRS, required");
}
}
- /* 2) If _PRS is present, must have a _CRS and _SRS */
+ /* 2) If _SRS is present, must have _PRS (_PRS requires _CRS and _SRS) */
- if (PrsExists)
+ if ((SrsExists) && (!PrsExists))
{
- if (!CrsExists)
- {
- AslError (ASL_WARNING, ASL_MSG_MISSING_DEPENDENCY, Op,
- "_PRS is missing a _CRS, requires a _CRS and a _SRS");
- }
-
- if (!SrsExists)
- {
- AslError (ASL_WARNING, ASL_MSG_MISSING_DEPENDENCY, Op,
- "_PRS is missing a _SRS, requires a _CRS and a _SRS");
- }
+ AslError (ASL_WARNING, ASL_MSG_MISSING_DEPENDENCY, Op,
+ "Device has a _SRS, missing a _PRS, required");
}
- /* 3) If _SRS is present, must have a _CRS and _PRS */
+ /* 3) If _DIS is present, must have a _SRS */
- if (SrsExists)
+ if ((DisExists) && (!SrsExists))
{
- if (!CrsExists)
- {
- AslError (ASL_WARNING, ASL_MSG_MISSING_DEPENDENCY, Op,
- "_SRS is missing a _CRS, requires a _CRS and a _PRS");
- }
- if (!PrsExists)
- {
- AslError (ASL_WARNING, ASL_MSG_MISSING_DEPENDENCY, Op,
- "_SRS is missing a _PRS, requires a _CRS and a _PRS");
- }
- if (!DisExists)
- {
- AslError (ASL_REMARK, ASL_MSG_MISSING_DEPENDENCY, Op,
- "_SRS is missing a _DIS");
- }
+ AslError (ASL_WARNING, ASL_MSG_MISSING_DEPENDENCY, Op,
+ "Device has a _DIS, missing a _SRS, required");
+ }
+
+ /*
+ * 4) If _SRS is present, should have a _DIS (_PRS requires _CRS
+ * and _SRS) Remark only.
+ */
+ if ((SrsExists) && (!DisExists))
+ {
+ AslError (ASL_REMARK, ASL_MSG_MISSING_DEPENDENCY, Op,
+ "Device has a _SRS, no corresponding _DIS");
}
break;
diff --git a/sys/contrib/dev/acpica/compiler/dtcompiler.h b/sys/contrib/dev/acpica/compiler/dtcompiler.h
index c58ad55cd6cb..e31566e0c3d3 100644
--- a/sys/contrib/dev/acpica/compiler/dtcompiler.h
+++ b/sys/contrib/dev/acpica/compiler/dtcompiler.h
@@ -657,6 +657,10 @@ ACPI_STATUS
DtCompileNfit (
void **PFieldList);
+ACPI_STATUS
+DtCompileNhlt (
+ void **PFieldList);
+
ACPI_STATUS
DtCompilePcct (
void **PFieldList);
diff --git a/sys/contrib/dev/acpica/compiler/dttable2.c b/sys/contrib/dev/acpica/compiler/dttable2.c
index 13a4a562d3ed..a8c81e2c4729 100644
--- a/sys/contrib/dev/acpica/compiler/dttable2.c
+++ b/sys/contrib/dev/acpica/compiler/dttable2.c
@@ -2062,6 +2062,11 @@ DtCompileSrat (
InfoTable = AcpiDmTableInfoSrat5;
break;
+ case ACPI_SRAT_TYPE_GENERIC_PORT_AFFINITY:
+
+ InfoTable = AcpiDmTableInfoSrat6;
+ break;
+
default:
DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "SRAT");
diff --git a/sys/contrib/dev/acpica/compiler/dtutils.c b/sys/contrib/dev/acpica/compiler/dtutils.c
index a847539289a1..78c0bdd8528e 100644
--- a/sys/contrib/dev/acpica/compiler/dtutils.c
+++ b/sys/contrib/dev/acpica/compiler/dtutils.c
@@ -581,6 +581,8 @@ DtGetFieldLength (
case ACPI_DMT_IVRS_DE:
case ACPI_DMT_GTDT:
case ACPI_DMT_MADT:
+ case ACPI_DMT_NHLT1:
+ case ACPI_DMT_NHLT1a:
case ACPI_DMT_PCCT:
case ACPI_DMT_PMTT:
case ACPI_DMT_PPTT:
diff --git a/sys/contrib/dev/acpica/compiler/preprocess.h b/sys/contrib/dev/acpica/compiler/preprocess.h
index 6343a49c1ff2..f4c8c30966a2 100644
--- a/sys/contrib/dev/acpica/compiler/preprocess.h
+++ b/sys/contrib/dev/acpica/compiler/preprocess.h
@@ -355,7 +355,7 @@ PrEvaluateExpression (
/*
- * prutils - Preprocesor utilities
+ * prutils - Preprocessor utilities
*/
char *
PrGetNextToken (
diff --git a/sys/contrib/dev/acpica/components/dispatcher/dsfield.c b/sys/contrib/dev/acpica/components/dispatcher/dsfield.c
index 5067a7aa1689..70ba3fbd8124 100644
--- a/sys/contrib/dev/acpica/components/dispatcher/dsfield.c
+++ b/sys/contrib/dev/acpica/components/dispatcher/dsfield.c
@@ -797,7 +797,7 @@ AcpiDsInitFieldObjects (
}
#ifdef ACPI_EXEC_APP
- Flags |= ACPI_NS_OVERRIDE_IF_FOUND;
+ Flags |= ACPI_NS_OVERRIDE_IF_FOUND;
#endif
/*
* Walk the list of entries in the FieldList
diff --git a/sys/contrib/dev/acpica/components/hardware/hwesleep.c b/sys/contrib/dev/acpica/components/hardware/hwesleep.c
index 6fb1a6718378..97554dfb9880 100644
--- a/sys/contrib/dev/acpica/components/hardware/hwesleep.c
+++ b/sys/contrib/dev/acpica/components/hardware/hwesleep.c
@@ -312,18 +312,15 @@ ACPI_STATUS
AcpiHwExtendedWakePrep (
UINT8 SleepState)
{
- ACPI_STATUS Status;
UINT8 SleepTypeValue;
ACPI_FUNCTION_TRACE (HwExtendedWakePrep);
- Status = AcpiGetSleepTypeData (ACPI_STATE_S0,
- &AcpiGbl_SleepTypeA, &AcpiGbl_SleepTypeB);
- if (ACPI_SUCCESS (Status))
+ if (AcpiGbl_SleepTypeAS0 != ACPI_SLEEP_TYPE_INVALID)
{
- SleepTypeValue = ((AcpiGbl_SleepTypeA << ACPI_X_SLEEP_TYPE_POSITION) &
+ SleepTypeValue = ((AcpiGbl_SleepTypeAS0 << ACPI_X_SLEEP_TYPE_POSITION) &
ACPI_X_SLEEP_TYPE_MASK);
(void) AcpiWrite ((UINT64) (SleepTypeValue | ACPI_X_SLEEP_ENABLE),
diff --git a/sys/contrib/dev/acpica/components/hardware/hwsleep.c b/sys/contrib/dev/acpica/components/hardware/hwsleep.c
index 9ce6fe3f93cf..63e9c69cbdb4 100644
--- a/sys/contrib/dev/acpica/components/hardware/hwsleep.c
+++ b/sys/contrib/dev/acpica/components/hardware/hwsleep.c
@@ -339,7 +339,7 @@ ACPI_STATUS
AcpiHwLegacyWakePrep (
UINT8 SleepState)
{
- ACPI_STATUS Status;
+ ACPI_STATUS Status = AE_OK;
ACPI_BIT_REGISTER_INFO *SleepTypeRegInfo;
ACPI_BIT_REGISTER_INFO *SleepEnableRegInfo;
*** 543 LINES SKIPPED ***
More information about the dev-commits-src-all
mailing list