diff options
Diffstat (limited to 'src/arch')
-rw-r--r-- | src/arch/x86/acpigen.c | 14 | ||||
-rw-r--r-- | src/arch/x86/acpigen_dsm.c | 4 | ||||
-rw-r--r-- | src/arch/x86/include/arch/acpigen.h | 2 |
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); |