summaryrefslogtreecommitdiff
path: root/source/compiler
diff options
context:
space:
mode:
authorPiotr Maziarz <piotrx.maziarz@linux.intel.com>2021-12-16 17:43:12 +0100
committerPiotr Maziarz <piotrx.maziarz@linux.intel.com>2022-01-13 19:23:36 +0100
commit23a659e190cf3ed0edd46cddf12bbbcfeaa09396 (patch)
tree93fa5b26e3168532ce27aeaa2060a24a3075c433 /source/compiler
parentcf7d6ccc009aa04a475bca81dc7af0342bb7c1eb (diff)
downloadacpica-23a659e190cf3ed0edd46cddf12bbbcfeaa09396.tar.gz
iASL: NHLT: Treat Terminator as SpecificConfig
SpecificConfig has 4 bytes of size and then an amount of bytes specified by size. All of the terminators that I've seen had a size equal to 4, but theoretically it can vary.
Diffstat (limited to 'source/compiler')
-rw-r--r--source/compiler/dttable2.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/source/compiler/dttable2.c b/source/compiler/dttable2.c
index 854063611..f0481928d 100644
--- a/source/compiler/dttable2.c
+++ b/source/compiler/dttable2.c
@@ -1143,11 +1143,21 @@ DtCompileNhlt (
/*
* All Endpoint Descriptors are completed.
- * Do the table terminator structure (not in NHLT spec, optional)
+ * Do the table terminator specific config (not in NHLT spec, optional)
*/
if (*PFieldList && (strcmp ((const char *) (*PFieldList)->Name, "Descriptor Length")))
{
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt8,
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt5b,
+ &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+
+ ParentTable = DtPeekSubtable ();
+ DtInsertSubtable (ParentTable, Subtable);
+
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt3a,
&Subtable);
if (ACPI_FAILURE (Status))
{