[PATCH] platform/x86: intel-hid: Enable 5-button array on ThinkPad X1 Fold 16 Gen 1

Leif Skunberg posted 1 patch 2 months ago
There is a newer version of this series
drivers/platform/x86/intel/hid.c | 7 +++++++
1 file changed, 7 insertions(+)
[PATCH] platform/x86: intel-hid: Enable 5-button array on ThinkPad X1 Fold 16 Gen 1
Posted by Leif Skunberg 2 months ago
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
Re: [PATCH] platform/x86: intel-hid: Enable 5-button array on ThinkPad X1 Fold 16 Gen 1
Posted by Ilpo Järvinen 1 month, 3 weeks ago
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.
Re: [PATCH] platform/x86: intel-hid: Enable 5-button array on ThinkPad X1 Fold 16 Gen 1
Posted by Hans de Goede 2 months ago
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 = {