3890 Commits
Author SHA1 Message Date
SalastilandClaude Opus 5 f888b1ddbc Fix Corsair K70 RGB PRO V2 direct lighting
The K70 RGB PRO V2 (1B1C:1BB3) was detected but never lit: it blanked
into software render mode and then fell back to its onboard effect.
Getting it working turned up five faults, three of which affect every
Corsair V2 device rather than just this keyboard.

Packet size is now read from the HID report descriptor before the first
write instead of being inferred from a reply. These devices come in a 64
byte and a 1024 byte flavour, and sending a short packet to a 1024 byte
endpoint stalls it until the device is power cycled, so the size has to
be known up front rather than after two short queries have gone out.

CORSAIR_V2_PACKET_SIZE was 1024 while pkt_sze reached 1025, so every
read using pkt_sze overran its stack buffer by a byte. The command
helpers now use pkt_sze against buffers of the corrected size.

The lighting resource probe ran before the device was placed in software
render mode, where the answer is meaningless, and treated any error as
"use resource 1". Devices that answer invalid or unsupported for
resource 1 want the alternate lighting resource, which takes RGB
triplets; this keyboard is one of them. The probe now runs after the
render mode switch and distinguishes a stale open handle from an
unsupported resource.

Direct lighting writes were sized from the keymap, which covers only the
keys that exist. The hardware expects its full slot count and ignores a
short write, so corsair_v2_device carries an optional hw_led_count and
the buffer map is padded to it. Set to 193 for this keyboard.

The keepalive thread wrote LEDs on its first pass, because
last_update_time was left at the clock epoch and so always read as older
than the update period. That raced detection on the same HID handle with
no locking, which both corrupted the transaction and could abort the
process. The clock is now started before the thread runs, device
transactions are serialised behind a mutex, and the thread is stopped
before Shutdown rather than after.

Also fixes an uninitialised stack buffer sent to the device during
setup, and widens the K70 RGB PRO matrix to 22 columns so the numpad
period key has a position in the layout instead of being dropped.

Verified on hardware: repeated colour changes apply and the device stays
responsive across runs.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-09-21 21:08:51 -04:00
Alzeroff-The-Allfather f03b3472ea Add Corsair K60 RGB PRO SE support 2026-09-21 12:01:20 -05:00
André Schwarz ce3ee27d8e Renaming PAGE_SIZE in LogitechHIDPP20Controller.cpp 2026-09-20 23:20:08 -05:00
rom4ster 5303e29628 Remove Debug and Extra Line 2026-09-20 15:33:55 -05:00
rom4ster ffcf003c37 Add Support for Razer Naga V3 Pro 2026-09-20 15:33:54 -05:00
ubelhj f7e0e3d77b Add MSI PRO B850-S WIFI6E to supported devices 2026-09-20 12:45:15 -05:00
Victor Ferreira 4cf5fe9346 Correct the swapped brightness and speed comments
Measured on an ASRock Intel Arc B580 Steel Legend, which uses this same
packet: holding everything else fixed and stepping data[5] through 0xFF,
0x40 and 0x00 dims the zone progressively and turns it off at zero, while
data[4] does not change brightness.  So data[4] is the effect speed and
data[5] is the brightness, the other way around from what the comments
said.  The bytes written are unchanged, this only fixes the labels.
2026-09-19 14:35:25 -05:00
Victor Ferreira eb5d88537d Call Shutdown() in the ASRock GPU controller destructor
Every other ASRock controller shuts the device thread down before deleting
the controller.  This one did not, so tearing it down logs

  Device thread still active in base class destructor, ensure Shutdown()
  was called from inherited destructor

