@@ -82,8 +82,9 @@ Game Pad while retaining the Valve-native report bytes, so Windows Game
8282Controllers and generic HID clients can enumerate it even if the Valve-specific
8383path is unavailable. SDL/HIDAPI can recognize it as a Steam Deck, disable its
8484desktop mappings, and send native rumble without exposing Valve protocol details
85- through the public C++ API. A neutral state is submitted continuously from the
86- moment the backend is created, and each packet carries an advancing native
85+ through the public C++ API. The driver seeds a neutral report before exposing the
86+ device, the backend submits another synchronously during creation, and periodic
87+ updates continue afterward. Each backend packet carries an advancing native
8788sequence number.
8889
8990See [ Windows driver package] ( windows-driver.md ) for build, install, validation,
@@ -149,14 +150,14 @@ provides it separately on the UHID event.
149150
150151Steam Deck retains Valve's native identity and emits the 64-byte Deck state
151152packet periodically so SDL's direct HIDAPI path can initialize before the first
152- client input arrives. Its UHID endpoint uses the virtual bus, preventing the
153- hardware-specific ` hid-steam ` driver from suppressing input behind the physical
154- Deck's lizard-mode gate; the Generic Desktop/Game Pad descriptor remains
155- available as an evdev fallback . The backend answers the unit-serial feature
156- query used during Linux registration, accepts the desktop-mapping/settings
157- commands used by SDL, and forwards native ` 0xEB ` rumble requests through the
158- portable output callback. Each submitted native packet carries an advancing
159- sequence number.
153+ client input arrives. Its UHID endpoint uses the Bluetooth HID transport tag:
154+ this remains visible to HIDAPI while avoiding the USB-only ` hid-steam ` match
155+ that otherwise suppresses the virtual endpoint's reports when a direct HID
156+ client opens it . The Generic Desktop/Game Pad descriptor remains available as
157+ an evdev fallback. The backend answers the unit-serial feature query used during
158+ Linux registration, accepts the desktop-mapping/settings commands used by SDL,
159+ and forwards native ` 0xEB ` rumble requests through the portable output callback.
160+ Each submitted native packet carries an advancing sequence number.
160161
161162The backend opens ` /dev/uhid ` in nonblocking mode, matching the original
162163asynchronous gamepad registration path. Its event reader is active before
0 commit comments