diff mbox series

[1/1] HID: multitouch: Apply MT_QUIRK_CONFIDENCE quirk for multi-input devices

Message ID 20210128060207.506438-2-kai.heng.feng@canonical.com
State New
Headers show
Series Restore palm ejection on multi-input devices | expand

Commit Message

Kai-Heng Feng Jan. 28, 2021, 6:02 a.m. UTC
BugLink: https://bugs.launchpad.net/bugs/1913520

Palm ejection stops working on some Elan and Synaptics touchpad after
commit 40d5bb87377a ("HID: multitouch: enable multi-input as a quirk for
some devices").

The commit changes the mt_class from MT_CLS_WIN_8 to
MT_CLS_WIN_8_FORCE_MULTI_INPUT, so MT_QUIRK_CONFIDENCE isn't applied
anymore.

So also apply the quirk since MT_CLS_WIN_8_FORCE_MULTI_INPUT is
essentially MT_CLS_WIN_8.

Fixes: 40d5bb87377a ("HID: multitouch: enable multi-input as a quirk for some devices")
Cc: stable@vger.kernel.org
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
(cherry picked from commit 794c613383433ffc4fceec8eaa081b9f1962e287 linux-next)
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
---
 drivers/hid/hid-multitouch.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Stefan Bader Jan. 28, 2021, 9:02 a.m. UTC | #1
On 28.01.21 07:02, Kai-Heng Feng wrote:
> BugLink: https://bugs.launchpad.net/bugs/1913520
> 
> Palm ejection stops working on some Elan and Synaptics touchpad after
> commit 40d5bb87377a ("HID: multitouch: enable multi-input as a quirk for
> some devices").
> 
> The commit changes the mt_class from MT_CLS_WIN_8 to
> MT_CLS_WIN_8_FORCE_MULTI_INPUT, so MT_QUIRK_CONFIDENCE isn't applied
> anymore.
> 
> So also apply the quirk since MT_CLS_WIN_8_FORCE_MULTI_INPUT is
> essentially MT_CLS_WIN_8.
> 
> Fixes: 40d5bb87377a ("HID: multitouch: enable multi-input as a quirk for some devices")
> Cc: stable@vger.kernel.org
> Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
> (cherry picked from commit 794c613383433ffc4fceec8eaa081b9f1962e287 linux-next)
> Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Acked-by: Stefan Bader <stefan.bader@canonical.com>
> ---

The comment I have is not so much about this specific patch but generally the
class of input device changes. Maybe it is just a feeling but my impression from
glancing over the summaries of incoming bug reports there seemed to be a number
of xy input stopped working ones. I understand that those are hard to avoid
whenever there is change. Just wondering whether someone is watching out for
specific failures like this in the incoming bug report?

Thanks,
Stefan

>  drivers/hid/hid-multitouch.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
> index 0743ef51d3b2..8429ebe7097e 100644
> --- a/drivers/hid/hid-multitouch.c
> +++ b/drivers/hid/hid-multitouch.c
> @@ -758,7 +758,8 @@ static int mt_touch_input_mapping(struct hid_device *hdev, struct hid_input *hi,
>  			MT_STORE_FIELD(inrange_state);
>  			return 1;
>  		case HID_DG_CONFIDENCE:
> -			if (cls->name == MT_CLS_WIN_8 &&
> +			if ((cls->name == MT_CLS_WIN_8 ||
> +			     cls->name == MT_CLS_WIN_8_FORCE_MULTI_INPUT) &&
>  				(field->application == HID_DG_TOUCHPAD ||
>  				 field->application == HID_DG_TOUCHSCREEN))
>  				app->quirks |= MT_QUIRK_CONFIDENCE;
>
Kai-Heng Feng Jan. 28, 2021, 11:13 a.m. UTC | #2
On Thu, Jan 28, 2021 at 5:03 PM Stefan Bader <stefan.bader@canonical.com> wrote:
>
> On 28.01.21 07:02, Kai-Heng Feng wrote:
> > BugLink: https://bugs.launchpad.net/bugs/1913520
> >
> > Palm ejection stops working on some Elan and Synaptics touchpad after
> > commit 40d5bb87377a ("HID: multitouch: enable multi-input as a quirk for
> > some devices").
> >
> > The commit changes the mt_class from MT_CLS_WIN_8 to
> > MT_CLS_WIN_8_FORCE_MULTI_INPUT, so MT_QUIRK_CONFIDENCE isn't applied
> > anymore.
> >
> > So also apply the quirk since MT_CLS_WIN_8_FORCE_MULTI_INPUT is
> > essentially MT_CLS_WIN_8.
> >
> > Fixes: 40d5bb87377a ("HID: multitouch: enable multi-input as a quirk for some devices")
> > Cc: stable@vger.kernel.org
> > Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
> > Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
> > (cherry picked from commit 794c613383433ffc4fceec8eaa081b9f1962e287 linux-next)
> > Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
> Acked-by: Stefan Bader <stefan.bader@canonical.com>
> > ---
>
> The comment I have is not so much about this specific patch but generally the
> class of input device changes. Maybe it is just a feeling but my impression from
> glancing over the summaries of incoming bug reports there seemed to be a number
> of xy input stopped working ones.

Only a small fraction of those bug reports are regressions.
Most of the bug reports are that the input device never works.

There can be multiple reasons, like recent missing
linux-modules-extra, wrong resources report from ACPI, issues in PCI
BAR, wrong power sequence of I2C HID device, invalid GPIO setup, or
incorrect interpretation of input collection report.

So it's not easy to debug, let alone remotely, as the issue may reside
in different subsystems or in rather subtle places.

> I understand that those are hard to avoid
> whenever there is change. Just wondering whether someone is watching out for
> specific failures like this in the incoming bug report?

Right now I am really stretched thin but I'll try my best :)

Kai-Heng

>
> Thanks,
> Stefan
>
> >  drivers/hid/hid-multitouch.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
> > index 0743ef51d3b2..8429ebe7097e 100644
> > --- a/drivers/hid/hid-multitouch.c
> > +++ b/drivers/hid/hid-multitouch.c
> > @@ -758,7 +758,8 @@ static int mt_touch_input_mapping(struct hid_device *hdev, struct hid_input *hi,
> >                       MT_STORE_FIELD(inrange_state);
> >                       return 1;
> >               case HID_DG_CONFIDENCE:
> > -                     if (cls->name == MT_CLS_WIN_8 &&
> > +                     if ((cls->name == MT_CLS_WIN_8 ||
> > +                          cls->name == MT_CLS_WIN_8_FORCE_MULTI_INPUT) &&
> >                               (field->application == HID_DG_TOUCHPAD ||
> >                                field->application == HID_DG_TOUCHSCREEN))
> >                               app->quirks |= MT_QUIRK_CONFIDENCE;
> >
>
>
Kleber Sacilotto de Souza Feb. 4, 2021, 1:14 p.m. UTC | #3
On 28.01.21 07:02, Kai-Heng Feng wrote:
> BugLink: https://bugs.launchpad.net/bugs/1913520
> 
> Palm ejection stops working on some Elan and Synaptics touchpad after
> commit 40d5bb87377a ("HID: multitouch: enable multi-input as a quirk for
> some devices").
> 
> The commit changes the mt_class from MT_CLS_WIN_8 to
> MT_CLS_WIN_8_FORCE_MULTI_INPUT, so MT_QUIRK_CONFIDENCE isn't applied
> anymore.
> 
> So also apply the quirk since MT_CLS_WIN_8_FORCE_MULTI_INPUT is
> essentially MT_CLS_WIN_8.
> 
> Fixes: 40d5bb87377a ("HID: multitouch: enable multi-input as a quirk for some devices")
> Cc: stable@vger.kernel.org
> Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
> (cherry picked from commit 794c613383433ffc4fceec8eaa081b9f1962e287 linux-next)
> Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>

Acked-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>

> ---
>   drivers/hid/hid-multitouch.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
> index 0743ef51d3b2..8429ebe7097e 100644
> --- a/drivers/hid/hid-multitouch.c
> +++ b/drivers/hid/hid-multitouch.c
> @@ -758,7 +758,8 @@ static int mt_touch_input_mapping(struct hid_device *hdev, struct hid_input *hi,
>   			MT_STORE_FIELD(inrange_state);
>   			return 1;
>   		case HID_DG_CONFIDENCE:
> -			if (cls->name == MT_CLS_WIN_8 &&
> +			if ((cls->name == MT_CLS_WIN_8 ||
> +			     cls->name == MT_CLS_WIN_8_FORCE_MULTI_INPUT) &&
>   				(field->application == HID_DG_TOUCHPAD ||
>   				 field->application == HID_DG_TOUCHSCREEN))
>   				app->quirks |= MT_QUIRK_CONFIDENCE;
>
diff mbox series

Patch

diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
index 0743ef51d3b2..8429ebe7097e 100644
--- a/drivers/hid/hid-multitouch.c
+++ b/drivers/hid/hid-multitouch.c
@@ -758,7 +758,8 @@  static int mt_touch_input_mapping(struct hid_device *hdev, struct hid_input *hi,
 			MT_STORE_FIELD(inrange_state);
 			return 1;
 		case HID_DG_CONFIDENCE:
-			if (cls->name == MT_CLS_WIN_8 &&
+			if ((cls->name == MT_CLS_WIN_8 ||
+			     cls->name == MT_CLS_WIN_8_FORCE_MULTI_INPUT) &&
 				(field->application == HID_DG_TOUCHPAD ||
 				 field->application == HID_DG_TOUCHSCREEN))
 				app->quirks |= MT_QUIRK_CONFIDENCE;