From: Benjamin Tissoires <bentiss@kernel.org>
To: Oleksandr Natalenko <oleksandr@natalenko.name>
Cc: "Erik Håkansson" <erikhakan@gmail.com>,
"Jiri Kosina" <jikos@kernel.org>,
"Filipe Laíns" <lains@riseup.net>,
"Bastien Nocera" <hadess@hadess.net>,
"Rafael Passos" <rafael@rcpassos.me>,
"Grégoire Stein" <greyxor@protonmail.com>,
"Alexey Zagorodnikov" <xglooom@gmail.com>,
"Roman Stingler" <roman.stingler@gmail.com>,
"Lovekesh Solanki" <lovekeshsolanki00@gmail.com>,
"Kateřina Medvědová" <k8ie@mcld.eu>,
linux-input@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 0/2] HID: logitech-hidpp: fix Bolt hi-res wheel handling
Date: Wed, 23 Sep 2026 09:54:09 +0200 [thread overview]
Message-ID: <arOEsd3o2zgXlyHW@beelink> (raw)
In-Reply-To: <8P3_vvAUQ0qq3g6Cks8PBg@natalenko.name>
On Sep 23 2026, Oleksandr Natalenko wrote:
> Hello.
>
> On úterý 22. září 2026 19:40:26, středoevropský letní čas Erik Håkansson wrote:
> > This series aims to fix high-resolution wheel handling for Logitech devices
> > connected through Bolt receivers as well as respect user settings for
> > scroll behaviour.
> >
> > Patch 1 is Rafael Passos’s original implementation:
> >
> > https://lore.kernel.org/linux-input/20260904034843.1340846-1-rafael@rcpassos.me/
> >
> > His patch routes Bolt wheel movement through the HID++ child, where the
> > device’s HiRes Wheel multiplier can be applied. Patch 2 builds on
> > Rafael’s work by 1. supporting both high-resolution and low-resolution
> > scroll events, and 2. preserving user-selected high-resolution and
> > inversion settings.
> >
> > The follow-up patch was developed with reference to the patches and
> > reported behavior in Magnetar-OS’s `logitech-bolt-hidpp-dkms` repository:
> >
> > https://github.com/Magnetar-OS/logitech-bolt-hidpp-dkms/tree/main/patches
> >
> > So my assumption right now is that the reason for the divergent results
> > people have had with the two different fix approaches (i.e. either passing
> > interface 0 and 1 as DJ interfaces, or Rafael's approach), where it works
> > for some, and only sometimes, etc. is that with user settings coming from
> > Solaar, we may end up in weird states.
> > For example, in the original patch, high-resolution events would go through
> > the generic HID which would treat each tick as a full wheel event, thus
> > scaling the scroll way too far. That was solved with Rafael's patch but
> > that would instead fail to handle low-resolution events if high resolution
> > was turned off in Solaar while use_hidpp remained enabled, so a low-resolution
> > delta would be treated as high-resolution, which would result instead in a
> > too slow scroll. Possibly, when Oleksandr switched devices, Solaar reapplied
> > some saved user settings, which conflicted with the driver logic.
> >
> > With this patch, user settings from Solaar (or elsewhere) for high-resolution
> > mode and scroll inversion will be respected,
> > and scrolling should work both in high-resolution and low-resolution mode.
> > However, if user-space turns off the use_hidpp setting while high_resolution
> > remains on, this will route high-resolution scroll events to generic HID.
> > Thus, when high_resolution is on for a Bolt device, the driver will
> > force use_hidpp to be on during initialisation or reinitialisation, because
> > otherwise the scaling issue will return.
> > Solaar may still, after driver initialisation, reapply a saved use_hidpp
> > setting of off while high_resolution remains on, or the user may change it
> > to off, which will cause the issue even with this patch.
> >
> > In theory, it should be possible to look at incoming setWheelMode responses
> > or notifications and, just like on initialisation, enforce use_hidpp as long
> > as high_resolution is set on a Bolt device. However, I don't know how Solaar
> > will behave then. There's a risk it will trigger a back-and-forth if Solaar
> > reapplies its saved setting after the kernel corrects it. Also, even if that
> > doesn't happen, we should respect user choice even for use_hidpp. Perhaps
> > the Solaar team can be informed about the problem so they can add a warning
> > text.
> >
> > Note that I don't have a Bolt mouse to test this with, and my theory is
> > mostly inferred, so I would appreciate very much if people with various
> > Bolt mice could test it out. Also great if you try different settings in
> > Solaar, but note that use_hidpp must be on if high_resolution is on, so
> > either set it to on in Solaar, or to ignore.
> >
> > Link: https://lore.kernel.org/linux-input/20260712003051.338194-2-erikhakan@gmail.com/
> > Link: https://lore.kernel.org/linux-input/20260901-bolt-scroll-fix-v1-1-58bca7ae487f@protonmail.com/
> > Link: https://lore.kernel.org/linux-input/LYMlyJcyQt29e1KlLnEoLw@natalenko.name/
> > Link: https://lore.kernel.org/linux-input/20260920094508.39682-1-roman.stingler@gmail.com/
> > Signed-off-by: Erik Håkansson <erikhakan@gmail.com>
> > ---
> > Erik Håkansson (1):
> > HID: logitech-hidpp: fix Bolt wheel mode handling
> >
> > Rafael Passos (1):
> > HID: logitech-hidpp: fix hi-res scroll for Bolt-connected MX Master
> >
> > drivers/hid/hid-logitech-hidpp.c | 147 ++++++++++++++++++++++++++++++++-------
> > 1 file changed, 123 insertions(+), 24 deletions(-)
> > ---
> > base-commit: 022eb347ff3a48281e7e69c3addcb11bf24afa53
> > change-id: 20260921-feature-bolt-fix-5f1f642496df
> >
> > Best regards,
>
> Not sure if I'm testing this right, but with v7.3-rc4 and these two patches scrolling works OK as long as I keep "Scroll Wheel Resolution" in Solaar off. Unlike with unpatched kernel, scrolling doesn't go crazy if I switch between devices. But if I switch "Scroll Wheel Resolution" on, scrolling jumps crazy again.
Hopefully we've got all of the involved people here.
Honestly, this whole situation has been running for too long: Bolt can't
be handled as a DJ receiver, and all the quirks I'm seeing here are
making things even worse, with the "as long as I keep [some user
settings] off".
Bolt in kernel was adding in 7.3, so I'm going to revert it now, and
we'll have to have a fully working plan for an eventual inclusion in a
future kernel version.
Cheers,
Benjamin
next prev parent reply other threads:[~2026-09-23 7:54 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-22 17:40 Erik Håkansson
2026-09-22 17:40 ` [PATCH 1/2] HID: logitech-hidpp: fix hi-res scroll for Bolt-connected MX Master Erik Håkansson
2026-09-22 17:40 ` [PATCH 2/2] HID: logitech-hidpp: fix Bolt wheel mode handling Erik Håkansson
2026-09-23 6:39 ` [PATCH 0/2] HID: logitech-hidpp: fix Bolt hi-res wheel handling Oleksandr Natalenko
2026-09-23 7:54 ` Benjamin Tissoires [this message]
2026-09-23 16:09 ` erikhakan
2026-09-24 6:51 ` Oleksandr Natalenko
2026-09-24 21:41 ` Erik Håkansson
2026-09-24 21:48 ` erikhakan
2026-09-24 21:57 ` Oleksandr Natalenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=arOEsd3o2zgXlyHW@beelink \
--to=bentiss@kernel.org \
--cc=erikhakan@gmail.com \
--cc=greyxor@protonmail.com \
--cc=hadess@hadess.net \
--cc=jikos@kernel.org \
--cc=k8ie@mcld.eu \
--cc=lains@riseup.net \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lovekeshsolanki00@gmail.com \
--cc=oleksandr@natalenko.name \
--cc=rafael@rcpassos.me \
--cc=roman.stingler@gmail.com \
--cc=xglooom@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®