[PATCH v7 0/8] HID: steelseries: split out Arctis driver and add Nova 5X/Nova 7 support

Sriman Achanta <[email protected]>
Newsgroups org.kernel.vger.linux-kernel,org.kernel.vger.linux-input
Message-ID <[email protected]>
This series moves the SteelSeries Arctis headset support out of
hid-steelseries.c into its own module, reworks it around a per-model
device_info table, hardens the battery power-supply lifetime, adds an
asynchronous status interface, and finally adds support for the Arctis
Nova 5X and Nova 7 families. After the split, hid-steelseries.c is left
handling the SRW-S1 racing wheel and the MSI RGB LED devices.

Changes since v6:
 - Rebased onto hid.git#for-7.3/steelseries.
   - The split now leaves the MSI RGB code in hid-steelseries.c
     alongside SRW-S1, and strips only the headset members from
     struct steelseries_device. The MSI RGB quirk bit is renumbered
     to BIT(1) since the two Arctis bits are gone.
   - The Arctis hardening that came with the MSI commit moves into
     hid-steelseries-arctis.c with the rest of the headset code: the
     hdev->rsize < 3 guard in steelseries_is_vendor_usage_page(), the
     battery_registered store/load-acquire pair, the !sd checks, and
     the hid_hw_stop() on the hid_hw_open() error path. The
     steelseries_is_headset() dispatch is dropped, as the new module
     only binds headsets. The battery_registered flag then goes away
     in patch 3, where the device_info rework guards every
     power_supply_changed() on sd->battery instead.
   - The v6 patch "HID: steelseries: Inline and simplify SRWS1 wheel
     driver" is dropped. Its premise was that hid-steelseries.c only
     handles the SRW-S1 after the split, which is no longer true.
 - No other changes. The resulting hid-steelseries-arctis.c is
   byte-identical to v6.

Each patch builds cleanly with CONFIG_HID_STEELSERIES=m, both with and
without CONFIG_LEDS_CLASS_MULTICOLOR.

The Nova 5X protocol was verified against hardware by
[email protected], and the original Nova 7 protocol was verified
against hardware by [email protected]. Thanks to both for testing. I
previously ommited other devices in the v4 patch series due to being
unable to verify.

Sriman Achanta (8):
  HID: steelseries: Fix ARCTIS_1_X device mislabeling
  HID: steelseries: Split Arctis headset driver into separate module
  HID: steelseries: Refactor Arctis driver to use device_info framework
  HID: steelseries: Report POWER_SUPPLY_STATUS_FULL when full
  HID: steelseries: Correct Arctis 9 battery calibration range
  HID: steelseries: Manage battery lifetime with refcounting
  HID: steelseries: Add async status interface support
  HID: steelseries: Add support for Arctis Nova 5X and Nova 7 families

 drivers/hid/Makefile                 |   2 +-
 drivers/hid/hid-ids.h                |  18 +-
 drivers/hid/hid-quirks.c             |  16 +-
 drivers/hid/hid-steelseries-arctis.c | 718 +++++++++++++++++++++++++++
 drivers/hid/hid-steelseries.c        | 366 +-------------
 5 files changed, 751 insertions(+), 369 deletions(-)
 create mode 100644 drivers/hid/hid-steelseries-arctis.c


base-commit: 2346d6997b70dae1f8302fd029aa422e28112eaa
-- 
2.55.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.