From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-dy1-f182.google.com (mail-dy1-f182.google.com [74.125.82.182]) (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 B4BFB228CB0 for ; Sun, 10 May 2026 04:35:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.182 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778387717; cv=none; b=dpmkl77nAmWwvzJ9wryNUJcxUifOgYfeBUrlx22lBEHefdTH7UvLxwmRoXF6zkS1AqeSkfvvM+Omz42167/CzPon8NSyXCv85JScNTaRIfG+yd/7gnpIjRrWioRLkQHI6tW0V7f5683IwHMJMBxv1rImFFqjDpxEk8X9YDeGxw4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778387717; c=relaxed/simple; bh=78Nf458slPacJvpnRvOG1Bl9fYQHdqC4ktR3gfPaiD0=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=WYX9QDSvrormAAu4ZQ1RxX7eoV4iGkNgyRKYkwOWu/w8yzZStQPISSx6Wm7OfLf1IL1BcgMFAeiv9T5LUleuF7iteIEmgLc3/zJOxS3qVblaWj9K8xts3Di5Aj1PIIoIGjDYPA7N9LlY0M64XyJy5ZVZUEzObeNiIdDPucfJvnE= 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=khEv1kRF; arc=none smtp.client-ip=74.125.82.182 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="khEv1kRF" Received: by mail-dy1-f182.google.com with SMTP id 5a478bee46e88-2f36da5c8fbso3182964eec.0 for ; Sat, 09 May 2026 21:35:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778387716; x=1778992516; 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; bh=OlEoy4DZ4SH4fgpH5599ViWFjoBhWI0C/WiEDfJBN0A=; b=khEv1kRF149B5Ck/39XN2llLsIPz+lT2bwyWaQxtnsISQrm8bABQAsDJD3y6jYlB0J lJe6mlHK2Rw2PZFlAIqnZ7VSTjkhfnz8yr5qoRHkjVqYICQyg84la6nQo86CJw860qz3 7ppjfOqCtQj2SsPe7CZzfZg3ANifsNk6AN4O6vcn+7inH/8RSWUzp3n/V73KQg1xvMXc MWDgjTkijb9Yltjp/sWi7hQI1+scA6Q/aSIilGJTMHmFoAF0eRc2ZiU3kRa3fvS6X8Vb 1z6FQy5Y+hql/vuO53F0T1umdmuFe89c/wVXdv9y4vz4C/Hx08Y5th/jTVCOKbzRmjSV bF9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778387716; x=1778992516; 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; bh=OlEoy4DZ4SH4fgpH5599ViWFjoBhWI0C/WiEDfJBN0A=; b=TXd420X4k3AU4IK3Kfndti2Jj3sFej9hArhqoZTuEaraVg6H2h9UuVyw3hTgI5MQi4 qITx6ke3RSNtjui/4dnEKPQBBin3tRCkOGT5LiaCGSxzLvP/ZAs3NRADEraGiKLW/Rhg opdgNSHJLWo+yYuzhaVLMw4T2mEVFtIAaBp/lfQlQKO9KHbOmEVg/y97embckQ/LC4IF vYursJFqHBa6t3F7akFIadXnbNiuZlcI+J8Elll5ZUgi4IRp2UGdeY5onR9Z/3T7warp JzYoVC97wdhfB3UBDm8AgHcb6+u1aNlgUf9tt5aImRi5heFKimMF8WThclAfsrKnaBCC jyNQ== X-Forwarded-Encrypted: i=1; AFNElJ/pdc6hFhD/92r1cD+uL7DO8fRc22fqghN7Yvk4CW0MY0R5qPueLFf5JwuctCwqegY1cjM5dc3vWnnniRQ=@vger.kernel.org X-Gm-Message-State: AOJu0YyZF35fg9rM3HlwdNPBalQFbBIKmcjEJ3YaHHwzQZKWmBfHcIVh 5E5vg/Onv3IfFkPDE847fI1upR5AS00msD5Rc6FC8fPstkOR8IQhoCZg X-Gm-Gg: Acq92OGH5R0jfQwBOeHL/lU5asKBHPIsBq/ulLY04ru0xi1hE8OGzqyva3l3s/fpwQs IC0fBPT+ZsPapo9r+bP+8Bp3dHR4diS+JAdBwRYdj/5Mil/nHuYdFMjmMZYwH6hqkhXZgqDGlxa 7SDOTjeGD/oOV9glBhoiqTZKK1WYxW4CJWvEJcKL8cB888Fh5LlJnR1hGzVBM9J2gnGTFZlyQyt DFEn0RdZOhA/n3wkO1HftNh0F47YZIelTy2ApRwJHqzwDFDWJD4/WhRqllEt0cxoO/IUinw2WoF qi2WCvZaJcQ93esdmDMx5C1OTOnfBpK5h4WBdnNUQA7xjGxvIpphtrrTdgh2i/OFJFH+TX+ga/p ghjSrIjDDqOhiLh0y/jr8po18ZwLyvJ0zrj1kxdf13avqgkDdybJvQGfunHn5/a5fB6FiMrVMbD hLKKJrWHveBe2Vxydd9bw/wfplEtIImDHrDpBYXom45+L2DuEaoRcl44q+ufFM1sldLH7XCQ05Y 1CrbcM8DC7Txd4= X-Received: by 2002:a05:7301:1010:b0:2ed:27a3:eae3 with SMTP id 5a478bee46e88-2fb4e04199fmr1601148eec.26.1778387715632; Sat, 09 May 2026 21:35:15 -0700 (PDT) Received: from lappy (108-228-232-20.lightspeed.sndgca.sbcglobal.net. [108.228.232.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2f88885be8esm8667953eec.22.2026.05.09.21.35.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 09 May 2026 21:35:15 -0700 (PDT) From: "Derek J. Clark" To: Jiri Kosina , Benjamin Tissoires Cc: "Pierre-Loup A . Griffais" , Denis Benato , Zhouwang Huang , "Derek J . Clark" , linux-input@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 0/4] Add MSI Claw HID Configuration Driver Date: Sun, 10 May 2026 04:35:06 +0000 Message-ID: <20260510043510.442807-1-derekjohn.clark@gmail.com> X-Mailer: git-send-email 2.53.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 adds and HID Configuration driver for the MSI Claw line of Handheld Gaming PC's. The MSI Claw HID interface provides multiple features, such as the ability to switch between xinput, dinput, and a desktop mode, RGB control, rumble intensity, and mapping of the rear "M" keys. There are additional gamepad modes that are not included in this driver as they appear to be used in assembly line testing or are incomplete in the firmware. During my testing I found them to be unstable. The initial version of this driver was written by Denis Benato, which contained the initial reverse-engineering and implementation for the gamepad mode switching. This work was later expanded by Zhouwang Huang to include more gamepad modes and additional features. Finally, I refactored the entire driver, fixed multiple bugs, and refined the overall format to conform to kernel driver best practices and style guide. Claude was used initially by Zhouwang Huang to quickly parse HID captures during the reverse-engineering of some of the features. Since Claude had already been used, as a test of its capabilities I had it implement the rumble intensity attribute after I had already rewritten most of the driver, which I then manually edited to fix some mistakes. I also used Claude to review the driver and these patches for any mistakes and bugs. Assisted-by: Claude:claude-sonnet-4-6 Co-developed-by: Denis Benato Signed-off-by: Denis Benato Co-developed-by: Zhouwang Huang Signed-off-by: Zhouwang Huang Signed-off-by: Derek J. Clark Derek J. Clark (4): HID: hid-msi-claw: Add MSI Claw configuration driver HID: hid-msi-claw: Add M-key mapping attributes HID: hid-msi-claw: Add RGB control interface HID: hid-msi-claw: Add Rumble Intensity Attributes MAINTAINERS | 6 + drivers/hid/Kconfig | 12 + drivers/hid/Makefile | 1 + drivers/hid/hid-ids.h | 6 + drivers/hid/hid-msi-claw.c | 1577 ++++++++++++++++++++++++++++++++++++ 5 files changed, 1602 insertions(+) create mode 100644 drivers/hid/hid-msi-claw.c -- 2.53.0