UPSTREAM: HID: input: make sure the wheel high resolution multiplier is set

Some old mice have a tendency to not accept the high resolution multiplier.
They reply with a -EPIPE which was previously ignored.

Force the call to resolution multiplier to be synchronous and actually
check for the answer. If this fails, consider the mouse like a normal one.

Fixes: 2dc702c991e377 ("HID: input: use the Resolution Multiplier for
       high-resolution scrolling")
Link: https://bugzilla.redhat.com/show_bug.cgi?id=1700071
Reported-and-tested-by: James Feeney <james@nurealm.net>
Cc: stable@vger.kernel.org  # v5.0+
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
(cherry picked from commit d43c17ead879ba7c076dc2f5fd80cd76047c9ff4)

BUG=chromium:1039091
TEST=Connect a Microsoft Pro IntelliMouse, check that `evtest` shows
     REL_WHEEL as ±1 and REL_WHEEL_HI_RES (code 11 on older `evtest`
     versions) as ±120. (Tested on Blooguard.)

Change-Id: Id9fa650cb5fd0dee0235c265fc45258fd375fc45
Signed-off-by: Harry Cutts <hcutts@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/2003502
Reviewed-by: Sean Paul <seanpaul@chromium.org>
Reviewed-by: Dmitry Torokhov <dtor@chromium.org>
(cherry picked from commit 1651886a6d897637087239fb088175afc21d4e58)
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/2032084
3 files changed