Message ID | 20221009182747.90730-1-jose.exposito89@gmail.com |
---|---|
State | Accepted |
Commit | bb5f0c855dcfc893ae5ed90e4c646bde9e4498bf |
Headers | show |
Series | HID: magicmouse: Do not set BTN_MOUSE on double report | expand |
On Sun, Oct 9, 2022 at 8:28 PM José Expósito <jose.exposito89@gmail.com> wrote: > > Under certain conditions the Magic Trackpad can group 2 reports in a > single packet. The packet is split and the raw event function is > invoked recursively for each part. > > However, after processing each part, the BTN_MOUSE status is updated, > sending multiple click events. [1] > > Return after processing double reports to avoid this issue. > > Link: https://gitlab.freedesktop.org/libinput/libinput/-/issues/811 # [1] > Fixes: a462230e16ac ("HID: magicmouse: enable Magic Trackpad support") > Reported-by: Nulo <git@nulo.in> > Signed-off-by: José Expósito <jose.exposito89@gmail.com> > --- Applied to for-6.1/upstream-fixes, thanks for spotting that old bug :) Cheers, Benjamin > drivers/hid/hid-magicmouse.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/hid/hid-magicmouse.c b/drivers/hid/hid-magicmouse.c > index 664a624a363d..c9c968d4b36a 100644 > --- a/drivers/hid/hid-magicmouse.c > +++ b/drivers/hid/hid-magicmouse.c > @@ -480,7 +480,7 @@ static int magicmouse_raw_event(struct hid_device *hdev, > magicmouse_raw_event(hdev, report, data + 2, data[1]); > magicmouse_raw_event(hdev, report, data + 2 + data[1], > size - 2 - data[1]); > - break; > + return 0; > default: > return 0; > } > -- > 2.25.1 >
diff --git a/drivers/hid/hid-magicmouse.c b/drivers/hid/hid-magicmouse.c index 664a624a363d..c9c968d4b36a 100644 --- a/drivers/hid/hid-magicmouse.c +++ b/drivers/hid/hid-magicmouse.c @@ -480,7 +480,7 @@ static int magicmouse_raw_event(struct hid_device *hdev, magicmouse_raw_event(hdev, report, data + 2, data[1]); magicmouse_raw_event(hdev, report, data + 2 + data[1], size - 2 - data[1]); - break; + return 0; default: return 0; }
Under certain conditions the Magic Trackpad can group 2 reports in a single packet. The packet is split and the raw event function is invoked recursively for each part. However, after processing each part, the BTN_MOUSE status is updated, sending multiple click events. [1] Return after processing double reports to avoid this issue. Link: https://gitlab.freedesktop.org/libinput/libinput/-/issues/811 # [1] Fixes: a462230e16ac ("HID: magicmouse: enable Magic Trackpad support") Reported-by: Nulo <git@nulo.in> Signed-off-by: José Expósito <jose.exposito89@gmail.com> --- drivers/hid/hid-magicmouse.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)