0f6c985f7f
Port the rumble packet from upstream driver/gamepad.c: a 9-byte GIP_CMD_RUMBLE payload (motors R|L|RT|LT, intensities scaled to the 0..100 GIP range, duration/repeat constants). xone_controller_rumble now sends it via client::send_rumble; the app button pulses both motors for 0.6s then stops them. Completes the host to controller TX remainder of Phase 3 (the dongle LED is already driven at chip level for pairing and client lifecycle). Co-Authored-By: qwen3.8-27b@q3_k_xl: implemented rumble TX