mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
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


             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®