drivers/platform/x86/intel/hid.c | 7 +++++++ 1 file changed, 7 insertions(+)
The Lenovo ThinkPad X1 Fold 16 Gen 1 has physical volume up/down
buttons that are handled through the intel-hid 5-button array
interface. The firmware does not advertise 5-button array support via
HEBC, so the driver relies on a DMI allowlist to enable it.
Add the ThinkPad X1 Fold 16 Gen 1 to the button_array_table so the
volume buttons work out of the box.
Signed-off-by: Leif Skunberg <diamondback@cohunt.app>
---
drivers/platform/x86/intel/hid.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/platform/x86/intel/hid.c b/drivers/platform/x86/intel/hid.c
index 560cc0631..6f059740f 100644
--- a/drivers/platform/x86/intel/hid.c
+++ b/drivers/platform/x86/intel/hid.c
@@ -135,6 +135,13 @@ static const struct dmi_system_id button_array_table[] = {
DMI_MATCH(DMI_PRODUCT_FAMILY, "ThinkPad X1 Tablet Gen 2"),
},
},
+ {
+ .ident = "Lenovo ThinkPad X1 Fold 16 Gen 1",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+ DMI_MATCH(DMI_PRODUCT_FAMILY, "ThinkPad X1 Fold 16 Gen 1"),
+ },
+ },
{
.ident = "Microsoft Surface Go 3",
.matches = {
--
2.53.0
On Tue, 10 Feb 2026 09:56:25 +0100, Leif Skunberg wrote:
> The Lenovo ThinkPad X1 Fold 16 Gen 1 has physical volume up/down
> buttons that are handled through the intel-hid 5-button array
> interface. The firmware does not advertise 5-button array support via
> HEBC, so the driver relies on a DMI allowlist to enable it.
>
> Add the ThinkPad X1 Fold 16 Gen 1 to the button_array_table so the
> volume buttons work out of the box.
>
> [...]
Thank you for your contribution, it has been applied to my local
review-ilpo-fixes branch. Note it will show up in the public
platform-drivers-x86/review-ilpo-fixes branch only once I've pushed my
local branch there, which might take a while.
The list of commits applied:
[1/1] platform/x86: intel-hid: Enable 5-button array on ThinkPad X1 Fold 16 Gen 1
commit: b38d478dad79e61e8a65931021bdfd7a71741212
--
i.
Hi,
On 10-Feb-26 09:56, Leif Skunberg wrote:
> The Lenovo ThinkPad X1 Fold 16 Gen 1 has physical volume up/down
> buttons that are handled through the intel-hid 5-button array
> interface. The firmware does not advertise 5-button array support via
> HEBC, so the driver relies on a DMI allowlist to enable it.
>
> Add the ThinkPad X1 Fold 16 Gen 1 to the button_array_table so the
> volume buttons work out of the box.
>
> Signed-off-by: Leif Skunberg <diamondback@cohunt.app>
Thanks, patch looks good to me:
Reviewed-by: Hans de Goede <johannes.goede@oss.qualcomm.com>
Regards,
Hans
> ---
> drivers/platform/x86/intel/hid.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/drivers/platform/x86/intel/hid.c b/drivers/platform/x86/intel/hid.c
> index 560cc0631..6f059740f 100644
> --- a/drivers/platform/x86/intel/hid.c
> +++ b/drivers/platform/x86/intel/hid.c
> @@ -135,6 +135,13 @@ static const struct dmi_system_id button_array_table[] = {
> DMI_MATCH(DMI_PRODUCT_FAMILY, "ThinkPad X1 Tablet Gen 2"),
> },
> },
> + {
> + .ident = "Lenovo ThinkPad X1 Fold 16 Gen 1",
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
> + DMI_MATCH(DMI_PRODUCT_FAMILY, "ThinkPad X1 Fold 16 Gen 1"),
> + },
> + },
> {
> .ident = "Microsoft Surface Go 3",
> .matches = {
© 2016 - 2026 Red Hat, Inc.