From: Dmitry Mikushin <dmitry@kernelgen.org>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Dmitry Mikushin <dmitry@kernelgen.org>,
linux-input@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH v2 0/3] Input: synaptics - enable SMBus for ThinkPad P14s Gen 2i (LEN2072)
Date: Mon, 26 Oct 2026 15:26:45 +0100 [thread overview]
Message-ID: <20261026142648.2567233-1-dmitry@kernelgen.org> (raw)
The ThinkPad P14s Gen 2i touchpad (Synaptics TM3471-030, LEN2072) is
not on the SMBus passlist and runs in PS/2 mode. Forcing RMI4 alone
does not help: the F12 attention handler reads the whole 79-byte data
packet over SMBus on every frame, which caps the report rate at about
43 Hz and loses fast swipes.
Patch 1 fixes the size passed to rmi_f12_process_objects(), which
counted from the start of the data packet instead of from Data1.
Patch 2 makes F12 read only the registers up to and including Data1,
raising the report rate to about 65 Hz on this machine. Patch 3 then
adds LEN2072 to smbus_pnp_ids and should not be applied without
patch 2.
Tested on a ThinkPad P14s Gen 2i (20VX) on 7.2.9, including s2idle
suspend/resume and the TrackPoint on the RMI4 pass-through port. On
this device Data1 is the first data register, so patch 1 does not
change its behavior.
Changes in v2:
- New patch 1. Sashiko pointed out that with patch 2 alone, on devices
where Data1 is not at offset 0, rmi_f12_process_objects() could parse
bytes past the end of what was read. The underlying off-by-
data1_offset bound predates this series, so it is fixed separately
with a Fixes: tag.
- No changes to patches 2 and 3.
v1: https://lore.kernel.org/all/20261026093118.2312302-1-dmitry@kernelgen.org/
Dmitry Mikushin (3):
Input: synaptics-rmi4 - f12: pass Data1-relative size to
process_objects
Input: synaptics-rmi4 - f12: read only the object data on attention
Input: synaptics - add LEN2072 to smbus_pnp_ids for ThinkPad P14s Gen
2i
drivers/input/mouse/synaptics.c | 1 +
drivers/input/rmi4/rmi_f12.c | 20 +++++++++++++++++---
2 files changed, 18 insertions(+), 3 deletions(-)
--
2.56.0
next reply other threads:[~2026-10-26 14:26 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-26 14:26 Dmitry Mikushin [this message]
2026-10-26 14:26 ` [PATCH v2 1/3] Input: synaptics-rmi4 - f12: pass Data1-relative size to process_objects Dmitry Mikushin
2026-10-26 14:26 ` [PATCH v2 2/3] Input: synaptics-rmi4 - f12: read only the object data on attention Dmitry Mikushin
2026-10-26 14:26 ` [PATCH v2 3/3] Input: synaptics - add LEN2072 to smbus_pnp_ids for ThinkPad P14s Gen 2i Dmitry Mikushin
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=20261026142648.2567233-1-dmitry@kernelgen.org \
--to=dmitry@kernelgen.org \
--cc=dmitry.torokhov@gmail.com \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/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®