From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qt1-f174.google.com (mail-qt1-f174.google.com [209.85.160.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C1FC2395ACE for ; Mon, 3 Aug 2026 19:15:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.174 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785784559; cv=none; b=kKhuDvbLfodLEkjETqhyJ0STEshzJENMIVUGQyzyadHMeoT1E9KHHFhPp6fYUQ5GjWDWp0P/4CFpKklvh4dhDVxIsc5PbeGD2rOxSWqO54zu6vEB5UUz5Hk6T4vGryNHfpS5itiODOI0/5lSaO2RMBCjDL6okcFmQ4TO9LahxZ8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785784559; c=relaxed/simple; bh=934UJESt4e3E/RFtZn5Nbjz4hY/GnRsvCkTLrK2/1d0=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=CB41u3lvsF+YUFkuvS37pFXU0iXPMEAkajesXMTucdDbP1veVgBxu7e43MmxZCqyMHPcjfT52CkqxiNsBJhXyAoIOe+VEHOMeKa56wWBzAOZDBKcxuCNA6SPEsV+q3KSuP5lVQqjm8f9DFhsEclmWMS/7nof7+wLhYk23vOcEMs= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=khTt7NGS; arc=none smtp.client-ip=209.85.160.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="khTt7NGS" Received: by mail-qt1-f174.google.com with SMTP id d75a77b69052e-51c04bf4711so32854951cf.2 for ; Mon, 03 Aug 2026 12:15:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785784557; x=1786389357; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=dfkWyvd9IQQn4UBQnJJuAkB90tZ4A4dsGQWiFXSP6dk=; b=khTt7NGSryk0ZoHdPyRt0uSHJx9S2FdcLPKA6WomlsXddoa4IjNJnC2rhV4DYtugyq o5Ffngef/iwNZa8N8wmcwVYiRhYPkOybOx8Y9aWPk0lHT4TEXab8MPiKlkv7nKLvV4eo sABEapCshREZCLerkdH44C7w37+2jThAXL4YP7ZEh0OX6GkwvzWT6kgMIjiDJg3a31VT /JhLUQPnxtPaT7EFB1CJSpMbdiOGp2R0kqiGwggSUY7zK36SEeG+zws5qFK8avbAS8Ny LmTvNHP4iPmhHehU5zQziRviGGZuqtfBwBFR66BvwkveGfIVA+lMML97mEYoaLfnJEd5 TtbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785784557; x=1786389357; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=dfkWyvd9IQQn4UBQnJJuAkB90tZ4A4dsGQWiFXSP6dk=; b=BpGhUcitY60CUkKqiJ6xao+gYznGDWVgcEPwH9ltE5pEFIuylNI7Kusx4hM20HH/et P+5McLaWjSbrTLyluwQSre8ZbekotvUZAACtRfzebkl9s/FQyjo9nZwHzDO08yVdLWVj EV+KqfHKL4VCJlea3pIU6NUCY8LwNRBaD8JkMBMniOSb1qKUDIOud2M1dydsKarSHZqr TnLL48py3X6YLJyZuUfCK5kn+ajH9eIllqCJPTGUDCG67/7nXkaXxNM0cpmvecRyUX78 XW+Sni2T0WNaeUN1DK+j9xoGCukuamAQJ/kODTENiIu5JyyNvX6BptO/upyWE5X5OYuF FUHQ== X-Forwarded-Encrypted: i=1; AHgh+RqnxNzKMTp5HmTSNFL78aUIslm9fQpJhBr2p2l1u1pS7e2FNa3SQWoKwWlAEtwKDyb5Cy+9MLcdK4ipS0o=@vger.kernel.org X-Gm-Message-State: AOJu0YxiK1pt3+5WYnlkAHataCOtKrGx9Zfn2eXJo0JEHpi9nTUUSagf DD2deD+ARSxn/W8MhwXs08tkNiYMB6CMINJyJU7oQTDeH0ykcXwiHGqV X-Gm-Gg: AR+sD13hfopya8STDbiySNTrFYgTtgPSBMMpKws6yu6FHod8bCrkbawcSu54QzzPnOr Zpqf6x7cGRdXAlu2IrXua3xaaoTnxsiNgiJmgNDWnbTaS3IIzD53+9xmD/nlFo/gntiwsSuCW7t 5LhRO4U7QwyqfqcYaW5Lhq1IQXW87lj0emRf3Cjc46S9OXnOaxzk3iAjb8dA9vaHqyRAttv+qjL 0116/Wu5kYD6kHtFWBk1rUncgby+BzvWgJyjYNh7a8U+mKDs3m/nGhIkJh1dmSxnsxJKVQ9RMKT oIJWXL11HQ50eyj8N7VjzwhQ6Tw3I3avmyogmp7DArvUrVT6g39xZZ6/sYUupzCFOTRO5fcvRi/ wKN/XoB1aH5M/ABgJZQtCSEzsPyIzbGqNApE+laMUIvqY4HjN3jk1FOrU2297QM3JqDJ49HhRPh bmQrG12BZtQm+uc/rUVk2XkWE8gtWBPTDTcCiHdNVXAGYMzdTZOcvQZYfwLTaRsfk7p9vI4ElXX QULzZwht3V0V9MSaMc= X-Received: by 2002:a05:622a:2b44:b0:51c:849b:86b with SMTP id d75a77b69052e-52b567f814bmr198720081cf.43.1785784556495; Mon, 03 Aug 2026 12:15:56 -0700 (PDT) Received: from achantapc.tail227c81.ts.net ([2600:4040:122e:7d00:f04d:e0df:fe04:e789]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-52b4e64df9bsm67803541cf.0.2026.08.03.12.15.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Aug 2026 12:15:56 -0700 (PDT) From: Sriman Achanta To: Jiri Kosina , Benjamin Tissoires Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, Bastien Nocera , Simon Wood , Christian Mayer , Sriman Achanta Subject: [PATCH v7 0/8] HID: steelseries: split out Arctis driver and add Nova 5X/Nova 7 support Date: Mon, 3 Aug 2026 15:15:45 -0400 Message-ID: <20260803191553.66368-1-srimanachanta@gmail.com> X-Mailer: git-send-email 2.55.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 sp4m.an.joker@gmail.com, and the original Nova 7 protocol was verified against hardware by colin@1101b.com. 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