From: Daniel Schaefer <dhs@frame.work>
To: linux-input@vger.kernel.org
Cc: Daniel Schaefer <dhs@frame.work>, Jiri Kosina <jikos@kernel.org>,
Benjamin Tissoires <bentiss@kernel.org>,
linux@frame.work, Mario Limonciello <mario.limonciello@amd.com>,
Maximilian Luz <luzmaximilian@gmail.com>,
Richard Hughes <richard@hughsie.com>,
Charles Wang <charles.goodix@gmail.com>
Subject: [PATCH 0/4] HID: Use wVersionID for device version
Date: Sat, 14 Mar 2026 01:56:55 +0800 [thread overview]
Message-ID: <20260313175659.268094-1-dhs@frame.work> (raw)
The motivation for this patch series is that the touchpads on Framework
Laptops expose their firmware version in the I2C HID device descriptor.
So the vendor's windows tool uses that to check the firmware version,
but Linux does not expose it to userspace at all.
We have added vendor specific HID reports to newer firmware for reading
the firmware version -that means however, the old firmware still cannot
reports its version to Linux at all.
I found that Mario has been planning to add a way for the kernel to
report HID firmware versions to userspace and added support to fwupd.
There's a kernel patch in flight that also exports this:
https://lwn.net/ml/all/20260220070533.4083667-1-derekjohn.clark@gmail.com/
While adding this for I2C HID devices, I noticed that the goodix-spi and
surface drivers also expose the HID protocol version, which is not very
useful. I do not have hardware to test those
The i2c-hid and core changes were tested on Framework Laptop 16.
I also added support to hidapi for reading the new uevent, if not
provided by USB already: https://github.com/libusb/hidapi/pull/777
Cc: Jiri Kosina <jikos@kernel.org>
Cc: Benjamin Tissoires <bentiss@kernel.org>
Cc: linux-input@vger.kernel.org
Cc: linux@frame.work
Cc: Mario Limonciello <mario.limonciello@amd.com>
Cc: Maximilian Luz <luzmaximilian@gmail.com>
Cc: Richard Hughes <richard@hughsie.com>
Cc: Charles Wang <charles.goodix@gmail.com>
Daniel Schaefer (4):
HID: i2c-hid: Use wVersionID for device version
HID: goodix-spi: Use version_id for device version
HID: surface: Use device version instead of HID spec version
HID: core: Export device version via HID_FIRMWARE_VERSION uevent
drivers/hid/hid-core.c | 3 +++
drivers/hid/hid-goodix-spi.c | 2 +-
drivers/hid/i2c-hid/i2c-hid-core.c | 2 +-
drivers/hid/surface-hid/surface_hid_core.c | 2 +-
4 files changed, 6 insertions(+), 3 deletions(-)
--
2.52.0
next reply other threads:[~2026-03-13 17:57 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-13 17:56 Daniel Schaefer [this message]
2026-03-13 17:56 ` [PATCH 1/4] HID: i2c-hid: Use wVersionID for device version Daniel Schaefer
2026-03-13 17:56 ` [PATCH 2/4] HID: goodix-spi: Use version_id " Daniel Schaefer
2026-03-13 17:56 ` [PATCH 3/4] HID: surface: Use device version instead of HID spec version Daniel Schaefer
2026-03-13 17:56 ` [PATCH 4/4] HID: core: Export device version via HID_FIRMWARE_VERSION uevent Daniel Schaefer
2026-03-13 17:59 ` Mario Limonciello
2026-03-13 18:20 ` Daniel Schaefer
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=20260313175659.268094-1-dhs@frame.work \
--to=dhs@frame.work \
--cc=bentiss@kernel.org \
--cc=charles.goodix@gmail.com \
--cc=jikos@kernel.org \
--cc=linux-input@vger.kernel.org \
--cc=linux@frame.work \
--cc=luzmaximilian@gmail.com \
--cc=mario.limonciello@amd.com \
--cc=richard@hughsie.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