Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 7 Nov 2013 01:39:58 GMT
From:      Cam Karnes <karnes.cameron@gmail.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   misc/183735: Xbox 360 LEDs won't stop blinking
Message-ID:  <201311070139.rA71dwu1046481@oldred.freebsd.org>
Resent-Message-ID: <201311070150.rA71o36i048647@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         183735
>Category:       misc
>Synopsis:       Xbox 360 LEDs won't stop blinking
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Nov 07 01:50:03 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator:     Cam Karnes
>Release:        9.1
>Organization:
>Environment:
FreeBSD 9.1-RELEASE FreeBSD 9.1-RELEASE #0: Wed Nov  6 17:30:15 EST 2013  /usr/obj/usr/src/sys/XBOXTOP   amd64
>Description:
The ring of LEDs will not stop blinking after the controller is plugged into a USB port. It's very distracting, and detracts from usage.
>How-To-Repeat:
Plug in an Xbox 360 controller.
>Fix:
A reworked patch was applied to uhid.c

Credit where credit is due. The original patch was submitted some seven years ago, and this contribution is simply a rework, as the original seems to have been pruned during revisions and rewrites to uhid.c over the years.

>From the mailing lists: http://lists.freebsd.org/pipermail/freebsd-usb/2006-May/002212.html

Patch attached with submission follows:

--- uhid.c	2013-11-06 20:25:25.000000000 -0500
+++ uhid.c.patched	2013-11-06 20:25:04.000000000 -0500
@@ -760,6 +760,12 @@
 	} else if ((uaa->info.bInterfaceClass == UICLASS_VENDOR) &&
 		    (uaa->info.bInterfaceSubClass == UISUBCLASS_XBOX360_CONTROLLER) &&
 	    (uaa->info.bInterfaceProtocol == UIPROTO_XBOX360_GAMEPAD)) {
+               static uint8_t reportbuf[] = {1, 3, 0};
+
+                /* The four LEDs on the gamepad are blinking by default. */
+			usbd_req_set_report(uaa->device, NULL,
+			    reportbuf, sizeof(reportbuf),
+			    uaa->info.bIfaceIndex, UHID_OUTPUT_REPORT, 0);
 
 		/* the Xbox 360 gamepad has no report descriptor */
 		sc->sc_repdesc_size = sizeof(uhid_xb360gp_report_descr);


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201311070139.rA71dwu1046481>