LKML Archive on lore.kernel.org help / color / mirror / Atom feed
* [PATCH v2] HID: fix A4Tech horizontal scrolling [not found] <AO-hwJKNH7WoJV-X+egK5cJNNtxamh0L0e1er5dkiTt6KvrmSQ@mail.gmail.com> @ 2019-05-03 20:28 ` Błażej Szczygieł 2019-05-07 5:00 ` Peter Hutterer 0 siblings, 1 reply; 5+ messages in thread From: Błażej Szczygieł @ 2019-05-03 20:28 UTC (permalink / raw) Cc: igorkuo, peter.hutterer, Błażej Szczygieł, Jiri Kosina, Benjamin Tissoires, linux-input, linux-kernel Since recent high resolution scrolling changes the A4Tech driver must check for the "REL_WHEEL_HI_RES" usage code. Link: https://bugzilla.kernel.org/show_bug.cgi?id=203369 Fixes: 2dc702c991e3774af9d7ce410eef410ca9e2357e ("HID: input: use the Resolution Multiplier for high-resolution scrolling") Signed-off-by: Błażej Szczygieł <spaz16@wp.pl> --- Changes in v2: - changed commit message drivers/hid/hid-a4tech.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/hid/hid-a4tech.c b/drivers/hid/hid-a4tech.c index 9428ea7cdf8a..fafb9fa558e7 100644 --- a/drivers/hid/hid-a4tech.c +++ b/drivers/hid/hid-a4tech.c @@ -38,7 +38,7 @@ static int a4_input_mapped(struct hid_device *hdev, struct hid_input *hi, { struct a4tech_sc *a4 = hid_get_drvdata(hdev); - if (usage->type == EV_REL && usage->code == REL_WHEEL) + if (usage->type == EV_REL && usage->code == REL_WHEEL_HI_RES) set_bit(REL_HWHEEL, *bit); if ((a4->quirks & A4_2WHEEL_MOUSE_HACK_7) && usage->hid == 0x00090007) @@ -60,7 +60,7 @@ static int a4_event(struct hid_device *hdev, struct hid_field *field, input = field->hidinput->input; if (a4->quirks & A4_2WHEEL_MOUSE_HACK_B8) { - if (usage->type == EV_REL && usage->code == REL_WHEEL) { + if (usage->type == EV_REL && usage->code == REL_WHEEL_HI_RES) { a4->delayed_value = value; return 1; } @@ -77,7 +77,7 @@ static int a4_event(struct hid_device *hdev, struct hid_field *field, return 1; } - if (usage->code == REL_WHEEL && a4->hw_wheel) { + if (usage->code == REL_WHEEL_HI_RES && a4->hw_wheel) { input_event(input, usage->type, REL_HWHEEL, value); return 1; } -- 2.21.0 ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2] HID: fix A4Tech horizontal scrolling 2019-05-03 20:28 ` [PATCH v2] HID: fix A4Tech horizontal scrolling Błażej Szczygieł @ 2019-05-07 5:00 ` Peter Hutterer 2019-05-12 20:33 ` [PATCH v3] " Błażej Szczygieł 0 siblings, 1 reply; 5+ messages in thread From: Peter Hutterer @ 2019-05-07 5:00 UTC (permalink / raw) To: Błażej Szczygieł Cc: igorkuo, Jiri Kosina, Benjamin Tissoires, linux-input, linux-kernel On Fri, May 03, 2019 at 10:28:36PM +0200, Błażej Szczygieł wrote: > Since recent high resolution scrolling changes the A4Tech driver must > check for the "REL_WHEEL_HI_RES" usage code. > > Link: https://bugzilla.kernel.org/show_bug.cgi?id=203369 > Fixes: 2dc702c991e3774af9d7ce410eef410ca9e2357e ("HID: input: use the > Resolution Multiplier for high-resolution scrolling") > > Signed-off-by: Błażej Szczygieł <spaz16@wp.pl> > --- > Changes in v2: > - changed commit message > > drivers/hid/hid-a4tech.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/hid/hid-a4tech.c b/drivers/hid/hid-a4tech.c > index 9428ea7cdf8a..fafb9fa558e7 100644 > --- a/drivers/hid/hid-a4tech.c > +++ b/drivers/hid/hid-a4tech.c > @@ -38,7 +38,7 @@ static int a4_input_mapped(struct hid_device *hdev, struct hid_input *hi, > { > struct a4tech_sc *a4 = hid_get_drvdata(hdev); > > - if (usage->type == EV_REL && usage->code == REL_WHEEL) > + if (usage->type == EV_REL && usage->code == REL_WHEEL_HI_RES) > set_bit(REL_HWHEEL, *bit); > > if ((a4->quirks & A4_2WHEEL_MOUSE_HACK_7) && usage->hid == 0x00090007) > @@ -60,7 +60,7 @@ static int a4_event(struct hid_device *hdev, struct hid_field *field, > input = field->hidinput->input; > > if (a4->quirks & A4_2WHEEL_MOUSE_HACK_B8) { > - if (usage->type == EV_REL && usage->code == REL_WHEEL) { > + if (usage->type == EV_REL && usage->code == REL_WHEEL_HI_RES) { > a4->delayed_value = value; > return 1; > } > @@ -77,7 +77,7 @@ static int a4_event(struct hid_device *hdev, struct hid_field *field, > return 1; > } > > - if (usage->code == REL_WHEEL && a4->hw_wheel) { > + if (usage->code == REL_WHEEL_HI_RES && a4->hw_wheel) { > input_event(input, usage->type, REL_HWHEEL, value); You'll need to send both events here, so please add: input_event(input, usage->type, REL_HWHEEL_HI_RES, value * 120); assume that wheel and wheel_hi_res are two separate event streams for the same axis, userspace may listen to either or both. if you only send the legacy event, newer userspace won't receive any scroll events as it may only look for the new hi-res events. Check with evtest/evemu/libinput record after, you should see multiples of 120 on the hi-res axis for every legacy wheel event. Cheers, Peter > return 1; > } > -- > 2.21.0 > ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v3] HID: fix A4Tech horizontal scrolling 2019-05-07 5:00 ` Peter Hutterer @ 2019-05-12 20:33 ` Błażej Szczygieł 2019-05-18 9:08 ` Igor Kushnir 2019-05-31 22:28 ` Jiri Kosina 0 siblings, 2 replies; 5+ messages in thread From: Błażej Szczygieł @ 2019-05-12 20:33 UTC (permalink / raw) Cc: igorkuo, peter.hutterer, Błażej Szczygieł, Jiri Kosina, Benjamin Tissoires, linux-input, linux-kernel Since recent high resolution scrolling changes the A4Tech driver must check for the "REL_WHEEL_HI_RES" usage code. Link: https://bugzilla.kernel.org/show_bug.cgi?id=203369 Fixes: 2dc702c991e3774af9d7ce410eef410ca9e2357e ("HID: input: use the Resolution Multiplier for high-resolution scrolling") Signed-off-by: Błażej Szczygieł <spaz16@wp.pl> --- Changes in v2: - changed commit message Changes in v3: - send also high resolution events drivers/hid/hid-a4tech.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/hid/hid-a4tech.c b/drivers/hid/hid-a4tech.c index 9428ea7cdf8a..c3a6ce3613fe 100644 --- a/drivers/hid/hid-a4tech.c +++ b/drivers/hid/hid-a4tech.c @@ -38,8 +38,10 @@ static int a4_input_mapped(struct hid_device *hdev, struct hid_input *hi, { struct a4tech_sc *a4 = hid_get_drvdata(hdev); - if (usage->type == EV_REL && usage->code == REL_WHEEL) + if (usage->type == EV_REL && usage->code == REL_WHEEL_HI_RES) { set_bit(REL_HWHEEL, *bit); + set_bit(REL_HWHEEL_HI_RES, *bit); + } if ((a4->quirks & A4_2WHEEL_MOUSE_HACK_7) && usage->hid == 0x00090007) return -1; @@ -60,7 +62,7 @@ static int a4_event(struct hid_device *hdev, struct hid_field *field, input = field->hidinput->input; if (a4->quirks & A4_2WHEEL_MOUSE_HACK_B8) { - if (usage->type == EV_REL && usage->code == REL_WHEEL) { + if (usage->type == EV_REL && usage->code == REL_WHEEL_HI_RES) { a4->delayed_value = value; return 1; } @@ -68,6 +70,8 @@ static int a4_event(struct hid_device *hdev, struct hid_field *field, if (usage->hid == 0x000100b8) { input_event(input, EV_REL, value ? REL_HWHEEL : REL_WHEEL, a4->delayed_value); + input_event(input, EV_REL, value ? REL_HWHEEL_HI_RES : + REL_WHEEL_HI_RES, a4->delayed_value * 120); return 1; } } @@ -77,8 +81,9 @@ static int a4_event(struct hid_device *hdev, struct hid_field *field, return 1; } - if (usage->code == REL_WHEEL && a4->hw_wheel) { + if (usage->code == REL_WHEEL_HI_RES && a4->hw_wheel) { input_event(input, usage->type, REL_HWHEEL, value); + input_event(input, usage->type, REL_HWHEEL_HI_RES, value * 120); return 1; } -- 2.21.0 ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v3] HID: fix A4Tech horizontal scrolling 2019-05-12 20:33 ` [PATCH v3] " Błażej Szczygieł @ 2019-05-18 9:08 ` Igor Kushnir 2019-05-31 22:28 ` Jiri Kosina 1 sibling, 0 replies; 5+ messages in thread From: Igor Kushnir @ 2019-05-18 9:08 UTC (permalink / raw) To: Błażej Szczygieł Cc: peter.hutterer, Jiri Kosina, Benjamin Tissoires, linux-input, linux-kernel Hi! I have verified that the PATCH v3 applied to kernel 5.0.15 fixes horizontal scrolling for my A4Tech WOP-49Z mouse just as well as the previous patch did. Thank you, Igor On 5/12/19 11:33 PM, Błażej Szczygieł wrote: > Since recent high resolution scrolling changes the A4Tech driver must > check for the "REL_WHEEL_HI_RES" usage code. > > Link: https://bugzilla.kernel.org/show_bug.cgi?id=203369 > Fixes: 2dc702c991e3774af9d7ce410eef410ca9e2357e ("HID: input: use the > Resolution Multiplier for high-resolution scrolling") > > Signed-off-by: Błażej Szczygieł <spaz16@wp.pl> > --- > Changes in v2: > - changed commit message > > Changes in v3: > - send also high resolution events > > drivers/hid/hid-a4tech.c | 11 ++++++++--- > 1 file changed, 8 insertions(+), 3 deletions(-) > > diff --git a/drivers/hid/hid-a4tech.c b/drivers/hid/hid-a4tech.c > index 9428ea7cdf8a..c3a6ce3613fe 100644 > --- a/drivers/hid/hid-a4tech.c > +++ b/drivers/hid/hid-a4tech.c > @@ -38,8 +38,10 @@ static int a4_input_mapped(struct hid_device *hdev, struct hid_input *hi, > { > struct a4tech_sc *a4 = hid_get_drvdata(hdev); > > - if (usage->type == EV_REL && usage->code == REL_WHEEL) > + if (usage->type == EV_REL && usage->code == REL_WHEEL_HI_RES) { > set_bit(REL_HWHEEL, *bit); > + set_bit(REL_HWHEEL_HI_RES, *bit); > + } > > if ((a4->quirks & A4_2WHEEL_MOUSE_HACK_7) && usage->hid == 0x00090007) > return -1; > @@ -60,7 +62,7 @@ static int a4_event(struct hid_device *hdev, struct hid_field *field, > input = field->hidinput->input; > > if (a4->quirks & A4_2WHEEL_MOUSE_HACK_B8) { > - if (usage->type == EV_REL && usage->code == REL_WHEEL) { > + if (usage->type == EV_REL && usage->code == REL_WHEEL_HI_RES) { > a4->delayed_value = value; > return 1; > } > @@ -68,6 +70,8 @@ static int a4_event(struct hid_device *hdev, struct hid_field *field, > if (usage->hid == 0x000100b8) { > input_event(input, EV_REL, value ? REL_HWHEEL : > REL_WHEEL, a4->delayed_value); > + input_event(input, EV_REL, value ? REL_HWHEEL_HI_RES : > + REL_WHEEL_HI_RES, a4->delayed_value * 120); > return 1; > } > } > @@ -77,8 +81,9 @@ static int a4_event(struct hid_device *hdev, struct hid_field *field, > return 1; > } > > - if (usage->code == REL_WHEEL && a4->hw_wheel) { > + if (usage->code == REL_WHEEL_HI_RES && a4->hw_wheel) { > input_event(input, usage->type, REL_HWHEEL, value); > + input_event(input, usage->type, REL_HWHEEL_HI_RES, value * 120); > return 1; > } > > ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v3] HID: fix A4Tech horizontal scrolling 2019-05-12 20:33 ` [PATCH v3] " Błażej Szczygieł 2019-05-18 9:08 ` Igor Kushnir @ 2019-05-31 22:28 ` Jiri Kosina 1 sibling, 0 replies; 5+ messages in thread From: Jiri Kosina @ 2019-05-31 22:28 UTC (permalink / raw) To: Błażej Szczygieł Cc: igorkuo, peter.hutterer, Benjamin Tissoires, linux-input, linux-kernel On Sun, 12 May 2019, Błażej Szczygieł wrote: > Since recent high resolution scrolling changes the A4Tech driver must > check for the "REL_WHEEL_HI_RES" usage code. > > Link: https://bugzilla.kernel.org/show_bug.cgi?id=203369 > Fixes: 2dc702c991e3774af9d7ce410eef410ca9e2357e ("HID: input: use the > Resolution Multiplier for high-resolution scrolling") > > Signed-off-by: Błażej Szczygieł <spaz16@wp.pl> Applied, thanks. -- Jiri Kosina SUSE Labs ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2019-05-31 22:28 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <AO-hwJKNH7WoJV-X+egK5cJNNtxamh0L0e1er5dkiTt6KvrmSQ@mail.gmail.com> 2019-05-03 20:28 ` [PATCH v2] HID: fix A4Tech horizontal scrolling Błażej Szczygieł 2019-05-07 5:00 ` Peter Hutterer 2019-05-12 20:33 ` [PATCH v3] " Błażej Szczygieł 2019-05-18 9:08 ` Igor Kushnir 2019-05-31 22:28 ` Jiri Kosina
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).