summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorBrad Smith <brad@cvs.openbsd.org>2005-12-03 03:40:53 +0000
committerBrad Smith <brad@cvs.openbsd.org>2005-12-03 03:40:53 +0000
commit3744d1bf4de374ece69626cf0c801ad33a491de4 (patch)
treee68b74dd83b035d768bb49650b955008944053dc /sys/dev
parentb3c04098cf7264c08a88143453690a416b691c3b (diff)
Allow strings descriptor 0 to be fetched. It's the default language index.
From augustss NetBSD ok dlg@
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/usb/ehci.c7
-rw-r--r--sys/dev/usb/ohci.c5
-rw-r--r--sys/dev/usb/uhci.c5
3 files changed, 13 insertions, 4 deletions
diff --git a/sys/dev/usb/ehci.c b/sys/dev/usb/ehci.c
index 4f619730749..7e459c04ed0 100644
--- a/sys/dev/usb/ehci.c
+++ b/sys/dev/usb/ehci.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ehci.c,v 1.52 2005/11/21 18:16:42 millert Exp $ */
+/* $OpenBSD: ehci.c,v 1.53 2005/12/03 03:40:52 brad Exp $ */
/* $NetBSD: ehci.c,v 1.66 2004/06/30 03:11:56 mycroft Exp $ */
/*
@@ -479,7 +479,7 @@ ehci_init(ehci_softc_t *sc)
/* Turn on controller */
EOWRITE4(sc, EHCI_USBCMD,
- EHCI_CMD_ITC_2 | /* 2 microframes */
+ EHCI_CMD_ITC_2 | /* 2 microframes interrupt delay */
(EOREAD4(sc, EHCI_USBCMD) & EHCI_CMD_FLS_M) |
EHCI_CMD_ASE |
EHCI_CMD_PSE |
@@ -1760,6 +1760,9 @@ ehci_root_ctrl_start(usbd_xfer_handle xfer)
*(u_int8_t *)buf = 0;
totlen = 1;
switch (value & 0xff) {
+ case 0: /* Language table */
+ totlen = ehci_str(buf, len, "\001");
+ break;
case 1: /* Vendor */
totlen = ehci_str(buf, len, sc->sc_vendor);
break;
diff --git a/sys/dev/usb/ohci.c b/sys/dev/usb/ohci.c
index 88ff878ee35..f5720aadf12 100644
--- a/sys/dev/usb/ohci.c
+++ b/sys/dev/usb/ohci.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ohci.c,v 1.64 2005/11/21 18:16:42 millert Exp $ */
+/* $OpenBSD: ohci.c,v 1.65 2005/12/03 03:40:52 brad Exp $ */
/* $NetBSD: ohci.c,v 1.139 2003/02/22 05:24:16 tsutsui Exp $ */
/* $FreeBSD: src/sys/dev/usb/ohci.c,v 1.22 1999/11/17 22:33:40 n_hibma Exp $ */
@@ -2476,6 +2476,9 @@ ohci_root_ctrl_start(usbd_xfer_handle xfer)
*(u_int8_t *)buf = 0;
totlen = 1;
switch (value & 0xff) {
+ case 0: /* Language table */
+ totlen = ohci_str(buf, len, "\001");
+ break;
case 1: /* Vendor */
totlen = ohci_str(buf, len, sc->sc_vendor);
break;
diff --git a/sys/dev/usb/uhci.c b/sys/dev/usb/uhci.c
index f4d36abd899..4e285c6b094 100644
--- a/sys/dev/usb/uhci.c
+++ b/sys/dev/usb/uhci.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: uhci.c,v 1.41 2005/11/21 18:16:43 millert Exp $ */
+/* $OpenBSD: uhci.c,v 1.42 2005/12/03 03:40:52 brad Exp $ */
/* $NetBSD: uhci.c,v 1.172 2003/02/23 04:19:26 simonb Exp $ */
/* $FreeBSD: src/sys/dev/usb/uhci.c,v 1.33 1999/11/17 22:33:41 n_hibma Exp $ */
@@ -3183,6 +3183,9 @@ uhci_root_ctrl_start(usbd_xfer_handle xfer)
*(u_int8_t *)buf = 0;
totlen = 1;
switch (value & 0xff) {
+ case 0: /* Language table */
+ totlen = uhci_str(buf, len, "\001");
+ break;
case 1: /* Vendor */
totlen = uhci_str(buf, len, sc->sc_vendor);
break;