summaryrefslogtreecommitdiff
path: root/src/acpi/acpigen.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/acpi/acpigen.c')
-rw-r--r--src/acpi/acpigen.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/acpi/acpigen.c b/src/acpi/acpigen.c
index 5b45ebd3a8..a3beb1054f 100644
--- a/src/acpi/acpigen.c
+++ b/src/acpi/acpigen.c
@@ -505,6 +505,12 @@ static void acpigen_write_field_name(const char *name, uint32_t size)
acpigen_write_field_length(size);
}
+static void acpigen_write_field_reserved(uint32_t size)
+{
+ acpigen_emit_byte(0);
+ acpigen_write_field_length(size);
+}
+
/*
* Generate ACPI AML code for Field
* Arg0: region name
@@ -515,6 +521,7 @@ static void acpigen_write_field_name(const char *name, uint32_t size)
* struct fieldlist l[] = {
* FIELDLIST_OFFSET(0x84),
* FIELDLIST_NAMESTR("PMCS", 2),
+ * FIELDLIST_RESERVED(6),
* };
* acpigen_write_field("UART", l, ARRAY_SIZE(l), FIELD_ANYACC | FIELD_NOLOCK |
* FIELD_PRESERVE);
@@ -522,7 +529,8 @@ static void acpigen_write_field_name(const char *name, uint32_t size)
* Field (UART, AnyAcc, NoLock, Preserve)
* {
* Offset (0x84),
- * PMCS, 2
+ * PMCS, 2,
+ * , 6,
* }
*/
void acpigen_write_field(const char *name, const struct fieldlist *l, size_t count,
@@ -546,6 +554,10 @@ void acpigen_write_field(const char *name, const struct fieldlist *l, size_t cou
acpigen_write_field_name(l[i].name, l[i].bits);
current_bit_pos += l[i].bits;
break;
+ case RESERVED:
+ acpigen_write_field_reserved(l[i].bits);
+ current_bit_pos += l[i].bits;
+ break;
case OFFSET:
acpigen_write_field_offset(l[i].bits, current_bit_pos);
current_bit_pos = l[i].bits;