With the interrupt fix in the previous commit low and full speed devices

have a chance to work, so allow them (with a warning).
Make a small change to the transaction translator scheduling to make it
at least hobble along (again from Dan Ellis).
This commit is contained in:
augustss 2005-04-27 16:20:26 +00:00
parent 7f37519f2c
commit d514cae370
1 changed files with 7 additions and 5 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: ehci.c,v 1.92 2005/04/27 02:12:20 augustss Exp $ */
/* $NetBSD: ehci.c,v 1.93 2005/04/27 16:20:26 augustss Exp $ */
/*
* Copyright (c) 2004 The NetBSD Foundation, Inc.
@ -65,7 +65,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: ehci.c,v 1.92 2005/04/27 02:12:20 augustss Exp $");
__KERNEL_RCSID(0, "$NetBSD: ehci.c,v 1.93 2005/04/27 16:20:26 augustss Exp $");
#include "ohci.h"
#include "uhci.h"
@ -1359,12 +1359,14 @@ ehci_open(usbd_pipe_handle pipe)
}
if (speed != EHCI_QH_SPEED_HIGH) {
printf("%s: *** WARNING: opening low/full speed device, this "
"does not work yet.\n",
"may not work yet.\n",
USBDEVNAME(sc->sc_bus.bdev));
DPRINTFN(1,("ehci_open: hshubaddr=%d hshubport=%d\n",
hshubaddr, hshubport));
#if 0
if (xfertype != UE_CONTROL)
return USBD_INVAL;
#endif
}
naks = 8; /* XXX */
@ -1386,8 +1388,8 @@ ehci_open(usbd_pipe_handle pipe)
EHCI_QH_SET_MULT(1) |
EHCI_QH_SET_HUBA(hshubaddr) |
EHCI_QH_SET_PORT(hshubport) |
EHCI_QH_SET_CMASK(0xf0) | /* XXX */
EHCI_QH_SET_SMASK(xfertype == UE_INTERRUPT ? 0x01 : 0)
EHCI_QH_SET_CMASK(0x08) | /* XXX */
EHCI_QH_SET_SMASK(xfertype == UE_INTERRUPT ? 0x02 : 0)
);
sqh->qh.qh_curqtd = EHCI_NULL;
/* Fill the overlay qTD */