summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbrad <brad@openbsd.org>2005-12-03 03:40:52 +0000
committerbrad <brad@openbsd.org>2005-12-03 03:40:52 +0000
commitba8fe8729be62a9341608ae00df1a4791c790028 (patch)
tree8ddc981097e802b30b368771349b0cb9fb956958
parentremove unused and useless functions, they just get in the way; (diff)
downloadwireguard-openbsd-ba8fe8729be62a9341608ae00df1a4791c790028.tar.xz
wireguard-openbsd-ba8fe8729be62a9341608ae00df1a4791c790028.zip
Allow strings descriptor 0 to be fetched. It's the default language index.
From augustss NetBSD ok dlg@
-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;