[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <076s5qon-0o97-r3o4-10n0-s415q569sp40@xreary.bet>
Date: Wed, 26 Nov 2025 17:22:42 +0100 (CET)
From: Jiri Kosina <jikos@...nel.org>
To: Benedek Kupper <kupper.benedek@...il.com>
cc: linux-input@...r.kernel.org, linux-kernel@...r.kernel.org,
bentiss@...nel.org
Subject: Re: [PATCH] drivers: hid: renegotiate resolution multipliers with
device after reset
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
Powered by blists - more mailing lists