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 Specifies the ACPI name format string used by the acpigen
function to generate the processor scope. Default is CPxx. 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 config ACPI_HAVE_PCAT_8259
def_bool y if !ACPI_NO_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); 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; total += num_top_row_keys;
} }