Three findings from G HUB pcap analysis (~/ghub/g522/*.pcapng): 1. Mic-mute on G522 actually works — we had the wrong fnids. The firmware uses fn 0x10 (function 1) for state-change events / reads and fn 0x20 (function 2) for SetState; the standard fn 0x10 SetState path returns 0x0A NOT_SUPPORTED. Replace the previous "suppress entirely on G522" quirk with a per-PID rw_options override that uses the right fnids. Other headsets keep the standard pattern. 2. setRGBClusterEffect (0x0621 fn 0x30) takes effect_id 0x0000 paired with RGB bytes to mean "Static color" — *not* "Off / Disabled" as our cluster-info parse had guessed. Add a structured decoder for getRGBClusterInfo (fn 0x10) that emits a human-readable summary alongside the raw hex, with effect_id 0x0000 labelled "Static". Records turn out to be 4 bytes each (effect_id LE u16, slot_idx LE u16) — most other HID++ fields are BE but this one is LE per the captured factory-default bytes. 3. Sub-feature 0x0623 is present on G522 but unmapped (it appeared as `unknown:0623` in the feature-table dump). Add a placeholder SupportedFeature entry and probe the first 8 functions read-side so the next bring-up captures whatever responds. |
||
|---|---|---|
| .. | ||
| hid_parser | ||
| hidapi | ||
| keysyms | ||
| logitech_receiver | ||
| solaar | ||