• L
    HID: input: simplify/fix high-res scroll event handling · 044ee890
    Linus Torvalds 提交于
    Commit 1ff2e1a4 ("HID: input: Create a utility class for counting
    scroll events") created the helper function
    
        hid_scroll_counter_handle_scroll()
    
    to handle high-res scroll events and also expose them as regular wheel
    events.
    
    But the resulting algorithm was unstable, and causes scrolling to be
    very unreliable.  When you hit the half-way mark of the highres
    multiplier, small highres movements will incorrectly translate into big
    traditional wheel movements, causing odd jitters.
    
    Simplify the code and make the output stable.
    
    NOTE! I'm pretty sure this will need further tweaking.  But this at
    least turns a unusable mouse wheel on my Logitech MX Anywhere 2S into
    a usable one.
    
    Cc: Jiri Kosina <jikos@kernel.org>
    Cc: Harry Cutts <hcutts@chromium.org>
    Cc: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Cc: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    044ee890
hid-input.c 54.7 KB