Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 8 Feb 2009 21:50:47 +0000 (UTC)
From:      Andrew Thompson <thompsa@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r188340 - user/thompsa/usb/sys/dev/usb2/controller
Message-ID:  <200902082150.n18LolZA035401@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: thompsa
Date: Sun Feb  8 21:50:47 2009
New Revision: 188340
URL: http://svn.freebsd.org/changeset/base/188340

Log:
  MFH r188336
  
   The NRL value in the queue head must be zero for interrupt transfers. This was
   diagnosed using a USB analyser obtained through a FreeBSD Foundation grant.

Modified:
  user/thompsa/usb/sys/dev/usb2/controller/ehci2.c

Modified: user/thompsa/usb/sys/dev/usb2/controller/ehci2.c
==============================================================================
--- user/thompsa/usb/sys/dev/usb2/controller/ehci2.c	Sun Feb  8 21:48:35 2009	(r188339)
+++ user/thompsa/usb/sys/dev/usb2/controller/ehci2.c	Sun Feb  8 21:50:47 2009	(r188340)
@@ -1895,7 +1895,9 @@ ehci_setup_standard_chain(struct usb2_xf
 
 	if (usb2_get_speed(xfer->xroot->udev) == USB_SPEED_HIGH) {
 		qh_endp |= (EHCI_QH_SET_EPS(EHCI_QH_SPEED_HIGH) |
-		    EHCI_QH_DTC | EHCI_QH_SET_NRL(8));
+		    EHCI_QH_DTC);
+		if (methods != &ehci_device_intr_methods)
+			qh_endp |= EHCI_QH_SET_NRL(8);
 	} else {
 
 		if (usb2_get_speed(xfer->xroot->udev) == USB_SPEED_FULL) {



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