svn commit: r268739 - stable/9/sys/dev/usb/input

Hans Petter Selasky hselasky at FreeBSD.org
Wed Jul 16 06:23:54 UTC 2014


Author: hselasky
Date: Wed Jul 16 06:23:54 2014
New Revision: 268739
URL: http://svnweb.freebsd.org/changeset/base/268739

Log:
  MFC r268583:
  Turn off blinking device leds at attach.
  
  PR:		183735

Modified:
  stable/9/sys/dev/usb/input/uhid.c
Directory Properties:
  stable/9/sys/   (props changed)
  stable/9/sys/dev/   (props changed)

Modified: stable/9/sys/dev/usb/input/uhid.c
==============================================================================
--- stable/9/sys/dev/usb/input/uhid.c	Wed Jul 16 06:22:35 2014	(r268738)
+++ stable/9/sys/dev/usb/input/uhid.c	Wed Jul 16 06:23:54 2014	(r268739)
@@ -759,9 +759,20 @@ uhid_attach(device_t dev)
 			sc->sc_flags |= UHID_FLAG_STATIC_DESC;
 		}
 	} else if ((uaa->info.bInterfaceClass == UICLASS_VENDOR) &&
-		    (uaa->info.bInterfaceSubClass == UISUBCLASS_XBOX360_CONTROLLER) &&
+	    (uaa->info.bInterfaceSubClass == UISUBCLASS_XBOX360_CONTROLLER) &&
 	    (uaa->info.bInterfaceProtocol == UIPROTO_XBOX360_GAMEPAD)) {
-
+		static const uint8_t reportbuf[3] = {1, 3, 0};
+		/*
+		 * Turn off the four LEDs on the gamepad which
+		 * are blinking by default:
+		 */
+		error = usbd_req_set_report(uaa->device, NULL,
+		    __DECONST(void *, reportbuf), sizeof(reportbuf),
+		    uaa->info.bIfaceIndex, UHID_OUTPUT_REPORT, 0);
+		if (error) {
+			DPRINTF("set output report failed, error=%s (ignored)\n",
+			    usbd_errstr(error));
+		}
 		/* the Xbox 360 gamepad has no report descriptor */
 		sc->sc_repdesc_size = sizeof(uhid_xb360gp_report_descr);
 		sc->sc_repdesc_ptr = (void *)&uhid_xb360gp_report_descr;


More information about the svn-src-stable-9 mailing list