public inbox for linux-input@vger.kernel.org
 help / color / mirror / Atom feed
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


             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