diff options
-rw-r--r-- | src/acpi/acpigen_ps2_keybd.c | 11 | ||||
-rw-r--r-- | src/ec/google/chromeec/ec_acpi.c | 1 | ||||
-rw-r--r-- | src/include/acpi/acpigen_ps2_keybd.h | 1 | ||||
-rw-r--r-- | src/mainboard/purism/librem_jsl/ramstage.c | 2 |
4 files changed, 13 insertions, 2 deletions
diff --git a/src/acpi/acpigen_ps2_keybd.c b/src/acpi/acpigen_ps2_keybd.c index cc21d5df5a..4a05225d6f 100644 --- a/src/acpi/acpigen_ps2_keybd.c +++ b/src/acpi/acpigen_ps2_keybd.c @@ -211,6 +211,7 @@ static void ssdt_generate_keymap(struct acpi_dp *dp, uint8_t num_top_row_keys, bool can_send_function_keys, bool has_numeric_keypad, bool has_scrnlock_key, + bool has_assistant_key, bool has_alpha_num_punct_keys) { struct acpi_dp *dp_array; @@ -270,6 +271,12 @@ static void ssdt_generate_keymap(struct acpi_dp *dp, uint8_t num_top_row_keys, total++; } + /* Add the keymap for the assistant key if present */ + if (has_assistant_key) { + acpi_dp_add_integer(dp_array, NULL, KEYMAP(0x5c, KEY_ASSISTANT)); + total++; + } + /* Provide alphanumeric and punctuation keys (rest of the keyboard) if * present */ @@ -291,6 +298,7 @@ void acpigen_ps2_keyboard_dsd(const char *scope, uint8_t num_top_row_keys, bool can_send_function_keys, bool has_numeric_keypad, bool has_scrnlock_key, + bool has_assistant_key, bool has_alpha_num_punct_keys) { struct acpi_dp *dsd; @@ -312,7 +320,8 @@ void acpigen_ps2_keyboard_dsd(const char *scope, uint8_t num_top_row_keys, ssdt_generate_physmap(dsd, num_top_row_keys, action_keys); ssdt_generate_keymap(dsd, num_top_row_keys, action_keys, can_send_function_keys, has_numeric_keypad, - has_scrnlock_key, has_alpha_num_punct_keys); + has_scrnlock_key, has_assistant_key, + has_alpha_num_punct_keys); acpi_dp_write(dsd); acpigen_pop_len(); /* Scope */ } diff --git a/src/ec/google/chromeec/ec_acpi.c b/src/ec/google/chromeec/ec_acpi.c index e24f8ac824..61d1e5c814 100644 --- a/src/ec/google/chromeec/ec_acpi.c +++ b/src/ec/google/chromeec/ec_acpi.c @@ -257,6 +257,7 @@ static void fill_ssdt_ps2_keyboard(const struct device *dev) !!(keybd.capabilities & KEYBD_CAP_FUNCTION_KEYS), !!(keybd.capabilities & KEYBD_CAP_NUMERIC_KEYPAD), !!(keybd.capabilities & KEYBD_CAP_SCRNLOCK_KEY), + !!(keybd.capabilities & KEYBD_CAP_ASSISTANT_KEY), true); } diff --git a/src/include/acpi/acpigen_ps2_keybd.h b/src/include/acpi/acpigen_ps2_keybd.h index 263eb05ab7..5a55356c08 100644 --- a/src/include/acpi/acpigen_ps2_keybd.h +++ b/src/include/acpi/acpigen_ps2_keybd.h @@ -37,6 +37,7 @@ void acpigen_ps2_keyboard_dsd(const char *scope, uint8_t num_top_row_keys, enum ps2_action_key action_keys[], bool can_send_function_keys, bool has_numeric_keypad, bool has_scrnlock_key, + bool has_assistant_key, bool has_alpha_num_punct_keys); #endif /* __ACPI_ACPIGEN_PS2_KEYBD_H__ */ diff --git a/src/mainboard/purism/librem_jsl/ramstage.c b/src/mainboard/purism/librem_jsl/ramstage.c index b9dd5f2f4d..78a1de03dc 100644 --- a/src/mainboard/purism/librem_jsl/ramstage.c +++ b/src/mainboard/purism/librem_jsl/ramstage.c @@ -19,7 +19,7 @@ static void mainboard_fill_ssdt(const struct device *dev) PS2_KEY_VOL_UP }; acpigen_ps2_keyboard_dsd("_SB.PCI0.PS2K", ARRAY_SIZE(ps2_action_keys), - ps2_action_keys, false, false, false, false); + ps2_action_keys, false, false, false, false, false); } static void mainboard_init(void *chip_info) |