From 31c4fcca7d5ae7485b99b0a4bb7bbd4448b23eea Mon Sep 17 00:00:00 2001 From: Ken Sanislo Date: Fri, 15 May 2026 00:58:05 -0700 Subject: [PATCH] =?UTF-8?q?Drop=200x0623=20probe=20=E2=80=94=20feature=20i?= =?UTF-8?q?s=20unmapped=20and=20not=20in=20G=20HUB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit G HUB doesn't touch 0x0623 either, so blind low-fn probing isn't giving us anything to triangulate. Remove HEADSET_RGB_0623 from the SupportedFeature enum and the probe call. --- lib/logitech_receiver/hidpp20_constants.py | 4 ---- lib/logitech_receiver/rgb_effects_probe.py | 25 +--------------------- 2 files changed, 1 insertion(+), 28 deletions(-) diff --git a/lib/logitech_receiver/hidpp20_constants.py b/lib/logitech_receiver/hidpp20_constants.py index 064c175c..be0082c1 100644 --- a/lib/logitech_receiver/hidpp20_constants.py +++ b/lib/logitech_receiver/hidpp20_constants.py @@ -214,10 +214,6 @@ class SupportedFeature(IntEnum): HEADSET_RGB_HOSTMODE = 0x0620 HEADSET_RGB_ONBOARD_EFFECTS = 0x0621 HEADSET_RGB_SIGNATURE_EFFECTS = 0x0622 - # 0x0623 is present on G522 sub-device but its function set is unmapped; - # add probe coverage in rgb_effects_probe so the next bring-up captures - # whatever read functions respond. - HEADSET_RGB_0623 = 0x0623 HEADSET_DO_NOT_DISTURB = 0x0631 CENTURION_ONBOARD_PROFILES = 0x0634 HEADSET_RGB_STREAMING = 0x0635 diff --git a/lib/logitech_receiver/rgb_effects_probe.py b/lib/logitech_receiver/rgb_effects_probe.py index c3be6a1c..6c9fbe2c 100644 --- a/lib/logitech_receiver/rgb_effects_probe.py +++ b/lib/logitech_receiver/rgb_effects_probe.py @@ -1,8 +1,7 @@ -"""Read-only corpus probe for the headset RGB feature triplet: +"""Read-only corpus probe for the headset RGB feature pair: - HEADSET_RGB_ONBOARD_EFFECTS (0x0621) - HEADSET_RGB_SIGNATURE_EFFECTS (0x0622) - - HEADSET_RGB_0623 (0x0623, function set unmapped) Logs raw response bytes and lengths at INFO so field testers without ``-dd`` can still capture the data. All calls are strictly read-side — @@ -180,24 +179,6 @@ def probe_onboard_effects(device) -> None: _call(device, feature, 0x40) -def probe_unknown_0623(device) -> None: - """Probe 0x0623 (purpose unmapped) — present on G522 sub-device. - - Function set unknown. Try a small window of low function indexes to - capture whatever responds. Strictly read-side; we don't know what - arguments the functions take so we just call each with no payload - and let the device 0x0A any function that needs args. - """ - feature = SupportedFeature.HEADSET_RGB_0623 - if not device.features or feature not in device.features: - return - logger.debug("RGB probe: 0x0623 HEADSET_RGB_0623 present on %s", device) - # Functions 0..7 covers the typical "info / get* / get*" range; if - # anything responds we'll have first bytes to triangulate against. - for fn_idx in range(8): - _call(device, feature, fn_idx << 4) - - def probe_signature_effects(device) -> None: """Probe 0x0622 RGBSignatureEffects read-side functions.""" feature = SupportedFeature.HEADSET_RGB_SIGNATURE_EFFECTS @@ -236,7 +217,3 @@ def probe(device) -> None: probe_signature_effects(device) except Exception as e: logger.debug("RGB probe: signature-effects probe raised %r", e) - try: - probe_unknown_0623(device) - except Exception as e: - logger.debug("RGB probe: 0x0623 probe raised %r", e)