[PATCH] intel-hid: fix volume buttons on Thinkpad X12 Detachable Tablet Gen 1

Cole Stowell posted 1 patch 2 weeks, 2 days ago
drivers/platform/x86/intel/hid.c | 7 +++++++
1 file changed, 7 insertions(+)
[PATCH] intel-hid: fix volume buttons on Thinkpad X12 Detachable Tablet Gen 1
Posted by Cole Stowell 2 weeks, 2 days ago
Volume buttons on Lenovo Thinkpad X12 Detachable Tablet Gen 1 did not
send any input events when pressed. When loading intel-hid with the 5
Button Array explicitly enabled, the buttons functioned normally.

Adds the X12 Detachable Tablet Gen 1 to the `button_array_table`.

However, the driver is unable to call INTEL_HID_DSM_BTNE_FN and prints
the warning "failed to set button capability" when attempting to enable
or disable the 5 Button Array. I'm not sure if this is normal,
but the warning seems harmless.

Co-developed-by: Mary Strodl <mstrodl@csh.rit.edu>
Signed-off-by: Mary Strodl <mstrodl@csh.rit.edu>
Signed-off-by: Cole Stowell <cole@stowell.pro>
---
 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 445e7a59beb4..48ad75a56199 100644
--- a/drivers/platform/x86/intel/hid.c
+++ b/drivers/platform/x86/intel/hid.c
@@ -118,6 +118,13 @@ static const s
truct dmi_system_id button_array_table[] = {
 			DMI_MATCH(DMI_PRODUCT_NAME, "HP Spectre x2 Detachable"),
 		},
 	},
+	{
+		.ident = "Lenovo ThinkPad X1 Tablet Gen 1",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+			DMI_MATCH(DMI_PRODUCT_FAMILY, "ThinkPad X12 Detachable Gen 1"),
+		},
+	},
 	{
 		.ident = "Lenovo ThinkPad X1 Tablet Gen 2",
 		.matches = {
-- 
2.47.0

Re: [PATCH] intel-hid: fix volume buttons on Thinkpad X12 Detachable Tablet Gen 1
Posted by Hans de Goede 2 weeks, 2 days ago
Hi,

Thank you for the patch.

On 7-Nov-24 9:59 PM, Cole Stowell wrote:
> Volume buttons on Lenovo Thinkpad X12 Detachable Tablet Gen 1 did not
> send any input events when pressed. When loading intel-hid with the 5
> Button Array explicitly enabled, the buttons functioned normally.
> 
> Adds the X12 Detachable Tablet Gen 1 to the `button_array_table`.
> 
> However, the driver is unable to call INTEL_HID_DSM_BTNE_FN and prints
> the warning "failed to set button capability" when attempting to enable
> or disable the 5 Button Array. I'm not sure if this is normal,
> but the warning seems harmless.

Yes the warning should be harmless and adding more special handling
is not worth it IMHO.

Patch looks good to me:

Reviewed-by: Hans de Goede <hdegoede@redhat.com>

Regards,

Hans




> Co-developed-by: Mary Strodl <mstrodl@csh.rit.edu>
> Signed-off-by: Mary Strodl <mstrodl@csh.rit.edu>
> Signed-off-by: Cole Stowell <cole@stowell.pro>
> ---
>  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 445e7a59beb4..48ad75a56199 100644
> --- a/drivers/platform/x86/intel/hid.c
> +++ b/drivers/platform/x86/intel/hid.c
> @@ -118,6 +118,13 @@ static const s
> truct dmi_system_id button_array_table[] = {
>  			DMI_MATCH(DMI_PRODUCT_NAME, "HP Spectre x2 Detachable"),
>  		},
>  	},
> +	{
> +		.ident = "Lenovo ThinkPad X1 Tablet Gen 1",
> +		.matches = {
> +			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
> +			DMI_MATCH(DMI_PRODUCT_FAMILY, "ThinkPad X12 Detachable Gen 1"),
> +		},
> +	},
>  	{
>  		.ident = "Lenovo ThinkPad X1 Tablet Gen 2",
>  		.matches = {
Re: [PATCH] intel-hid: fix volume buttons on Thinkpad X12 Detachable Tablet Gen 1
Posted by Ilpo Järvinen 1 week, 4 days ago
On Thu, 7 Nov 2024, Hans de Goede wrote:

> Hi,
> 
> Thank you for the patch.
> 
> On 7-Nov-24 9:59 PM, Cole Stowell wrote:
> > Volume buttons on Lenovo Thinkpad X12 Detachable Tablet Gen 1 did not
> > send any input events when pressed. When loading intel-hid with the 5
> > Button Array explicitly enabled, the buttons functioned normally.
> > 
> > Adds the X12 Detachable Tablet Gen 1 to the `button_array_table`.
> > 
> > However, the driver is unable to call INTEL_HID_DSM_BTNE_FN and prints
> > the warning "failed to set button capability" when attempting to enable
> > or disable the 5 Button Array. I'm not sure if this is normal,
> > but the warning seems harmless.
> 
> Yes the warning should be harmless and adding more special handling
> is not worth it IMHO.
> 
> Patch looks good to me:
> 
> Reviewed-by: Hans de Goede <hdegoede@redhat.com>

Hi,

I've applied this into review-ilpo branch but edited the commit message 
slightly by using the text from Hans' reply.

-- 
 i.

> > Co-developed-by: Mary Strodl <mstrodl@csh.rit.edu>
> > Signed-off-by: Mary Strodl <mstrodl@csh.rit.edu>
> > Signed-off-by: Cole Stowell <cole@stowell.pro>
> > ---
> >  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 445e7a59beb4..48ad75a56199 100644
> > --- a/drivers/platform/x86/intel/hid.c
> > +++ b/drivers/platform/x86/intel/hid.c
> > @@ -118,6 +118,13 @@ static const s
> > truct dmi_system_id button_array_table[] = {
> >  			DMI_MATCH(DMI_PRODUCT_NAME, "HP Spectre x2 Detachable"),
> >  		},
> >  	},
> > +	{
> > +		.ident = "Lenovo ThinkPad X1 Tablet Gen 1",
> > +		.matches = {
> > +			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
> > +			DMI_MATCH(DMI_PRODUCT_FAMILY, "ThinkPad X12 Detachable Gen 1"),
> > +		},
> > +	},
> >  	{
> >  		.ident = "Lenovo ThinkPad X1 Tablet Gen 2",
> >  		.matches = {
>