summaryrefslogtreecommitdiff
path: root/src/arch/x86
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/x86')
-rw-r--r--src/arch/x86/acpigen.c14
-rw-r--r--src/arch/x86/acpigen_dsm.c4
-rw-r--r--src/arch/x86/include/arch/acpigen.h2
3 files changed, 13 insertions, 7 deletions
diff --git a/src/arch/x86/acpigen.c b/src/arch/x86/acpigen.c
index 0c5a10c5bf..7115bdbcd7 100644
--- a/src/arch/x86/acpigen.c
+++ b/src/arch/x86/acpigen.c
@@ -1103,12 +1103,18 @@ void acpigen_write_if_and(uint8_t arg1, uint8_t arg2)
acpigen_emit_byte(arg2);
}
-void acpigen_write_if_lequal(uint8_t arg1, uint8_t arg2)
+/*
+ * Generates ACPI code for checking if operand1 and operand2 are equal, where,
+ * operand1 is ACPI op and operand2 is an integer.
+ *
+ * If (Lequal (op, val))
+ */
+void acpigen_write_if_lequal_op_int(uint8_t op, uint64_t val)
{
acpigen_write_if();
acpigen_emit_byte(LEQUAL_OP);
- acpigen_emit_byte(arg1);
- acpigen_emit_byte(arg2);
+ acpigen_emit_byte(op);
+ acpigen_write_integer(val);
}
void acpigen_write_else(void)
@@ -1217,7 +1223,7 @@ void acpigen_write_dsm(const char *uuid, void (*callbacks[])(void *),
for (i = 0; i < count; i++) {
/* If (Lequal (Local1, i)) */
- acpigen_write_if_lequal(LOCAL1_OP, i);
+ acpigen_write_if_lequal_op_int(LOCAL1_OP, i);
/* Callback to write if handler. */
if (callbacks[i])
diff --git a/src/arch/x86/acpigen_dsm.c b/src/arch/x86/acpigen_dsm.c
index c6d614afd4..1aab90b714 100644
--- a/src/arch/x86/acpigen_dsm.c
+++ b/src/arch/x86/acpigen_dsm.c
@@ -26,14 +26,14 @@ static void i2c_hid_func0_cb(void *arg)
/* ToInteger (Arg1, Local2) */
acpigen_write_to_integer(ARG1_OP, LOCAL2_OP);
/* If (LEqual (Local2, 0x0)) */
- acpigen_write_if_lequal(LOCAL2_OP, 0x0);
+ acpigen_write_if_lequal_op_int(LOCAL2_OP, 0x0);
/* Return (Buffer (One) { 0x1f }) */
acpigen_write_return_singleton_buffer(0x1f);
acpigen_pop_len(); /* Pop : If */
/* Else */
acpigen_write_else();
/* If (LEqual (Local2, 0x1)) */
- acpigen_write_if_lequal(LOCAL2_OP, 0x1);
+ acpigen_write_if_lequal_op_int(LOCAL2_OP, 0x1);
/* Return (Buffer (One) { 0x3f }) */
acpigen_write_return_singleton_buffer(0x3f);
acpigen_pop_len(); /* Pop : If */
diff --git a/src/arch/x86/include/arch/acpigen.h b/src/arch/x86/include/arch/acpigen.h
index 4169fdf070..572ae6c248 100644
--- a/src/arch/x86/include/arch/acpigen.h
+++ b/src/arch/x86/include/arch/acpigen.h
@@ -219,7 +219,7 @@ void acpigen_write_debug_integer(uint64_t val);
void acpigen_write_debug_op(uint8_t op);
void acpigen_write_if(void);
void acpigen_write_if_and(uint8_t arg1, uint8_t arg2);
-void acpigen_write_if_lequal(uint8_t arg1, uint8_t arg2);
+void acpigen_write_if_lequal_op_int(uint8_t op, uint64_t val);
void acpigen_write_else(void);
void acpigen_write_to_buffer(uint8_t src, uint8_t dst);
void acpigen_write_to_integer(uint8_t src, uint8_t dst);