on every exit.  Seen on an ASRock Intel Arc B580 Steel Legend, but the file
is shared with the Radeon Steel Legend and Taichi cards.
2026-09-19 14:35:25 -05:00
Petre cd44e41d46 [New Device] Gigabyte GeForce RTX 4070 SUPER Eagle OC (non-ICE) 2026-09-18 14:02:43 -05:00
epicchillman 0129e58f53 Add support for MSI PRO B850M-A WIFI motherboard 2026-09-18 01:04:25 -07:00
Adam Honse 0adfde971b Update PalitGPUControllerDetect to filter for port ID 1 (the NVIDIA OEM bus) and re-add the PALIT string check in addition to the Gainward i2c_smbus_write_quick check for V1 controllers 2026-09-18 00:47:41 -05:00
Adam Honse 27a93edec5 Add second ID for PNY RTX 5070TI ARGB Epic-X OC 2026-09-18 00:38:50 -05:00
Adam Honse 65e04a5332 Fix crash in MSI 185 controller when board config is null, fixes #5869 2026-09-18 00:24:19 -05:00
Prasad Patole 51398fd6c5 Added Support for ASRock RX 9070 XT Steel Legend Dark (0x5414) 2026-09-17 23:45:02 -05:00
DJMalachite 2c37d4eebb [Quadcast 2 S] Edit RGBController_HyperXMicrophoneV2.cpp to fix reversed matrix map 2026-09-16 07:43:17 -05:00
Matthew Uniack 08a9f83ff4 Add PID for Corsair Sabre RGB Optical mouse (0x1B32) 2026-09-15 12:07:28 -05:00
Nicolas Wendling 1cee73e125 Add alternate subsystem device ID for Sapphire Radeon RX 9070 XT Nitro+ 2026-09-15 12:02:24 -05:00
Yoann Laissus 6f027de52b Fix layout on Gigabyte RTX 5090 XTREME WATERFORCE non WB version 2026-09-15 11:59:50 -05:00
Daniel Clark 94e7b03a50 update the led10 and led 11 zone count routine to handle new cases. 2026-09-15 11:41:11 -05:00
Adam Honse 8eb30ba840 Fix warnings in RGBController_PalitGPUv2 2026-09-11 18:02:20 -05:00
Denilson Martins 6bb57b8822 MSI 7E76 (MSI B840M GAMING WIFI6E) 2026-09-11 15:02:29 -05:00
OfotViking 243889d818 Add support for Gainward GeForce RTX 4090 Phantom 2026-09-11 10:07:00 -05:00
Adam Honse f69213db02 Palit GPU Cleanup - Merge Palit, Gainward, and PNY - V1 and V2 2026-09-11 10:07:00 -05:00
Jonathan Arellano f4173ed72f Gigabyte RGB Fusion 2 USB: apply once per zone update, not per LED 2026-09-11 09:05:09 -05:00
Adam Honse 84fb7d18d0 Fix warning in RGBController_Alienware.cpp 2026-09-09 21:14:08 -05:00
brenmous e161314090 Add support for MSI B850MPOWER 2026-09-09 23:26:10 +10:00
Adam Honse 9ac50bd646 Add firmware read timeout in Corsair Lighting Node controller to prevent lockup, fixes #5838 2026-09-08 21:22:38 -05:00
Adam Honse 2b24d0a2e9 Add firmware version check to MSIMotherboard185Controller 2026-09-08 19:59:04 -05:00
Vangel Dior afb654aa55 Added support for Gainward GeForce RTX 5080 Phoenix 2026-09-08 16:44:07 -05:00
Aman Ali 82ae818712 Add PNY GeForce RTX 3060 XLR8 Revel EPIC-X LHR (196E:138F) 2026-09-08 04:01:52 -07:00
Adam Yearout 6ac47cc4f3 HID LampArray: fix keyboard usage mappings 2026-09-08 00:43:17 -05:00
Adam Honse aaa7cb0886 Clean up MSI flags handling and add comments 2026-09-08 00:41:38 -05:00
JAO1988 a42352c867 Added MSI MAG X870E GAMING MAX WIFI motherboard 2026-09-07 22:14:01 -05:00
Michael Updike 1da6a652fd Fix Clevo ITE8291 keyboard LED value/key positional mismatch 2026-09-06 15:45:52 -05:00
jpage77 4f63756e15 RazerController: Add support for Huntsman V3 HE Magnetic Mini 2026-09-06 13:25:31 -05:00
Venatrix “Joe” Ritz 93b374ad9f TurtleBeachKP7: name the LEDs and split into three zones 2026-09-06 02:00:50 -05:00
Noocktall Klown S. (NKlownS) 2319f5c20d AlienwareController: add support, zone mapping, direction and EEPROM save for Dell G15 5520/5530 (AW-ELC) 2026-09-06 01:59:31 -05:00
JAO1988 7523e11eb5 Added ASRock Radeon RX 9070 XT Taichi 16GB OC 2026-09-06 01:55:18 -05:00
J-Man 75302d7219 Add ASUS ROG STRIX XG27ACDNG RGB detection 2026-09-05 16:51:15 -05:00
Adam Honse ed3d7894c8 Update Realtek ARGB controller to the new configuration system 2026-09-04 21:48:39 -05:00
Daniel Clark dc14dff646 Fix reset to default in device specific settings for gigabyte motherboard usb controllers. 2026-09-04 21:11:28 -05:00
Daniel Clark 31a09bc728 Move Gigabyte USB Controller settings to Device Specific Settings. 2026-09-04 19:29:47 -05:00
Ken Sanislo 07e1f2bb2a Logitech HID++ 2.0: drop the per-frame wire logs 2026-09-04 15:21:36 -05:00
Daniel Clark fd1bc449ae Update Gigabyte Motherboard USB RGB Controller 2026-09-04 09:31:50 -05:00
Delnegend b420af5c42 ASRock GPU: Add Radeon RX 9060 XT Steel Legend and fix Windows ADL detection 2026-09-03 23:44:02 -05:00
Adam Honse d092f3b159 Remove colors_min/max from per-LED mode in NVIDIA Illumination controller, fixes #5836 2026-09-03 20:30:53 -05:00
John Sideserf 1335a9b06c Add Gigabyte AORUS RTX 5080 MASTER ICE (0x418C) at 0x71, reject echo-bus probe responses 2026-09-03 18:46:28 -05:00
Ken Sanislo bf2a0fb8f1 HID LampArray: stop on a failed report descriptor read
hid_get_report_descriptor returns -1 on failure and the length was
stored unsigned, so the descriptor walk ran past the end of the stack
buffer. Windows reconstructs the descriptor from preparsed data and can
fail where Linux returns the kernel's copy. A failed read now leaves the
device with no lamps, the same as a descriptor with missing reports.
2026-09-03 11:11:36 -05:00
Piotr Kochan 657cc0d05d MSI 761-byte: add PRO B850M-A WIFI PZ 2026-09-03 07:13:35 -05:00
Ken Sanislo 999cbd2578 Logitech HID++ 2.0: place the G915 X top strip and G-keys 2026-09-02 14:45:04 -05:00