From: Sasha Levin <sashal@kernel.org>
To: patches@lists.linux.dev, stable@vger.kernel.org
Cc: Dennis Marttinen <twelho@welho.tech>,
Jiri Kosina <jkosina@suse.com>, Sasha Levin <sashal@kernel.org>,
jikos@kernel.org, bentiss@kernel.org,
linux-input@vger.kernel.org
Subject: [PATCH AUTOSEL 6.18-6.12] HID: logitech: add HID++ support for Logitech MX Anywhere 3S
Date: Mon, 12 Jan 2026 09:58:24 -0500 [thread overview]
Message-ID: <20260112145840.724774-23-sashal@kernel.org> (raw)
In-Reply-To: <20260112145840.724774-1-sashal@kernel.org>
From: Dennis Marttinen <twelho@welho.tech>
[ Upstream commit d7f6629bffdcb962d383ef8c9a30afef81e997fe ]
I've acquired a Logitech MX Anywhere 3S mouse, which supports HID++ over
Bluetooth. Adding its PID 0xb037 to the allowlist enables the additional
features, such as high-resolution scrolling. Tested working across multiple
machines, with a mix of Intel and Mediatek Bluetooth chips.
[jkosina@suse.com: standardize shortlog]
Signed-off-by: Dennis Marttinen <twelho@welho.tech>
Signed-off-by: Jiri Kosina <jkosina@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
LLM Generated explanations, may be completely bogus:
## Analysis of HID: logitech: add HID++ support for Logitech MX Anywhere
3S
### 1. COMMIT MESSAGE ANALYSIS
**Subject:** "HID: logitech: add HID++ support for Logitech MX Anywhere
3S"
The commit message explains:
- Author acquired an MX Anywhere 3S mouse that supports HID++ over
Bluetooth
- Adding PID 0xb037 to the allowlist enables additional features (high-
resolution scrolling)
- Tested on multiple machines with Intel and Mediatek Bluetooth chips
- Has proper sign-offs from author and maintainer (Jiri Kosina)
No `Cc: stable` or `Fixes:` tags are present, but as noted, that's
expected for commits undergoing manual review.
### 2. CODE CHANGE ANALYSIS
The actual change is minimal:
```c
+ { /* MX Anywhere 3S mouse over Bluetooth */
+ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_LOGITECH, 0xb037) },
```
This adds exactly **2 lines** - one comment and one device ID entry to
the `hidpp_devices[]` table. Looking at the context, this table already
contains many similar Logitech Bluetooth device entries:
- MX Master (0xb012), MX Master 2S (0xb019), MX Master 3 (0xb023), MX
Master 3S (0xb034)
- MX Anywhere 3 (0xb025), MX Anywhere 3SB (0xb038)
- M720 Triathlon (0xb015), MX Ergo (0xb01d), MX Vertical (0xb020), etc.
The new entry follows the exact same pattern as all existing entries.
### 3. CLASSIFICATION
This is a **NEW DEVICE ID** addition - one of the explicitly allowed
exception categories for stable kernels:
> "Adding PCI IDs, USB IDs, ACPI IDs, etc. to existing drivers - These
are trivial one-line additions that enable hardware support"
Key points:
- The hid-logitech-hidpp driver already exists in stable kernels
- The HID++ protocol support is fully implemented
- Only the Bluetooth device ID 0xb037 is being added
- This is not a new driver or new functionality - it's enabling an
existing driver for new hardware
### 4. SCOPE AND RISK ASSESSMENT
**Risk: EXTREMELY LOW**
| Factor | Assessment |
|--------|------------|
| Lines changed | 2 |
| Files touched | 1 |
| Code logic changed | None |
| Complexity | Zero - pure data table entry |
| Subsystem maturity | Very mature (HID drivers) |
This cannot introduce regressions because:
- No code paths are modified
- No functions are changed
- Only users with this specific mouse over Bluetooth are affected
- If there were somehow an issue, it would only affect that specific
hardware
### 5. USER IMPACT
**Who benefits:** Users with Logitech MX Anywhere 3S mice using
Bluetooth connection
**Without this fix:** The mouse works via basic HID, but lacks:
- High-resolution scrolling
- Battery status reporting
- Other HID++ features that premium Logitech mice support
**Impact level:** The MX Anywhere 3S is a current-generation retail
product that users are actively purchasing. Stable kernel users expect
their hardware to work properly.
### 6. STABILITY INDICATORS
- ✅ Tested by author on multiple machines with different Bluetooth chips
- ✅ Reviewed and signed off by HID maintainer Jiri Kosina
- ✅ Pattern is identical to many existing, working entries
### 7. DEPENDENCY CHECK
**Dependencies:** None
This is a pure data addition. The driver framework already exists in all
stable kernels that have the hid-logitech-hidpp driver. No other commits
are required.
---
## Summary
This commit is a **textbook example of a stable-appropriate device ID
addition**:
1. ✅ **Trivial 2-line change** - Just a device ID added to an existing
table
2. ✅ **No code modifications** - Pure data entry
3. ✅ **Driver already exists** - hid-logitech-hidpp is well-established
in stable
4. ✅ **Follows existing pattern** - Identical format to dozens of other
entries
5. ✅ **Tested** - Verified on multiple hardware configurations
6. ✅ **Zero regression risk** - Only affects users with this specific
hardware
7. ✅ **Real user benefit** - Enables proper hardware support for
current-generation product
8. ✅ **No dependencies** - Can be cleanly cherry-picked to any stable
kernel
The stable kernel rules explicitly allow device ID additions because
they enable hardware support with virtually zero risk. This is precisely
what the "device ID exception" exists for.
**YES**
drivers/hid/hid-logitech-hidpp.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/hid/hid-logitech-hidpp.c b/drivers/hid/hid-logitech-hidpp.c
index a88f2e5f791c6..9b612f62d0fba 100644
--- a/drivers/hid/hid-logitech-hidpp.c
+++ b/drivers/hid/hid-logitech-hidpp.c
@@ -4661,6 +4661,8 @@ static const struct hid_device_id hidpp_devices[] = {
HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_LOGITECH, 0xb025) },
{ /* MX Master 3S mouse over Bluetooth */
HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_LOGITECH, 0xb034) },
+ { /* MX Anywhere 3S mouse over Bluetooth */
+ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_LOGITECH, 0xb037) },
{ /* MX Anywhere 3SB mouse over Bluetooth */
HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_LOGITECH, 0xb038) },
{}
--
2.51.0
next prev parent reply other threads:[~2026-01-12 14:59 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-12 14:58 [PATCH AUTOSEL 6.18] HID: Elecom: Add support for ELECOM M-XT3DRBK (018C) Sasha Levin
2026-01-12 14:58 ` [PATCH AUTOSEL 6.18] x86/sev: Disable GCOV on noinstr object Sasha Levin
2026-01-12 14:58 ` [PATCH AUTOSEL 6.18-5.10] wifi: mac80211: collect station statistics earlier when disconnect Sasha Levin
2026-01-12 14:58 ` [PATCH AUTOSEL 6.18] btrfs: do not free data reservation in fallback from inline due to -ENOSPC Sasha Levin
2026-01-12 14:58 ` [PATCH AUTOSEL 6.18-5.10] btrfs: fix deadlock in wait_current_trans() due to ignored transaction type Sasha Levin
2026-01-19 11:46 ` Motiejus Jakštys
2026-01-20 11:03 ` Greg KH
2026-01-12 14:58 ` [PATCH AUTOSEL 6.18-5.10] HID: quirks: Add another Chicony HP 5MP Cameras to hid_ignore_list Sasha Levin
2026-01-12 14:58 ` [PATCH AUTOSEL 6.18-6.1] HID: intel-ish-hid: Update ishtp bus match to support device ID table Sasha Levin
2026-01-12 14:58 ` [PATCH AUTOSEL 6.18-5.10] HID: multitouch: add MT_QUIRK_STICKY_FINGERS to MT_CLS_VTL Sasha Levin
2026-01-12 14:58 ` [PATCH AUTOSEL 6.18-6.1] HID: i2c-hid: fix potential buffer overflow in i2c_hid_get_report() Sasha Levin
2026-01-12 14:58 ` [PATCH AUTOSEL 6.18] riscv: trace: fix snapshot deadlock with sbi ecall Sasha Levin
2026-01-12 14:58 ` [PATCH AUTOSEL 6.18-6.12] drm/amd/pm: Disable MMIO access during SMU Mode 1 reset Sasha Levin
2026-01-12 14:58 ` [PATCH AUTOSEL 6.18-6.12] riscv: Sanitize syscall table indexing under speculation Sasha Levin
2026-01-12 14:58 ` [PATCH AUTOSEL 6.18-5.15] netfilter: replace -EEXIST with -EBUSY Sasha Levin
2026-01-12 14:58 ` [PATCH AUTOSEL 6.18-6.12] PCI: qcom: Remove ASPM L0s support for MSM8996 SoC Sasha Levin
2026-01-12 14:58 ` [PATCH AUTOSEL 6.18-5.10] ALSA: hda/realtek: add HP Laptop 15s-eq1xxx mute LED quirk Sasha Levin
2026-01-12 14:58 ` [PATCH AUTOSEL 6.18-5.10] ring-buffer: Avoid softlockup in ring_buffer_resize() during memory free Sasha Levin
2026-01-12 14:58 ` [PATCH AUTOSEL 6.18-5.15] HID: playstation: Center initial joystick axes to prevent spurious events Sasha Levin
2026-01-12 14:58 ` [PATCH AUTOSEL 6.18-5.10] HID: intel-ish-hid: Reset enum_devices_done before enumeration Sasha Levin
2026-01-12 14:58 ` [PATCH AUTOSEL 6.18] drm/amd/display: Reduce number of arguments of dcn30's CalculatePrefetchSchedule() Sasha Levin
2026-01-12 14:58 ` [PATCH AUTOSEL 6.18-5.10] HID: Apply quirk HID_QUIRK_ALWAYS_POLL to Edifier QR30 (2d99:a101) Sasha Levin
2026-01-12 14:58 ` [PATCH AUTOSEL 6.18-6.1] btrfs: fix reservation leak in some error paths when inserting inline extent Sasha Levin
2026-01-12 14:58 ` [PATCH AUTOSEL 6.18-6.12] ALSA: hda/realtek: Add quirk for Acer Nitro AN517-55 Sasha Levin
2026-01-12 14:58 ` Sasha Levin [this message]
2026-01-12 14:58 ` [PATCH AUTOSEL 6.18] HID: Intel-thc-hid: Intel-thc: Add safety check for reading DMA buffer Sasha Levin
2026-01-12 14:58 ` [PATCH AUTOSEL 6.18-5.10] HID: usbhid: paper over wrong bNumDescriptor field Sasha Levin
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=20260112145840.724774-23-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=bentiss@kernel.org \
--cc=jikos@kernel.org \
--cc=jkosina@suse.com \
--cc=linux-input@vger.kernel.org \
--cc=patches@lists.linux.dev \
--cc=stable@vger.kernel.org \
--cc=twelho@welho.tech \
/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