acpigen_ps2_keybd: Add Fn key to linux,keymap

Some devices may generate scancodes for the Fn key if they have one.
If they do, we should add them to the linux,keymap binding.

BUG=b:333096023
TEST=Flash DUT that emits a scancode for the Fn key, verify that it is
mapped to KEY_FN in the Linux kernel using `evtest` when pressing the Fn
key.

Change-Id: Ie4daa64bc6b619392276d0b5f16e2d195d5bd68c
Signed-off-by: Aseda Aboagye <aaboagye@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/81895
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Shelley Chen <shchen@google.com>
This commit is contained in:
Aseda Aboagye
2024-03-20 15:40:34 -05:00
committed by Felix Held
parent 00b40090ae
commit fef07f2c3a
2 changed files with 15 additions and 0 deletions

View File

@@ -14,6 +14,14 @@ config ACPI_CPU_STRING
Specifies the ACPI name format string used by the acpigen
function to generate the processor scope. Default is CPxx.
config ACPI_FNKEY_GEN_SCANCODE
int
default 0
help
Specifies the scancode, if any, which is generated when the Fn key is
pressed. A value of 0 is ignored, which is the default since most
keyboards do not emit a scancode for the Fn key.
config ACPI_HAVE_PCAT_8259
def_bool y if !ACPI_NO_PCAT_8259

View File

@@ -244,6 +244,13 @@ static void ssdt_generate_keymap(struct acpi_dp *dp, uint8_t num_top_row_keys,
acpi_dp_add_integer(dp_array, NULL, keymap);
}
/* Add the Fn-key */
if (CONFIG_ACPI_FNKEY_GEN_SCANCODE != 0) {
acpi_dp_add_integer(dp_array, NULL, KEYMAP(CONFIG_ACPI_FNKEY_GEN_SCANCODE,
KEY_FN));
total++;
}
total += num_top_row_keys;
}