Re: [PATCH] drivers: hid: renegotiate resolution multipliers with device after reset

From: Jiri Kosina

Date: Wed Nov 26 2025 - 11:22:44 EST


On Tue, 7 Oct 2025, Benedek Kupper wrote:

> The scroll resolution multipliers are set in the context of
> hidinput_connect(), which is only called at probe time: when the host
> changes the value on the device with a SET_REPORT(FEATURE), and the device
> accepts it, these multipliers are stored on the host side, and used to
> calculate the final scroll event values sent to userspace.
>
> After a USB suspend, the resume operation on many hubs and chipsets
> involve a USB reset signal as well. A reset on the device side clears all
> previous state information, including the value of the multiplier report.
> This reset is not handled by the multiplier handling logic, so what ends up
> happening is the host is still expecting high-resolution scroll events,
> but the device is reset to default resolution, making the effective,
> user-perceived scroll speed incredibly slow.
>
> The solution is to renegotiate the multiplier selection after each reset.

Applied, thanks.

--
Jiri Kosina
SUSE Labs