summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorle <le@FreeBSD.org>2004-06-26 09:19:31 +0000
committerle <le@FreeBSD.org>2004-06-26 09:19:31 +0000
commit21a36330b410b4bc4b67ebb64182227996dfb557 (patch)
tree72abb4f5b1dff08d5f75bbde7b8e433705edf0d9 /sys
parent2e35fb1a4c7a968ba62b71e2e36f78abbf9f3ecc (diff)
downloadFreeBSD-src-21a36330b410b4bc4b67ebb64182227996dfb557.zip
FreeBSD-src-21a36330b410b4bc4b67ebb64182227996dfb557.tar.gz
MFNetBSD.
ohci.c (1.147), author: mycroft Failure to properly mask off UE_DIR_IN from the endpoint address was causing OHCI_ED_FORMAT_ISO and EHCI_QH_HRECL to get set spuriously, causing rather interesting lossage. Suddenly I get MUCH better performance with ehci... ohci.c (1.148), author: mycroft Adjust a couple of comments to make it clear WTF is going on. Obtained from: NetBSD
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/usb/ohci.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/dev/usb/ohci.c b/sys/dev/usb/ohci.c
index bf0e33f..a8dfe3f 100644
--- a/sys/dev/usb/ohci.c
+++ b/sys/dev/usb/ohci.c
@@ -8,6 +8,8 @@
* $NetBSD: ohci.c,v 1.144 2003/11/23 19:18:06 augustss Exp $
* $NetBSD: ohci.c,v 1.145 2003/11/23 19:20:25 augustss Exp $
* $NetBSD: ohci.c,v 1.146 2003/12/29 08:17:10 toshii Exp $
+ * $NetBSD: ohci.c,v 1.147 2004/06/22 07:20:35 mycroft Exp $
+ * $NetBSD: ohci.c,v 1.148 2004/06/22 18:27:46 mycroft Exp $
*/
#include <sys/cdefs.h>
@@ -1727,7 +1729,8 @@ ohci_device_request(usbd_xfer_handle xfer)
sed = opipe->sed;
opipe->u.ctl.length = len;
- /* Update device address and length since they may have changed. */
+ /* Update device address and length since they may have changed
+ during the setup of the control pipe in usbd_new_device(). */
/* XXX This only needs to be done once, but it's too early in open. */
/* XXXX Should not touch ED here! */
sed->ed.ed_flags = htole32(
@@ -2123,7 +2126,7 @@ ohci_open(usbd_pipe_handle pipe)
}
sed->ed.ed_flags = htole32(
OHCI_ED_SET_FA(addr) |
- OHCI_ED_SET_EN(ed->bEndpointAddress) |
+ OHCI_ED_SET_EN(UE_GET_ADDR(ed->bEndpointAddress)) |
(dev->speed == USB_SPEED_LOW ? OHCI_ED_SPEED : 0) |
fmt |
OHCI_ED_SET_MAXP(UGETW(ed->wMaxPacketSize)));
OpenPOWER on IntegriCloud