>Number: 97169 >Category: usb >Synopsis: [uhid + Xbox 360 gamepad] Turn off blinking LED on attach >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-usb >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Fri May 12 09:50:19 GMT 2006 >Closed-Date: >Last-Modified: >Originator: Ed Schouten >Release: FreeBSD 7.0-CURRENT i386 >Organization: n/a >Environment: System: FreeBSD zonk.fxq.nl 7.0-CURRENT FreeBSD 7.0-CURRENT #7: Fri May 12 01:11:45 CEST 2006 [EMAIL PROTECTED]:/usr/obj/export/src/sys/ZONK i386
>Description: When attaching an Xbox 360 gamepad a computer, the LED on the gamepad blinks by default. When the operating system (read: normally an Xbox 360) initializes the gamepad, the LED stops blinking. FreeBSD does not disable the LED, which is quite irritating, as the LED is quite bright. >How-To-Repeat: Connect an Xbox 360 gamepad to a machine running FreeBSD 6.1 or higher. >Fix: The following patch sends a packet containing 0x01 0x03 0x00 to the device. This stops the LED from blinking. See http://www.free60.org/wiki/Gamepad for details. %%% --- uhid.c Fri May 12 01:11:20 2006 +++ uhid.c Fri May 12 01:11:34 2006 @@ -280,6 +280,12 @@ } else if (id->bInterfaceClass == UICLASS_VENDOR && id->bInterfaceSubClass == UISUBCLASS_XBOX360_CONTROLLER && id->bInterfaceProtocol == UIPROTO_XBOX360_GAMEPAD) { + static uByte reportbuf[] = {1, 3, 0}; + + /* The four LEDs on the gamepad are blinking by default. */ + usbd_set_report(uaa->iface, UHID_OUTPUT_REPORT, 0, + &reportbuf, sizeof reportbuf); + /* The Xbox 360 gamepad has no report descriptor. */ size = sizeof uhid_xb360gp_report_descr; descptr = uhid_xb360gp_report_descr; %%% >Release-Note: >Audit-Trail: >Unformatted: _______________________________________________ [email protected] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-usb To unsubscribe, send any mail to "[EMAIL PROTECTED]"
