diff options
43 files changed, 3219 insertions, 625 deletions
diff --git a/sys/dev/usb/devlist2h.awk b/sys/dev/usb/devlist2h.awk index da3d472985a..080d2ddc445 100644 --- a/sys/dev/usb/devlist2h.awk +++ b/sys/dev/usb/devlist2h.awk @@ -1,6 +1,6 @@ #! /usr/bin/awk -f -# $OpenBSD: devlist2h.awk,v 1.6 2001/01/28 09:43:41 aaron Exp $ -# $NetBSD: devlist2h.awk,v 1.8 1999/11/18 23:32:25 augustss Exp $ +# $OpenBSD: devlist2h.awk,v 1.7 2001/10/31 04:24:44 nate Exp $ +# $NetBSD: devlist2h.awk,v 1.9 2001/01/18 20:28:22 jdolecek Exp $ # # Copyright (c) 1995, 1996 Christopher G. Demetriou # All rights reserved. @@ -175,12 +175,28 @@ END { printf("\n") > dfile - printf("const struct usb_known_product usb_known_products[] = {\n") > dfile + printf("const struct usb_knowndev usb_knowndevs[] = {\n") > dfile for (i = 1; i <= nproducts; i++) { printf("\t{\n") > dfile printf("\t USB_VENDOR_%s, USB_PRODUCT_%s_%s,\n", products[i, 1], products[i, 1], products[i, 2]) \ > dfile + printf("\t ") > dfile + printf("0") > dfile + printf(",\n") > dfile + + vendi = vendorindex[products[i, 1]]; + printf("\t \"") > dfile + j = 3; + needspace = 0; + while (vendors[vendi, j] != "") { + if (needspace) + printf(" ") > dfile + printf("%s", vendors[vendi, j]) > dfile + needspace = 1 + j++ + } + printf("\",\n") > dfile printf("\t \"") > dfile j = 4; @@ -195,15 +211,12 @@ END { printf("\",\n") > dfile printf("\t},\n") > dfile } - printf("\t{ 0, 0, NULL }\n") > dfile - printf("};\n\n") > dfile - - printf("const struct usb_known_vendor usb_known_vendors[] = {\n") > dfile for (i = 1; i <= nvendors; i++) { printf("\t{\n") > dfile - printf("\t USB_VENDOR_%s,\n", vendors[i, 1]) \ + printf("\t USB_VENDOR_%s, 0,\n", vendors[i, 1]) \ + > dfile + printf("\t USB_KNOWNDEV_NOPROD,\n") \ > dfile - printf("\t \"") > dfile j = 3; needspace = 0; @@ -215,8 +228,9 @@ END { j++ } printf("\",\n") > dfile + printf("\t NULL,\n") > dfile printf("\t},\n") > dfile } - printf("\t{ 0, NULL }\n") > dfile + printf("\t{ 0, 0, 0, NULL, NULL, }\n") > dfile printf("};\n") > dfile } diff --git a/sys/dev/usb/ezload.c b/sys/dev/usb/ezload.c index 185c5b21a7e..6ee64b5629a 100644 --- a/sys/dev/usb/ezload.c +++ b/sys/dev/usb/ezload.c @@ -1,5 +1,5 @@ -/* $OpenBSD: ezload.c,v 1.2 2001/05/03 02:20:31 aaron Exp $ */ -/* $NetBSD: ezload.c,v 1.2 2001/01/18 20:28:23 jdolecek Exp $ */ +/* $OpenBSD: ezload.c,v 1.3 2001/10/31 04:24:44 nate Exp $ */ +/* $NetBSD: ezload.c,v 1.3 2001/07/11 04:53:48 augustss Exp $ */ /* * Copyright (c) 2000 The NetBSD Foundation, Inc. @@ -69,7 +69,6 @@ * Although USB does not limit you here, the Anchor docs * quote 64 as a limit, and Mato@activewireinc.com suggested * to use 16. - * which is too big as an error for now. */ #define ANCHOR_CHUNK 16 @@ -132,7 +131,7 @@ ezload_download(usbd_device_handle dev, const struct ezdata *rec) len = ANCHOR_CHUNK; USETW(req.wValue, ptr->address + offs); USETW(req.wLength, len); - DPRINTFN(5,("ezload_download: addr=0x%x len=%d\n", + DPRINTFN(2,("ezload_download: addr=0x%x len=%d\n", ptr->address + offs, len)); err = usbd_do_request(dev, &req, ptr->data + offs); if (err) @@ -150,7 +149,7 @@ ezload_downloads_and_reset(usbd_device_handle dev, const struct ezdata **recs) { usbd_status err; - (void)ezload_reset(dev, 1); + /*(void)ezload_reset(dev, 1);*/ err = ezload_reset(dev, 1); if (err) return (err); @@ -163,7 +162,7 @@ ezload_downloads_and_reset(usbd_device_handle dev, const struct ezdata **recs) if (err) return (err); usbd_delay_ms(dev, 250); - (void)ezload_reset(dev, 0); + /*(void)ezload_reset(dev, 0);*/ err = ezload_reset(dev, 0); usbd_delay_ms(dev, 250); return (err); diff --git a/sys/dev/usb/if_aue.c b/sys/dev/usb/if_aue.c index 22126c42146..410cb029a9e 100644 --- a/sys/dev/usb/if_aue.c +++ b/sys/dev/usb/if_aue.c @@ -1,5 +1,5 @@ -/* $OpenBSD: if_aue.c,v 1.16 2001/07/15 03:03:35 mickey Exp $ */ -/* $NetBSD: if_aue.c,v 1.55 2001/03/25 22:59:43 augustss Exp $ */ +/* $OpenBSD: if_aue.c,v 1.17 2001/10/31 04:24:44 nate Exp $ */ +/* $NetBSD: if_aue.c,v 1.67 2001/10/10 02:14:16 augustss Exp $ */ /* * Copyright (c) 1997, 1998, 1999, 2000 * Bill Paul <wpaul@ee.columbia.edu>. All rights reserved. @@ -35,8 +35,8 @@ */ /* - * ADMtek AN986 Pegasus USB to ethernet driver. Datasheet is available - * from http://www.admtek.com.tw. + * ADMtek AN986 Pegasus and AN8511 Pegasus II USB to ethernet driver. + * Datasheet is available from http://www.admtek.com.tw. * * Written by Bill Paul <wpaul@ee.columbia.edu> * Electrical Engineering Department @@ -162,30 +162,65 @@ int auedebug = 0; struct aue_type { u_int16_t aue_vid; u_int16_t aue_did; - char aue_linksys; + u_int16_t aue_flags; +#define LSYS 0x0001 /* use Linksys reset */ +#define PNA 0x0002 /* has Home PNA */ +#define PII 0x0004 /* Pegasus II chip */ }; Static const struct aue_type aue_devs[] = { - { USB_VENDOR_BILLIONTON, USB_PRODUCT_BILLIONTON_USB100, 0 }, - { USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUATX1, 0 }, - { USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUATX5, 0 }, - { USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB100TX, 1 }, - { USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB100H1, 1 }, - { USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10TA, 1 }, - { USB_VENDOR_ADMTEK, USB_PRODUCT_ADMTEK_PEGASUS, 0 }, - { USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650, 1 }, - { USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX, 1 }, - { USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX_PNA, 0 }, - { USB_VENDOR_SOHOWARE, USB_PRODUCT_SOHOWARE_NUB100, 0 }, - { USB_VENDOR_SMC, USB_PRODUCT_SMC_2202USB, 0 }, + { USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX1, PNA|PII }, + { USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX2, PII }, + { USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX3, 0 }, + { USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX4, PNA }, + { USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX5, PNA }, + { USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX6, PII }, + { USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX7, PII }, + { USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX8, PII }, + { USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX9, PNA }, + { USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX10, 0 }, + { USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_DSB650TX_PNA, 0 }, + { USB_VENDOR_ACCTON, USB_PRODUCT_ACCTON_USB320_EC, 0 }, + { USB_VENDOR_ADMTEK, USB_PRODUCT_ADMTEK_PEGASUS, PNA }, + { USB_VENDOR_ADMTEK, USB_PRODUCT_ADMTEK_PEGASUSII, PII }, + { USB_VENDOR_BILLIONTON, USB_PRODUCT_BILLIONTON_USB100, 0 }, + { USB_VENDOR_BILLIONTON, USB_PRODUCT_BILLIONTON_USBLP100, PNA }, + { USB_VENDOR_BILLIONTON, USB_PRODUCT_BILLIONTON_USBEL100, 0 }, + { USB_VENDOR_BILLIONTON, USB_PRODUCT_BILLIONTON_USBE100, PII }, { USB_VENDOR_COREGA, USB_PRODUCT_COREGA_FETHER_USB_TX, 0 }, - { USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBETTX, 0 }, - { USB_VENDOR_KINGSTON, USB_PRODUCT_KINGSTON_KNU101TX, 0 }, + { USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX4, LSYS|PII }, + { USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX1, LSYS }, + { USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX, LSYS }, + { USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX_PNA, PNA }, + { USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX3, LSYS|PII }, + { USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX2, LSYS|PII }, + { USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650, 0 }, + { USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSBTX0, 0 }, + { USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSBTX1, 0 }, + { USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSBTX2, 0 }, + { USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSBTX3, PII }, + { USB_VENDOR_ELSA, USB_PRODUCT_ELSA_USB2ETHERNET, 0 }, + { USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBETTX, 0 }, + { USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBETTXS, PII }, + { USB_VENDOR_KINGSTON, USB_PRODUCT_KINGSTON_KNU101TX, 0 }, + { USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10TX1, LSYS|PII }, + { USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10T, LSYS }, + { USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB100TX, LSYS }, + { USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB100H1, LSYS|PNA }, + { USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10TA, LSYS }, + { USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10TX2, LSYS|PII }, + { USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUATX1, 0 }, + { USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUATX5, 0 }, + { USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUA2TX5, PII }, + { USB_VENDOR_SMARTBRIDGES, USB_PRODUCT_SMARTBRIDGES_SMARTNIC,PII }, + { USB_VENDOR_SMC, USB_PRODUCT_SMC_2202USB, 0 }, + { USB_VENDOR_SOHOWARE, USB_PRODUCT_SOHOWARE_NUB100, 0 }, { 0, 0, 0 } }; USB_DECLARE_DRIVER(aue); +Static void aue_reset_pegasus_II(struct aue_softc *sc); Static const struct aue_type *aue_lookup(u_int16_t vendor, u_int16_t product); Static int aue_tx_list_init(struct aue_softc *); Static int aue_rx_list_init(struct aue_softc *); @@ -506,7 +541,7 @@ aue_miibus_statchg(device_ptr_t dev) * This turns on the 'dual link LED' bin in the auxmode * register of the Broadcom PHY. */ - if (sc->aue_linksys) { + if (sc->aue_flags & LSYS) { u_int16_t auxmode; auxmode = aue_miibus_readreg(dev, 0, 0x1b); aue_miibus_writereg(dev, 0, 0x1b, auxmode | 0x04); @@ -577,6 +612,20 @@ allmulti: } Static void +aue_reset_pegasus_II(struct aue_softc *sc) +{ + /* Magic constants taken from Linux driver. */ + aue_csr_write_1(sc, AUE_REG_1D, 0); + aue_csr_write_1(sc, AUE_REG_7B, 2); +#if 0 + if ((sc->aue_flags & HAS_HOME_PNA) && mii_mode) + aue_csr_write_1(sc, AUE_REG_81, 6); + else +#endif + aue_csr_write_1(sc, AUE_REG_81, 2); +} + +Static void aue_reset(struct aue_softc *sc) { int i; @@ -607,14 +656,25 @@ aue_reset(struct aue_softc *sc) aue_csr_write_1(sc, AUE_GPIO0, AUE_GPIO_OUT0 | AUE_GPIO_SEL0 | AUE_GPIO_SEL1); +#if 0 + /* XXX what is mii_mode supposed to be */ + if (sc->aue_mii_mode && (sc->aue_flags & PNA)) + aue_csr_write_1(sc, AUE_GPIO1, 0x34); + else + aue_csr_write_1(sc, AUE_GPIO1, 0x26); +#endif + /* Grrr. LinkSys has to be different from everyone else. */ - if (sc->aue_linksys) { + if (sc->aue_flags & LSYS) { aue_csr_write_1(sc, AUE_GPIO0, AUE_GPIO_SEL0 | AUE_GPIO_SEL1); aue_csr_write_1(sc, AUE_GPIO0, AUE_GPIO_SEL0 | AUE_GPIO_SEL1 | AUE_GPIO_OUT0); } + if (sc->aue_flags & PII) + aue_reset_pegasus_II(sc); + /* Wait a little while for the chip to get its brains in order. */ delay(10000); /* XXX */ } @@ -687,7 +747,7 @@ USB_ATTACH(aue) USB_ATTACH_ERROR_RETURN; } - sc->aue_linksys = aue_lookup(uaa->vendor, uaa->product)->aue_linksys; + sc->aue_flags = aue_lookup(uaa->vendor, uaa->product)->aue_flags; sc->aue_udev = dev; sc->aue_iface = iface; @@ -751,9 +811,10 @@ USB_ATTACH(aue) ifp->if_ioctl = aue_ioctl; ifp->if_start = aue_start; ifp->if_watchdog = aue_watchdog; - IFQ_SET_READY(&ifp->if_snd); strncpy(ifp->if_xname, USBDEVNAME(sc->aue_dev), IFNAMSIZ); + IFQ_SET_READY(&ifp->if_snd); + /* Initialize MII/media info. */ mii = &sc->aue_mii; mii->mii_ifp = ifp; @@ -796,6 +857,11 @@ USB_DETACH(aue) DPRINTFN(2,("%s: %s: enter\n", USBDEVNAME(sc->aue_dev), __FUNCTION__)); + if (!sc->aue_attached) { + /* Detached before attached finished, so just bail out. */ + return (0); + } + usb_uncallout(sc->aue_stat_ch, aue_tick, sc); /* * Remove any pending tasks. They cannot be executing because they run @@ -806,12 +872,6 @@ USB_DETACH(aue) s = splusb(); - if (!sc->aue_attached) { - /* Detached before attached finished, so just bail out. */ - splx(s); - return (0); - } - if (ifp->if_flags & IFF_RUNNING) aue_stop(sc); @@ -987,7 +1047,7 @@ aue_intr(usbd_xfer_handle xfer, usbd_private_handle priv, usbd_status status) sc->aue_intr_errs++; if (usbd_ratecheck(&sc->aue_rx_notice)) { printf("%s: %u usb errors on intr: %s\n", - USBDEVNAME(sc->aue_dev), sc->aue_rx_errs, + USBDEVNAME(sc->aue_dev), sc->aue_intr_errs, usbd_errstr(status)); sc->aue_intr_errs = 0; } @@ -1193,7 +1253,7 @@ aue_tick_task(void *xsc) mii_tick(mii); if (!sc->aue_link) { - mii_pollstat(mii); + mii_pollstat(mii); /* XXX FreeBSD has removed this call */ if (mii->mii_media_status & IFM_ACTIVE && IFM_SUBTYPE(mii->mii_media_active) != IFM_NONE) { DPRINTFN(2,("%s: %s: got link\n", diff --git a/sys/dev/usb/if_auereg.h b/sys/dev/usb/if_auereg.h index 9b1b146df0c..67ae289bbfd 100644 --- a/sys/dev/usb/if_auereg.h +++ b/sys/dev/usb/if_auereg.h @@ -1,5 +1,5 @@ -/* $OpenBSD: if_auereg.h,v 1.4 2001/05/03 02:20:32 aaron Exp $ */ -/* $NetBSD: if_auereg.h,v 1.12 2000/04/04 20:16:19 augustss Exp $ */ +/* $OpenBSD: if_auereg.h,v 1.5 2001/10/31 04:24:44 nate Exp $ */ +/* $NetBSD: if_auereg.h,v 1.16 2001/10/10 02:14:17 augustss Exp $ */ /* * Copyright (c) 1997, 1998, 1999 * Bill Paul <wpaul@ee.columbia.edu>. All rights reserved. @@ -94,6 +94,7 @@ #define AUE_PAUSE AUE_PAUSE0 #define AUE_RX_FLOWCTL_CNT 0x1A #define AUE_RX_FLOWCTL_FIFO 0x1B +#define AUE_REG_1D 0x1D #define AUE_EE_REG 0x20 #define AUE_EE_DATA0 0x21 #define AUE_EE_DATA1 0x22 @@ -113,8 +114,10 @@ #define AUE_PKTLOST1 0x2F #define AUE_PKTLOST AUE_PKTLOST0 +#define AUE_REG_7B 0x7B #define AUE_GPIO0 0x7E #define AUE_GPIO1 0x7F +#define AUE_REG_81 0x81 #define AUE_CTL0_INCLUDE_RXCRC 0x01 #define AUE_CTL0_ALLMULTI 0x02 @@ -259,7 +262,7 @@ struct aue_softc { int aue_if_flags; struct aue_cdata aue_cdata; - char aue_linksys; + u_int16_t aue_flags; char aue_dying; char aue_attached; @@ -271,6 +274,7 @@ struct aue_softc { struct usb_task aue_stop_task; struct lock aue_mii_lock; + }; #define AUE_TIMEOUT 1000 diff --git a/sys/dev/usb/if_cue.c b/sys/dev/usb/if_cue.c index a391626dfb7..1f54b649501 100644 --- a/sys/dev/usb/if_cue.c +++ b/sys/dev/usb/if_cue.c @@ -1,5 +1,5 @@ -/* $OpenBSD: if_cue.c,v 1.10 2001/07/08 23:38:08 fgsch Exp $ */ -/* $NetBSD: if_cue.c,v 1.34 2001/04/12 23:54:56 augustss Exp $ */ +/* $OpenBSD: if_cue.c,v 1.11 2001/10/31 04:24:44 nate Exp $ */ +/* $NetBSD: if_cue.c,v 1.35 2001/04/13 23:30:09 thorpej Exp $ */ /* * Copyright (c) 1997, 1998, 1999, 2000 * Bill Paul <wpaul@ee.columbia.edu>. All rights reserved. @@ -577,9 +577,10 @@ USB_ATTACH(cue) ifp->if_ioctl = cue_ioctl; ifp->if_start = cue_start; ifp->if_watchdog = cue_watchdog; - IFQ_SET_READY(&ifp->if_snd); strncpy(ifp->if_xname, USBDEVNAME(sc->cue_dev), IFNAMSIZ); + IFQ_SET_READY(&ifp->if_snd); + /* Attach the interface. */ if_attach(ifp); Ether_ifattach(ifp, eaddr); diff --git a/sys/dev/usb/if_cuereg.h b/sys/dev/usb/if_cuereg.h index 5b6a7bc77e2..997d3101fe5 100644 --- a/sys/dev/usb/if_cuereg.h +++ b/sys/dev/usb/if_cuereg.h @@ -1,5 +1,5 @@ -/* $OpenBSD: if_cuereg.h,v 1.4 2001/05/03 02:20:32 aaron Exp $ */ -/* $NetBSD: if_cuereg.h,v 1.11 2000/04/08 20:54:38 augustss Exp $ */ +/* $OpenBSD: if_cuereg.h,v 1.5 2001/10/31 04:24:44 nate Exp $ */ +/* $NetBSD: if_cuereg.h,v 1.14 2001/01/21 22:09:24 augustss Exp $ */ /* * Copyright (c) 1997, 1998, 1999, 2000 * Bill Paul <wpaul@ee.columbia.edu>. All rights reserved. diff --git a/sys/dev/usb/if_kue.c b/sys/dev/usb/if_kue.c index e9d835f31ec..598bab80af9 100644 --- a/sys/dev/usb/if_kue.c +++ b/sys/dev/usb/if_kue.c @@ -1,5 +1,5 @@ -/* $OpenBSD: if_kue.c,v 1.12 2001/07/08 23:38:08 fgsch Exp $ */ -/* $NetBSD: if_kue.c,v 1.40 2001/04/08 02:10:57 augustss Exp $ */ +/* $OpenBSD: if_kue.c,v 1.13 2001/10/31 04:24:44 nate Exp $ */ +/* $NetBSD: if_kue.c,v 1.43 2001/10/08 03:37:53 augustss Exp $ */ /* * Copyright (c) 1997, 1998, 1999, 2000 * Bill Paul <wpaul@ee.columbia.edu>. All rights reserved. @@ -150,23 +150,37 @@ int kuedebug = 0; * Various supported device vendors/products. */ Static const struct kue_type kue_devs[] = { - { USB_VENDOR_AOX, USB_PRODUCT_AOX_USB101 }, + { USB_VENDOR_3COM, USB_PRODUCT_3COM_3C19250 }, + { USB_VENDOR_3COM, USB_PRODUCT_3COM_3C460 }, + { USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_URE450 }, { USB_VENDOR_ADS, USB_PRODUCT_ADS_UBS10BT }, + { USB_VENDOR_ADS, USB_PRODUCT_ADS_UBS10BTX }, + { USB_VENDOR_AOX, USB_PRODUCT_AOX_USB101 }, + { USB_VENDOR_ASANTE, USB_PRODUCT_ASANTE_EA }, { USB_VENDOR_ATEN, USB_PRODUCT_ATEN_UC10T }, + { USB_VENDOR_ATEN, USB_PRODUCT_ATEN_DSB650C }, + { USB_VENDOR_COREGA, USB_PRODUCT_COREGA_ETHER_USB_T }, + { USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650C }, + { USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_E45 }, + { USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_XX1 }, + { USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_XX2 }, + { USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBETT }, + { USB_VENDOR_JATON, USB_PRODUCT_JATON_EDA }, + { USB_VENDOR_KINGSTON, USB_PRODUCT_KINGSTON_XX1 }, + { USB_VENDOR_KLSI, USB_PRODUCT_KLSI_DUH3E10BT }, + { USB_VENDOR_KLSI, USB_PRODUCT_KLSI_DUH3E10BTN }, + { USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10T }, + { USB_VENDOR_MOBILITY, USB_PRODUCT_MOBILITY_EA }, { USB_VENDOR_NETGEAR, USB_PRODUCT_NETGEAR_EA101 }, + { USB_VENDOR_NETGEAR, USB_PRODUCT_NETGEAR_EA101X }, { USB_VENDOR_PERACOM, USB_PRODUCT_PERACOM_ENET }, { USB_VENDOR_PERACOM, USB_PRODUCT_PERACOM_ENET2 }, { USB_VENDOR_PERACOM, USB_PRODUCT_PERACOM_ENET3 }, - { USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_E45 }, - { USB_VENDOR_3COM, USB_PRODUCT_3COM_3C19250 }, - { USB_VENDOR_3COM, USB_PRODUCT_3COM_3C460 }, - { USB_VENDOR_COREGA, USB_PRODUCT_COREGA_ETHER_USB_T }, - { USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650C }, + { USB_VENDOR_PORTGEAR, USB_PRODUCT_PORTGEAR_EA8 }, + { USB_VENDOR_PORTGEAR, USB_PRODUCT_PORTGEAR_EA9 }, + { USB_VENDOR_PORTSMITH, USB_PRODUCT_PORTSMITH_EEA }, + { USB_VENDOR_SHARK, USB_PRODUCT_SHARK_PA }, { USB_VENDOR_SMC, USB_PRODUCT_SMC_2102USB }, - { USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10T }, - { USB_VENDOR_KLSI, USB_PRODUCT_KLSI_DUH3E10BT }, - { USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBETT }, - { USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_URE450 }, { 0, 0 } }; @@ -518,9 +532,10 @@ USB_ATTACH(kue) ifp->if_ioctl = kue_ioctl; ifp->if_start = kue_start; ifp->if_watchdog = kue_watchdog; - IFQ_SET_READY(&ifp->if_snd); strncpy(ifp->if_xname, USBDEVNAME(sc->kue_dev), IFNAMSIZ); + IFQ_SET_READY(&ifp->if_snd); + /* Attach the interface. */ if_attach(ifp); Ether_ifattach(ifp, sc->kue_desc.kue_macaddr); diff --git a/sys/dev/usb/if_kuereg.h b/sys/dev/usb/if_kuereg.h index 8e9f2b8d7b9..eb3cf15b913 100644 --- a/sys/dev/usb/if_kuereg.h +++ b/sys/dev/usb/if_kuereg.h @@ -1,5 +1,5 @@ -/* $OpenBSD: if_kuereg.h,v 1.3 2001/05/03 02:20:32 aaron Exp $ */ -/* $NetBSD: if_kuereg.h,v 1.9 2000/03/24 22:13:24 augustss Exp $ */ +/* $OpenBSD: if_kuereg.h,v 1.4 2001/10/31 04:24:44 nate Exp $ */ +/* $NetBSD: if_kuereg.h,v 1.11 2001/01/21 02:35:31 augustss Exp $ */ /* * Copyright (c) 1997, 1998, 1999, 2000 * Bill Paul <wpaul@ee.columbia.edu>. All rights reserved. diff --git a/sys/dev/usb/if_upl.c b/sys/dev/usb/if_upl.c index fa5fa95f72a..0ae2682699c 100644 --- a/sys/dev/usb/if_upl.c +++ b/sys/dev/usb/if_upl.c @@ -1,5 +1,5 @@ -/* $OpenBSD: if_upl.c,v 1.3 2001/06/15 03:38:35 itojun Exp $ */ -/* $NetBSD: if_upl.c,v 1.10 2000/12/08 02:24:07 augustss Exp $ */ +/* $OpenBSD: if_upl.c,v 1.4 2001/10/31 04:24:44 nate Exp $ */ +/* $NetBSD: if_upl.c,v 1.15 2001/06/14 05:44:27 itojun Exp $ */ /* * Copyright (c) 2000 The NetBSD Foundation, Inc. * All rights reserved. @@ -317,7 +317,7 @@ USB_ATTACH(upl) USB_ATTACH_ERROR_RETURN; } - s = splimp(); + s = splnet(); /* Initialize interface info.*/ ifp = &sc->sc_if; @@ -343,7 +343,7 @@ USB_ATTACH(upl) #if NBPFILTER > 0 #if defined(__NetBSD__) || defined(__FreeBSD__) - bpfattach(ifp, DLT_EN10MB, 0); + bpfattach(ifp, DLT_RAW, 0); #endif #endif #if NRND > 0 @@ -572,7 +572,7 @@ upl_rxeof(usbd_xfer_handle xfer, usbd_private_handle priv, usbd_status status) m->m_pkthdr.rcvif = ifp; - s = splimp(); + s = splnet(); /* XXX ugly */ if (upl_newbuf(sc, c, NULL) == ENOBUFS) { @@ -632,7 +632,7 @@ upl_txeof(usbd_xfer_handle xfer, usbd_private_handle priv, usbd_status status) if (sc->sc_dying) return; - s = splimp(); + s = splnet(); DPRINTFN(10,("%s: %s: enter status=%d\n", USBDEVNAME(sc->sc_dev), __FUNCTION__, status)); @@ -760,7 +760,7 @@ upl_init(void *xsc) if (ifp->if_flags & IFF_RUNNING) return; - s = splimp(); + s = splnet(); /* Init TX ring. */ if (upl_tx_list_init(sc) == ENOBUFS) { @@ -892,7 +892,7 @@ upl_ioctl(struct ifnet *ifp, u_long command, caddr_t data) DPRINTFN(5,("%s: %s: cmd=0x%08lx\n", USBDEVNAME(sc->sc_dev), __FUNCTION__, command)); - s = splimp(); + s = splnet(); switch(command) { case SIOCSIFADDR: @@ -1065,7 +1065,7 @@ upl_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst, USBDEVNAME(((struct upl_softc *)ifp->if_softc)->sc_dev), __FUNCTION__)); - s = splimp(); + s = splnet(); /* * Queue message on interface, and start output if interface * not yet active. @@ -1095,7 +1095,7 @@ upl_input(struct ifnet *ifp, struct mbuf *m) schednetisr(NETISR_IP); inq = &ipintrq; - s = splimp(); + s = splnet(); if (IF_QFULL(inq)) { IF_DROP(inq); splx(s); diff --git a/sys/dev/usb/kue_fw.h b/sys/dev/usb/kue_fw.h index 78e6bbfccb8..133f8fa9fbd 100644 --- a/sys/dev/usb/kue_fw.h +++ b/sys/dev/usb/kue_fw.h @@ -1,5 +1,5 @@ -/* $OpenBSD: kue_fw.h,v 1.4 2001/01/28 09:43:41 aaron Exp $ */ -/* $NetBSD: kue_fw.h,v 1.2 2000/03/27 12:33:54 augustss Exp $ */ +/* $OpenBSD: kue_fw.h,v 1.5 2001/10/31 04:24:44 nate Exp $ */ +/* $NetBSD: kue_fw.h,v 1.3 2001/01/19 08:54:21 jdolecek Exp $ */ /* * Copyright (c) 1997, 1998, 1999, 2000 * Bill Paul <wpaul@ee.columbia.edu>. All rights reserved. diff --git a/sys/dev/usb/ohci.c b/sys/dev/usb/ohci.c index 23d05571eba..f2d19236faf 100644 --- a/sys/dev/usb/ohci.c +++ b/sys/dev/usb/ohci.c @@ -1,5 +1,5 @@ -/* $OpenBSD: ohci.c,v 1.23 2001/09/15 20:57:33 drahn Exp $ */ -/* $NetBSD: ohci.c,v 1.102 2001/04/01 15:00:29 augustss Exp $ */ +/* $OpenBSD: ohci.c,v 1.24 2001/10/31 04:24:44 nate Exp $ */ +/* $NetBSD: ohci.c,v 1.104 2001/09/28 23:57:21 augustss Exp $ */ /* $FreeBSD: src/sys/dev/usb/ohci.c,v 1.22 1999/11/17 22:33:40 n_hibma Exp $ */ /* @@ -138,7 +138,7 @@ Static void ohci_shutdown(void *v); Static void ohci_power(int, void *); Static usbd_status ohci_open(usbd_pipe_handle); Static void ohci_poll(struct usbd_bus *); -Static void ohci_softintr(struct usbd_bus *); +Static void ohci_softintr(void *); Static void ohci_waitintr(ohci_softc_t *, usbd_xfer_handle); Static void ohci_add_done(ohci_softc_t *, ohci_physaddr_t); Static void ohci_rhsc(ohci_softc_t *, usbd_xfer_handle); @@ -651,9 +651,8 @@ ohci_init(ohci_softc_t *sc) printf("%s:", USBDEVNAME(sc->sc_bus.bdev)); #endif rev = OREAD4(sc, OHCI_REVISION); - printf(" OHCI version %d.%d%s", OHCI_REV_HI(rev), OHCI_REV_LO(rev), + printf(" OHCI version %d.%d%s\n", OHCI_REV_HI(rev), OHCI_REV_LO(rev), OHCI_REV_LEGACY(rev) ? ", legacy support" : ""); - printf("\n"); if (OHCI_REV_HI(rev) != 1 || OHCI_REV_LO(rev) != 0) { printf("%s: unsupported OHCI revision\n", @@ -760,6 +759,8 @@ ohci_init(ohci_softc_t *sc) OWRITE4(sc, OHCI_CONTROL, OHCI_HCFS_RESET); goto reset; } +#if 0 +/* Don't bother trying to reuse the BIOS init, we'll reset it anyway. */ } else if ((ctl & OHCI_HCFS_MASK) != OHCI_HCFS_RESET) { /* BIOS started controller. */ DPRINTF(("ohci_init: BIOS active\n")); @@ -767,6 +768,7 @@ ohci_init(ohci_softc_t *sc) OWRITE4(sc, OHCI_CONTROL, OHCI_HCFS_OPERATIONAL); usb_delay_ms(&sc->sc_bus, USB_RESUME_DELAY); } +#endif } else { DPRINTF(("ohci_init: cold started\n")); reset: @@ -1151,13 +1153,6 @@ ohci_intr1(ohci_softc_t *sc) } void -ohci_rhsc_enable(void *v_sc) -{ - ohci_softc_t *sc = v_sc; - ohci_rhsc_able(sc, 1); -} - -void ohci_rhsc_able(ohci_softc_t *sc, int on) { DPRINTFN(4, ("ohci_rhsc_able: on=%d\n", on)); @@ -1170,6 +1165,14 @@ ohci_rhsc_able(ohci_softc_t *sc, int on) } } +void +ohci_rhsc_enable(void *v_sc) +{ + ohci_softc_t *sc = v_sc; + + ohci_rhsc_able(sc, 1); +} + #ifdef OHCI_DEBUG char *ohci_cc_strs[] = { "NO_ERROR", @@ -1229,9 +1232,9 @@ ohci_add_done(ohci_softc_t *sc, ohci_physaddr_t done) } void -ohci_softintr(struct usbd_bus *bus) +ohci_softintr(void *v) { - ohci_softc_t *sc = (ohci_softc_t *)bus; + ohci_softc_t *sc = v; ohci_soft_itd_t *sitd, *sidone, *sitdnext; ohci_soft_td_t *std, *sdone, *stdnext; usbd_xfer_handle xfer; @@ -2078,8 +2081,8 @@ ohci_abort_xfer_end(void *v) p = xfer->hcpriv; #ifdef DIAGNOSTIC if (p == NULL) { - printf("ohci_abort_xfer: hcpriv==0\n"); splx(s); + printf("ohci_abort_xfer: hcpriv==0\n"); return; } #endif diff --git a/sys/dev/usb/ohcivar.h b/sys/dev/usb/ohcivar.h index a8795edbd24..f1ff5a6946e 100644 --- a/sys/dev/usb/ohcivar.h +++ b/sys/dev/usb/ohcivar.h @@ -1,5 +1,5 @@ -/* $OpenBSD: ohcivar.h,v 1.13 2001/09/15 20:57:33 drahn Exp $ */ -/* $NetBSD: ohcivar.h,v 1.27 2001/02/21 10:19:30 minoura Exp $ */ +/* $OpenBSD: ohcivar.h,v 1.14 2001/10/31 04:24:44 nate Exp $ */ +/* $NetBSD: ohcivar.h,v 1.28 2001/09/28 23:57:21 augustss Exp $ */ /* $FreeBSD: src/sys/dev/usb/ohcivar.h,v 1.13 1999/11/17 22:33:41 n_hibma Exp $ */ /* @@ -131,11 +131,10 @@ typedef struct ohci_softc { u_int sc_overrun_cnt; struct timeval sc_overrun_ntc; + usb_callout_t sc_tmo_rhsc; + device_ptr_t sc_child; -#if defined(__OpenBSD__) - struct timeout sc_tmo_rhsc; -#endif char sc_dying; } ohci_softc_t; diff --git a/sys/dev/usb/uaudio.c b/sys/dev/usb/uaudio.c index c7e5dc36e56..2baa27c7cad 100644 --- a/sys/dev/usb/uaudio.c +++ b/sys/dev/usb/uaudio.c @@ -1,5 +1,5 @@ -/* $OpenBSD: uaudio.c,v 1.10 2001/09/17 20:30:25 drahn Exp $ */ -/* $NetBSD: uaudio.c,v 1.41 2001/01/23 14:04:13 augustss Exp $ */ +/* $OpenBSD: uaudio.c,v 1.11 2001/10/31 04:24:44 nate Exp $ */ +/* $NetBSD: uaudio.c,v 1.43 2001/10/03 00:04:53 augustss Exp $ */ /* * Copyright (c) 1999 The NetBSD Foundation, Inc. @@ -52,7 +52,7 @@ #include <sys/ioctl.h> #include <sys/tty.h> #include <sys/file.h> -#include <sys/reboot.h> +#include <sys/reboot.h> /* for bootverbose */ #include <sys/select.h> #include <sys/proc.h> #include <sys/vnode.h> @@ -540,17 +540,16 @@ void uaudio_mixer_add_ctl(struct uaudio_softc *sc, struct mixerctl *mc) { int res; - - if (sc->sc_nctls == 0) - sc->sc_ctls = malloc(sizeof *mc, M_USBDEV, M_NOWAIT); - else - sc->sc_ctls = realloc(sc->sc_ctls, - (sc->sc_nctls+1) * sizeof *mc, - M_USBDEV, M_NOWAIT); - if (sc->sc_ctls == NULL) { + size_t len = sizeof(*mc) * (sc->sc_nctls + 1); + struct mixerctl *nmc = sc->sc_nctls == 0 ? + malloc(len, M_USBDEV, M_NOWAIT) : + realloc(sc->sc_ctls, len, M_USBDEV, M_NOWAIT); + + if (nmc == NULL) { printf("uaudio_mixer_add_ctl: no memory\n"); return; } + sc->sc_ctls = nmc; mc->delta = 0; if (mc->type != MIX_ON_OFF) { @@ -1021,16 +1020,17 @@ uaudio_identify(struct uaudio_softc *sc, usb_config_descriptor_t *cdesc) void uaudio_add_alt(struct uaudio_softc *sc, struct as_info *ai) { - if (sc->sc_nalts == 0) - sc->sc_alts = malloc(sizeof *ai, M_USBDEV, M_NOWAIT); - else - sc->sc_alts = realloc(sc->sc_alts, - (sc->sc_nalts+1) * sizeof *ai, - M_USBDEV, M_NOWAIT); - if (sc->sc_alts == NULL) { + size_t len = sizeof(*ai) * (sc->sc_nalts + 1); + struct as_info *nai = sc->sc_nalts == 0 ? + malloc(len, M_USBDEV, M_NOWAIT) : + realloc(sc->sc_alts, len, M_USBDEV, M_NOWAIT); + + if (nai == NULL) { printf("uaudio_add_alt: no memory\n"); return; } + + sc->sc_alts = nai; DPRINTFN(2,("uaudio_add_alt: adding alt=%d, enc=%d\n", ai->alt, ai->encoding)); sc->sc_alts[sc->sc_nalts++] = *ai; diff --git a/sys/dev/usb/ucom.c b/sys/dev/usb/ucom.c index cb1c97c7d74..4145bc2242e 100644 --- a/sys/dev/usb/ucom.c +++ b/sys/dev/usb/ucom.c @@ -1,5 +1,5 @@ -/* $OpenBSD: ucom.c,v 1.8 2001/05/03 02:20:33 aaron Exp $ */ -/* $NetBSD: ucom.c,v 1.37 2001/04/02 13:18:31 augustss Exp $ */ +/* $OpenBSD: ucom.c,v 1.9 2001/10/31 04:24:44 nate Exp $ */ +/* $NetBSD: ucom.c,v 1.39 2001/08/16 22:31:24 augustss Exp $ */ /* * Copyright (c) 1998, 2000 The NetBSD Foundation, Inc. @@ -53,6 +53,12 @@ #include <sys/vnode.h> #include <sys/device.h> #include <sys/poll.h> +#if defined(__NetBSD__) +#include "rnd.h" +#if NRND > 0 +#include <sys/rnd.h> +#endif +#endif #include <dev/usb/usb.h> @@ -127,6 +133,10 @@ struct ucom_softc { u_char sc_opening; /* lock during open */ int sc_refcnt; u_char sc_dying; /* disconnecting */ + +#if defined(__NetBSD__) && NRND > 0 + rndsource_element_t sc_rndsource; /* random source */ +#endif }; cdev_decl(ucom); @@ -186,6 +196,11 @@ USB_ATTACH(ucom) DPRINTF(("ucom_attach: tty_attach %p\n", tp)); tty_attach(tp); +#if defined(__NetBSD__) && NRND > 0 + rnd_attach_source(&sc->sc_rndsource, USBDEVNAME(sc->sc_dev), + RND_TYPE_TTY, 0); +#endif + USB_ATTACH_SUCCESS_RETURN; } @@ -238,6 +253,11 @@ USB_DETACH(ucom) sc->sc_tty = NULL; } + /* Detach the random source */ +#if defined(__NetBSD__) && NRND > 0 + rnd_detach_source(&sc->sc_rndsource); +#endif + return (0); } @@ -554,6 +574,28 @@ ucomwrite(dev_t dev, struct uio *uio, int flag) return (error); } +#if 0 +int +ucompoll(dev, events, p) + dev_t dev; + int events; + struct proc *p; +{ + struct ucom_softc *sc = ucom_cd.cd_devs[UCOMUNIT(dev)]; + struct tty *tp = sc->sc_tty; + int error; + + if (sc->sc_dying) + return (EIO); + + sc->sc_refcnt++; + error = ((*linesw[tp->t_line].l_poll)(tp, events, p)); + if (--sc->sc_refcnt < 0) + usb_detach_wakeup(USBDEV(sc->sc_dev)); + return (error); +} +#endif + struct tty * ucomtty(dev_t dev) { @@ -968,13 +1010,13 @@ ucomwritecb(usbd_xfer_handle xfer, usbd_private_handle p, usbd_status status) DPRINTFN(5,("ucomwritecb: status=%d\n", status)); if (status == USBD_CANCELLED || sc->sc_dying) - return; + goto error; if (status) { DPRINTF(("ucomwritecb: status=%d\n", status)); usbd_clear_endpoint_stall_async(sc->sc_bulkin_pipe); /* XXX we should restart after some delay. */ - return; + goto error; } usbd_get_xfer_status(xfer, NULL, NULL, &cc, NULL); @@ -993,6 +1035,12 @@ ucomwritecb(usbd_xfer_handle xfer, usbd_private_handle p, usbd_status status) ndflush(&tp->t_outq, cc); (*linesw[tp->t_line].l_start)(tp); splx(s); + return; + +error: + s = spltty(); + CLR(tp->t_state, TS_BUSY); + splx(s); } Static usbd_status @@ -1035,7 +1083,7 @@ ucomreadcb(usbd_xfer_handle xfer, usbd_private_handle p, usbd_status status) (*rint)('\n', tp); ttwakeup(tp); splx(s); - return; + return; } if (status) { diff --git a/sys/dev/usb/ucomvar.h b/sys/dev/usb/ucomvar.h index faa9719764b..4003c388ef2 100644 --- a/sys/dev/usb/ucomvar.h +++ b/sys/dev/usb/ucomvar.h @@ -1,5 +1,5 @@ -/* $OpenBSD: ucomvar.h,v 1.6 2001/05/03 02:20:33 aaron Exp $ */ -/* $NetBSD: ucomvar.h,v 1.8 2000/09/03 19:15:45 augustss Exp $ */ +/* $OpenBSD: ucomvar.h,v 1.7 2001/10/31 04:24:44 nate Exp $ */ +/* $NetBSD: ucomvar.h,v 1.9 2001/01/23 21:56:17 augustss Exp $ */ /* * Copyright (c) 1999 The NetBSD Foundation, Inc. diff --git a/sys/dev/usb/uftdireg.h b/sys/dev/usb/uftdireg.h index ef9fc619ce3..08019addafb 100644 --- a/sys/dev/usb/uftdireg.h +++ b/sys/dev/usb/uftdireg.h @@ -1,4 +1,6 @@ -/* $OpenBSD: uftdireg.h,v 1.2 2001/02/20 04:15:29 nate Exp $ */ +/* $OpenBSD: uftdireg.h,v 1.3 2001/10/31 04:24:44 nate Exp $ */ +/* $NetBSD: uftdireg.h,v 1.3 2001/06/12 14:59:28 wiz Exp $ */ + /* * Definitions for the FTDI USB Single Port Serial Converter - * known as FTDI_SIO (Serial Input/Output application of the chipset) @@ -260,7 +262,7 @@ enum { * 1 = active * * FTDI_SIO_GET_MODEM_STATUS - * Retreive the current value of the modem status register. + * Retrieve the current value of the modem status register. */ #define FTDI_SIO_CTS_MASK 0x10 #define FTDI_SIO_DSR_MASK 0x20 diff --git a/sys/dev/usb/ugen.c b/sys/dev/usb/ugen.c index e871785986c..0d5b04d8195 100644 --- a/sys/dev/usb/ugen.c +++ b/sys/dev/usb/ugen.c @@ -1,5 +1,5 @@ -/* $OpenBSD: ugen.c,v 1.16 2001/09/20 17:02:31 mpech Exp $ */ -/* $NetBSD: ugen.c,v 1.45 2000/12/13 04:05:14 augustss Exp $ */ +/* $OpenBSD: ugen.c,v 1.17 2001/10/31 04:24:44 nate Exp $ */ +/* $NetBSD: ugen.c,v 1.49 2001/10/24 22:31:04 augustss Exp $ */ /* $FreeBSD: src/sys/dev/usb/ugen.c,v 1.26 1999/11/17 22:33:41 n_hibma Exp $ */ /* @@ -174,6 +174,10 @@ USB_MATCH(ugen) { USB_MATCH_START(ugen, uaa); +#if 0 + if (uaa->matchlvl) + return (uaa->matchlvl); +#endif if (uaa->usegeneric) return (UMATCH_GENERIC); else @@ -517,7 +521,7 @@ ugen_do_read(struct ugen_softc *sc, int endpt, struct uio *uio, int flag) return (EWOULDBLOCK); } sce->state |= UGEN_ASLP; - DPRINTFN(5, ("ugenread: sleep on %p\n", sc)); + DPRINTFN(5, ("ugenread: sleep on %p\n", sce)); error = tsleep(sce, PZERO | PCATCH, "ugenri", 0); DPRINTFN(5, ("ugenread: woke, error=%d\n", error)); if (sc->sc_dying) @@ -581,7 +585,7 @@ ugen_do_read(struct ugen_softc *sc, int endpt, struct uio *uio, int flag) return (EWOULDBLOCK); } sce->state |= UGEN_ASLP; - DPRINTFN(5, ("ugenread: sleep on %p\n", sc)); + DPRINTFN(5, ("ugenread: sleep on %p\n", sce)); error = tsleep(sce, PZERO | PCATCH, "ugenri", 0); DPRINTFN(5, ("ugenread: woke, error=%d\n", error)); if (sc->sc_dying) @@ -823,6 +827,7 @@ ugen_isoc_rintr(usbd_xfer_handle xfer, usbd_private_handle addr, struct isoreq *req = addr; struct ugen_endpoint *sce = req->sce; u_int32_t count, n; + int i, isize; /* Return if we are aborting. */ if (status == USBD_CANCELLED) @@ -841,15 +846,25 @@ ugen_isoc_rintr(usbd_xfer_handle xfer, usbd_private_handle addr, count)); } - /* copy data to buffer */ - while (count > 0) { - n = min(count, sce->limit - sce->fill); - memcpy(sce->fill, req->dmabuf, n); + isize = UGETW(sce->edesc->wMaxPacketSize); + for (i = 0; i < UGEN_NISORFRMS; i++) { + u_int32_t actlen = req->sizes[i]; + char const *buf = (char const *)req->dmabuf + isize * i; + + /* copy data to buffer */ + while (actlen > 0) { + n = min(actlen, sce->limit - sce->fill); + memcpy(sce->fill, buf, n); + + buf += n; + actlen -= n; + sce->fill += n; + if(sce->fill == sce->limit) + sce->fill = sce->ibuf; + } - count -= n; - sce->fill += n; - if(sce->fill == sce->limit) - sce->fill = sce->ibuf; + /* setup size for next transfer */ + req->sizes[i] = isize; } usbd_setup_isoc_xfer(xfer, sce->pipeh, req, req->sizes, UGEN_NISORFRMS, diff --git a/sys/dev/usb/ugraphire_rdesc.h b/sys/dev/usb/ugraphire_rdesc.h index 5942419415b..a5611410995 100644 --- a/sys/dev/usb/ugraphire_rdesc.h +++ b/sys/dev/usb/ugraphire_rdesc.h @@ -1,5 +1,5 @@ -/* $OpenBSD: ugraphire_rdesc.h,v 1.1 2001/01/28 09:43:41 aaron Exp $ */ -/* $NetBSD: $ */ +/* $OpenBSD: ugraphire_rdesc.h,v 1.2 2001/10/31 04:24:44 nate Exp $ */ +/* $NetBSD: ugraphire_rdesc.h,v 1.1 2000/12/29 01:47:49 augustss Exp $ */ /* * Copyright (c) 2000 Nick Hibma <n_hibma@freebsd.org> * All rights reserved. diff --git a/sys/dev/usb/uhci.c b/sys/dev/usb/uhci.c index 337fbf4aa9b..50f06ec2dbb 100644 --- a/sys/dev/usb/uhci.c +++ b/sys/dev/usb/uhci.c @@ -1,5 +1,5 @@ -/* $OpenBSD: uhci.c,v 1.21 2001/06/12 19:11:58 mickey Exp $ */ -/* $NetBSD: uhci.c,v 1.135 2001/04/01 14:59:52 augustss Exp $ */ +/* $OpenBSD: uhci.c,v 1.22 2001/10/31 04:24:44 nate Exp $ */ +/* $NetBSD: uhci.c,v 1.142 2001/10/25 02:08:13 augustss Exp $ */ /* $FreeBSD: src/sys/dev/usb/uhci.c,v 1.33 1999/11/17 22:33:41 n_hibma Exp $ */ /* @@ -159,9 +159,11 @@ struct uhci_pipe { } u; }; -Static void uhci_busreset(uhci_softc_t *); +Static void uhci_globalreset(uhci_softc_t *); +Static void uhci_reset(uhci_softc_t *); Static void uhci_shutdown(void *v); Static void uhci_power(int, void *); +Static usbd_status uhci_run(uhci_softc_t *, int run); Static uhci_soft_td_t *uhci_alloc_std(uhci_softc_t *); Static void uhci_free_std(uhci_softc_t *, uhci_soft_td_t *); Static uhci_soft_qh_t *uhci_alloc_sqh(uhci_softc_t *); @@ -242,7 +244,7 @@ Static void uhci_root_intr_done(usbd_xfer_handle); Static usbd_status uhci_open(usbd_pipe_handle); Static void uhci_poll(struct usbd_bus *); -Static void uhci_softintr(struct usbd_bus *); +Static void uhci_softintr(void *); Static usbd_status uhci_device_request(usbd_xfer_handle xfer); @@ -283,7 +285,7 @@ void uhci_dump(void); #define UHCICMD(sc, cmd) UWRITE2(sc, UHCI_CMD, cmd) #define UHCISTS(sc) UREAD2(sc, UHCI_STS) -#define UHCI_RESET_TIMEOUT 100 /* reset timeout */ +#define UHCI_RESET_TIMEOUT 100 /* ms, reset timeout */ #define UHCI_CURFRAME(sc) (UREAD2(sc, UHCI_FRNUM) & UHCI_FRNUM_MASK) @@ -375,7 +377,7 @@ uhci_find_prev_qh(uhci_soft_qh_t *pqh, uhci_soft_qh_t *sqh) } void -uhci_busreset(uhci_softc_t *sc) +uhci_globalreset(uhci_softc_t *sc) { UHCICMD(sc, UHCI_CMD_GRESET); /* global reset */ usb_delay_ms(&sc->sc_bus, USB_BUS_RESET_DELAY); /* wait a little */ @@ -401,8 +403,8 @@ uhci_init(uhci_softc_t *sc) uhci_run(sc, 0); /* stop the controller */ UWRITE2(sc, UHCI_INTR, 0); /* disable interrupts */ - - uhci_busreset(sc); + uhci_globalreset(sc); /* reset the controller */ + uhci_reset(sc); /* Allocate and initialize real frame array. */ err = usb_allocmem(&sc->sc_bus, @@ -815,13 +817,11 @@ uhci_dump_qh(uhci_soft_qh_t *sqh) } -#if 1 void uhci_dump(void) { uhci_dump_all(thesc); } -#endif void uhci_dump_all(uhci_softc_t *sc) @@ -910,6 +910,16 @@ uhci_dump_ii(uhci_intr_info_t *ii) ii, DONE, ii->xfer); return; } + if (pipe->endpoint == NULL) { + printf("ii %p: done=%d xfer=%p pipe=%p pipe->endpoint=NULL\n", + ii, DONE, ii->xfer, pipe); + return; + } + if (pipe->device == NULL) { + printf("ii %p: done=%d xfer=%p pipe=%p pipe->device=NULL\n", + ii, DONE, ii->xfer, pipe); + return; + } ed = pipe->endpoint->edesc; dev = pipe->device; printf("ii %p: done=%d xfer=%p dev=%p vid=0x%04x pid=0x%04x addr=%d pipe=%p ep=0x%02x attr=0x%02x\n", @@ -1148,16 +1158,32 @@ uhci_remove_bulk(uhci_softc_t *sc, uhci_soft_qh_t *sqh) sc->sc_bulk_end = pqh; } +Static int uhci_intr1(uhci_softc_t *); + int uhci_intr(void *arg) { uhci_softc_t *sc = arg; + + DPRINTFN(15,("uhci_intr: real interrupt\n")); + if (sc->sc_bus.use_polling) { +#ifdef DIAGNOSTIC + printf("uhci_intr: ignored interrupt while polling\n"); +#endif + return (0); + } + return (uhci_intr1(sc)); +} + +int +uhci_intr1(uhci_softc_t *sc) +{ int status; int ack; #ifdef UHCI_DEBUG if (uhcidebug > 15) { - DPRINTF(("%s: uhci_intr\n", USBDEVNAME(sc->sc_bus.bdev))); + DPRINTF(("%s: uhci_intr1\n", USBDEVNAME(sc->sc_bus.bdev))); uhci_dumpregs(sc); } #endif @@ -1166,6 +1192,11 @@ uhci_intr(void *arg) if (status == 0) /* The interrupt was not for us. */ return (0); +#if defined(DIAGNOSTIC) && defined(__NetBSD__) + if (sc->sc_suspend != PWR_RESUME) + printf("uhci_intr: suspended sts=0x%x\n", status); +#endif + if (sc->sc_suspend != PWR_RESUME) { printf("%s: interrupt while not operating ignored\n", USBDEVNAME(sc->sc_bus.bdev)); @@ -1173,11 +1204,6 @@ uhci_intr(void *arg) return (0); } -#if defined(DIAGNOSTIC) && defined(__NetBSD__) - if (sc->sc_suspend != PWR_RESUME) - printf("uhci_intr: suspended sts=0x%x\n", status); -#endif - ack = 0; if (status & UHCI_STS_USBINT) ack |= UHCI_STS_USBINT; @@ -1200,14 +1226,14 @@ uhci_intr(void *arg) } if (status & UHCI_STS_HCH) { /* no acknowledge needed */ - if (!sc->sc_dying) + if (!sc->sc_dying) { printf("%s: host controller halted\n", USBDEVNAME(sc->sc_bus.bdev)); - sc->sc_dying = 1; #ifdef UHCI_DEBUG - uhci_dump_all(sc); + uhci_dump_all(sc); #endif - + } + sc->sc_dying = 1; } if (!ack) @@ -1223,12 +1249,13 @@ uhci_intr(void *arg) } void -uhci_softintr(struct usbd_bus *bus) +uhci_softintr(void *v) { - uhci_softc_t *sc = (uhci_softc_t *)bus; + uhci_softc_t *sc = v; uhci_intr_info_t *ii; - DPRINTFN(10,("%s: uhci_softintr\n", USBDEVNAME(sc->sc_bus.bdev))); + DPRINTFN(10,("%s: uhci_softintr (%d)\n", USBDEVNAME(sc->sc_bus.bdev), + sc->sc_bus.intr_context)); sc->sc_bus.intr_context++; @@ -1313,6 +1340,7 @@ uhci_idone(uhci_intr_info_t *ii) u_int32_t status = 0, nstatus; int actlen; + DPRINTFN(12, ("uhci_idone: ii=%p\n", ii)); #ifdef DIAGNOSTIC { int s = splhigh(); @@ -1365,8 +1393,7 @@ uhci_idone(uhci_intr_info_t *ii) upipe->u.iso.inuse -= nframes; xfer->actlen = actlen; xfer->status = USBD_NORMAL_COMPLETION; - usb_transfer_complete(xfer); - return; + goto end; } #ifdef UHCI_DEBUG @@ -1393,7 +1420,7 @@ uhci_idone(uhci_intr_info_t *ii) upipe->nexttoggle = UHCI_TD_GET_DT(le32toh(std->td.td_token)); status &= UHCI_TD_ERROR; - DPRINTFN(10, ("uhci_check_intr: actlen=%d, status=0x%x\n", + DPRINTFN(10, ("uhci_idone: actlen=%d, status=0x%x\n", actlen, status)); xfer->actlen = actlen; if (status != 0) { @@ -1419,7 +1446,10 @@ uhci_idone(uhci_intr_info_t *ii) } else { xfer->status = USBD_NORMAL_COMPLETION; } + + end: usb_transfer_complete(xfer); + DPRINTFN(12, ("uhci_idone: ii=%p done\n", ii)); } /* @@ -1461,7 +1491,7 @@ uhci_waitintr(uhci_softc_t *sc, usbd_xfer_handle xfer) usb_delay_ms(&sc->sc_bus, 1); DPRINTFN(20,("uhci_waitintr: 0x%04x\n", UREAD2(sc, UHCI_STS))); if (UREAD2(sc, UHCI_STS) & UHCI_STS_USBINT) { - uhci_intr(sc); + uhci_intr1(sc); if (xfer->status != USBD_IN_PROGRESS) return; } @@ -1486,10 +1516,9 @@ uhci_poll(struct usbd_bus *bus) uhci_softc_t *sc = (uhci_softc_t *)bus; if (UREAD2(sc, UHCI_STS) & UHCI_STS_USBINT) - uhci_intr(sc); + uhci_intr1(sc); } -#if 0 void uhci_reset(uhci_softc_t *sc) { @@ -1504,7 +1533,6 @@ uhci_reset(uhci_softc_t *sc) printf("%s: controller did not reset\n", USBDEVNAME(sc->sc_bus.bdev)); } -#endif usbd_status uhci_run(uhci_softc_t *sc, int run) @@ -3055,27 +3083,27 @@ uhci_root_ctrl_start(usbd_xfer_handle xfer) } switch(value) { case UHF_PORT_ENABLE: - x = UREAD2(sc, port); + x = URWMASK(UREAD2(sc, port)); UWRITE2(sc, port, x & ~UHCI_PORTSC_PE); break; case UHF_PORT_SUSPEND: - x = UREAD2(sc, port); + x = URWMASK(UREAD2(sc, port)); UWRITE2(sc, port, x & ~UHCI_PORTSC_SUSP); break; case UHF_PORT_RESET: - x = UREAD2(sc, port); + x = URWMASK(UREAD2(sc, port)); UWRITE2(sc, port, x & ~UHCI_PORTSC_PR); break; case UHF_C_PORT_CONNECTION: - x = UREAD2(sc, port); + x = URWMASK(UREAD2(sc, port)); UWRITE2(sc, port, x | UHCI_PORTSC_CSC); break; case UHF_C_PORT_ENABLE: - x = UREAD2(sc, port); + x = URWMASK(UREAD2(sc, port)); UWRITE2(sc, port, x | UHCI_PORTSC_POEDC); break; case UHF_C_PORT_OVER_CURRENT: - x = UREAD2(sc, port); + x = URWMASK(UREAD2(sc, port)); UWRITE2(sc, port, x | UHCI_PORTSC_OCIC); break; case UHF_C_PORT_RESET: @@ -3140,21 +3168,21 @@ uhci_root_ctrl_start(usbd_xfer_handle xfer) } x = UREAD2(sc, port); status = change = 0; - if (x & UHCI_PORTSC_CCS ) + if (x & UHCI_PORTSC_CCS) status |= UPS_CURRENT_CONNECT_STATUS; - if (x & UHCI_PORTSC_CSC ) + if (x & UHCI_PORTSC_CSC) change |= UPS_C_CONNECT_STATUS; - if (x & UHCI_PORTSC_PE ) + if (x & UHCI_PORTSC_PE) status |= UPS_PORT_ENABLED; if (x & UHCI_PORTSC_POEDC) change |= UPS_C_PORT_ENABLED; - if (x & UHCI_PORTSC_OCI ) + if (x & UHCI_PORTSC_OCI) status |= UPS_OVERCURRENT_INDICATOR; - if (x & UHCI_PORTSC_OCIC ) + if (x & UHCI_PORTSC_OCIC) change |= UPS_C_OVERCURRENT_INDICATOR; - if (x & UHCI_PORTSC_SUSP ) + if (x & UHCI_PORTSC_SUSP) status |= UPS_SUSPEND; - if (x & UHCI_PORTSC_LSDA ) + if (x & UHCI_PORTSC_LSDA) status |= UPS_LOW_SPEED; status |= UPS_PORT_POWER; if (sc->sc_isreset) @@ -3181,15 +3209,15 @@ uhci_root_ctrl_start(usbd_xfer_handle xfer) } switch(value) { case UHF_PORT_ENABLE: - x = UREAD2(sc, port); + x = URWMASK(UREAD2(sc, port)); UWRITE2(sc, port, x | UHCI_PORTSC_PE); break; case UHF_PORT_SUSPEND: - x = UREAD2(sc, port); + x = URWMASK(UREAD2(sc, port)); UWRITE2(sc, port, x | UHCI_PORTSC_SUSP); break; case UHF_PORT_RESET: - x = UREAD2(sc, port); + x = URWMASK(UREAD2(sc, port)); UWRITE2(sc, port, x | UHCI_PORTSC_PR); usb_delay_ms(&sc->sc_bus, 50); /*XXX USB v1.1 7.1.7.3 */ UWRITE2(sc, port, x & ~UHCI_PORTSC_PR); diff --git a/sys/dev/usb/uhcireg.h b/sys/dev/usb/uhcireg.h index 0e09fc1e2b2..4f71a231ba7 100644 --- a/sys/dev/usb/uhcireg.h +++ b/sys/dev/usb/uhcireg.h @@ -1,5 +1,5 @@ -/* $OpenBSD: uhcireg.h,v 1.8 2001/05/03 02:20:33 aaron Exp $ */ -/* $NetBSD: uhcireg.h,v 1.13 2000/08/13 18:20:15 augustss Exp $ */ +/* $OpenBSD: uhcireg.h,v 1.9 2001/10/31 04:24:44 nate Exp $ */ +/* $NetBSD: uhcireg.h,v 1.14 2001/08/06 15:15:08 augustss Exp $ */ /* $FreeBSD: src/sys/dev/usb/uhcireg.h,v 1.12 1999/11/17 22:33:42 n_hibma Exp $ */ /* @@ -107,6 +107,9 @@ #define UHCI_PORTSC_OCIC 0x0800 #define UHCI_PORTSC_SUSP 0x1000 +#define URWMASK(x) \ + ((x) & (UHCI_PORTSC_SUSP | UHCI_PORTSC_PR | UHCI_PORTSC_RD | UHCI_PORTSC_PE)) + #define UHCI_FRAMELIST_COUNT 1024 #define UHCI_FRAMELIST_ALIGN 4096 diff --git a/sys/dev/usb/uhid.c b/sys/dev/usb/uhid.c index 169f75bc534..c2939df1bf9 100644 --- a/sys/dev/usb/uhid.c +++ b/sys/dev/usb/uhid.c @@ -1,5 +1,5 @@ -/* $OpenBSD: uhid.c,v 1.14 2001/05/03 02:20:33 aaron Exp $ */ -/* $NetBSD: uhid.c,v 1.42 2000/12/29 01:47:49 augustss Exp $ */ +/* $OpenBSD: uhid.c,v 1.15 2001/10/31 04:24:44 nate Exp $ */ +/* $NetBSD: uhid.c,v 1.45 2001/10/26 17:58:21 augustss Exp $ */ /* $FreeBSD: src/sys/dev/usb/uhid.c,v 1.22 1999/11/17 22:33:43 n_hibma Exp $ */ /* @@ -172,6 +172,8 @@ USB_MATCH(uhid) id = usbd_get_interface_descriptor(uaa->iface); if (id == NULL || id->bInterfaceClass != UICLASS_HID) return (UMATCH_NONE); + if (uaa->matchlvl) + return (uaa->matchlvl); return (UMATCH_IFACECLASS_GENERIC); } @@ -234,7 +236,7 @@ USB_ATTACH(uhid) } } else { desc = NULL; - err = usbd_alloc_report_desc(uaa->iface, &desc, &size,M_USBDEV); + err = usbd_read_report_desc(uaa->iface, &desc, &size,M_USBDEV); } if (err) { printf("%s: no report descriptor\n", USBDEVNAME(sc->sc_dev)); @@ -367,7 +369,7 @@ uhid_intr(usbd_xfer_handle xfer, usbd_private_handle addr, usbd_status status) if (sc->sc_state & UHID_ASLP) { sc->sc_state &= ~UHID_ASLP; - DPRINTFN(5, ("uhid_intr: waking %p\n", sc)); + DPRINTFN(5, ("uhid_intr: waking %p\n", &sc->sc_q)); wakeup(&sc->sc_q); } selwakeup(&sc->sc_rsel); @@ -475,7 +477,7 @@ uhid_do_read(struct uhid_softc *sc, struct uio *uio, int flag) return (EWOULDBLOCK); } sc->sc_state |= UHID_ASLP; - DPRINTFN(5, ("uhidread: sleep on %p\n", sc)); + DPRINTFN(5, ("uhidread: sleep on %p\n", &sc->sc_q)); error = tsleep(&sc->sc_q, PZERO | PCATCH, "uhidrea", 0); DPRINTFN(5, ("uhidread: woke, error=%d\n", error)); if (sc->sc_dying) diff --git a/sys/dev/usb/uhub.c b/sys/dev/usb/uhub.c index 05dfb76d3a7..a28b3886d1d 100644 --- a/sys/dev/usb/uhub.c +++ b/sys/dev/usb/uhub.c @@ -1,5 +1,5 @@ -/* $OpenBSD: uhub.c,v 1.13 2001/05/03 02:20:33 aaron Exp $ */ -/* $NetBSD: uhub.c,v 1.49 2001/01/21 19:00:06 augustss Exp $ */ +/* $OpenBSD: uhub.c,v 1.14 2001/10/31 04:24:44 nate Exp $ */ +/* $NetBSD: uhub.c,v 1.52 2001/10/26 17:53:59 augustss Exp $ */ /* $FreeBSD: src/sys/dev/usb/uhub.c,v 1.18 1999/11/17 22:33:43 n_hibma Exp $ */ /* @@ -345,8 +345,8 @@ uhub_explore(usbd_device_handle dev) } status = UGETW(up->status.wPortStatus); change = UGETW(up->status.wPortChange); - DPRINTFN(3,("uhub_explore: port %d status 0x%04x 0x%04x\n", - port, status, change)); + DPRINTFN(3,("uhub_explore: %s port %d status 0x%04x 0x%04x\n", + USBDEVNAME(sc->sc_dev), port, status, change)); if (change & UPS_C_PORT_ENABLED) { DPRINTF(("uhub_explore: C_PORT_ENABLED\n")); usbd_clear_port_feature(dev, port, UHF_C_PORT_ENABLE); @@ -372,8 +372,14 @@ uhub_explore(usbd_device_handle dev) DPRINTFN(3,("uhub_explore: port=%d !C_CONNECT_" "STATUS\n", port)); /* No status change, just do recursive explore. */ - if (up->device && up->device->hub) + if (up->device != NULL && up->device->hub != NULL) up->device->hub->explore(up->device); +#if 0 && defined(DIAGNOSTIC) + if (up->device == NULL && + (status & UPS_CURRENT_CONNECT_STATUS)) + printf("%s: connected, no device\n", + USBDEVNAME(sc->sc_dev)); +#endif continue; } @@ -566,10 +572,10 @@ uhub_intr(usbd_xfer_handle xfer, usbd_private_handle addr, usbd_status status) struct uhub_softc *sc = addr; DPRINTFN(5,("uhub_intr: sc=%p\n", sc)); - if (status != USBD_NORMAL_COMPLETION) + if (status == USBD_STALLED) usbd_clear_endpoint_stall_async(sc->sc_ipipe); - - usb_needs_explore(sc->sc_hub); + else if (status == USBD_NORMAL_COMPLETION) + usb_needs_explore(sc->sc_hub); } #if defined(__FreeBSD__) diff --git a/sys/dev/usb/ukbd.c b/sys/dev/usb/ukbd.c index 5a87897b58d..3d667a7bf03 100644 --- a/sys/dev/usb/ukbd.c +++ b/sys/dev/usb/ukbd.c @@ -1,5 +1,5 @@ -/* $OpenBSD: ukbd.c,v 1.9 2001/10/25 15:20:07 drahn Exp $ */ -/* $NetBSD: ukbd.c,v 1.66 2001/04/06 22:54:15 augustss Exp $ */ +/* $OpenBSD: ukbd.c,v 1.10 2001/10/31 04:24:44 nate Exp $ */ +/* $NetBSD: ukbd.c,v 1.69 2001/10/24 21:02:18 augustss Exp $ */ /* * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -76,6 +76,7 @@ #if defined(__NetBSD__) #include "opt_wsdisplay_compat.h" +#include "opt_ddb.h" #endif #ifdef UKBD_DEBUG @@ -543,7 +544,8 @@ ukbd_intr(xfer, addr, status) if (status) { DPRINTF(("ukbd_intr: status=%d\n", status)); - usbd_clear_endpoint_stall_async(sc->sc_intrpipe); + if (status == USBD_STALLED) + usbd_clear_endpoint_stall_async(sc->sc_intrpipe); return; } @@ -560,11 +562,12 @@ ukbd_intr(xfer, addr, status) #else callout_reset(&sc->sc_delay, hz / 50, ukbd_delayed_decode, sc); #endif +#if DDB } else if (sc->sc_console_keyboard && !sc->sc_polling) { - /* + /* * For the console keyboard we can't deliver CTL-ALT-ESC - * from the interrupt routine. Doing so would start - * polling from iside the interrupt routine and that + * from the interrupt routine. Doing so would start + * polling from inside the interrupt routine and that * loses bigtime. */ sc->sc_data = *ud; @@ -573,7 +576,7 @@ ukbd_intr(xfer, addr, status) #else callout_reset(&sc->sc_delay, 0, ukbd_delayed_decode, sc); #endif - +#endif } else { ukbd_decode(sc, ud); } diff --git a/sys/dev/usb/ulpt.c b/sys/dev/usb/ulpt.c index 8f166c9cded..cde41db63f3 100644 --- a/sys/dev/usb/ulpt.c +++ b/sys/dev/usb/ulpt.c @@ -1,5 +1,5 @@ -/* $OpenBSD: ulpt.c,v 1.8 2001/10/04 22:55:56 gluk Exp $ */ -/* $NetBSD: ulpt.c,v 1.42 2001/04/16 00:18:06 augustss Exp $ */ +/* $OpenBSD: ulpt.c,v 1.9 2001/10/31 04:24:44 nate Exp $ */ +/* $NetBSD: ulpt.c,v 1.43 2001/10/19 15:30:25 nathanw Exp $ */ /* $FreeBSD: src/sys/dev/usb/ulpt.c,v 1.24 1999/11/17 22:33:44 n_hibma Exp $ */ /* @@ -98,7 +98,7 @@ struct ulpt_softc { int sc_ifaceno; int sc_out; - usbd_pipe_handle sc_out_pipe; /* bulk out pipe */ + usbd_pipe_handle sc_out_pipe; /* bulk out pipe */ int sc_in; usbd_pipe_handle sc_in_pipe; /* bulk in pipe */ @@ -182,7 +182,7 @@ USB_MATCH(ulpt) id->bInterfaceSubClass == UISUBCLASS_PRINTER && ((id->bInterfaceProtocol == UIPROTO_PRINTER_UNI) || (id->bInterfaceProtocol == UIPROTO_PRINTER_BI) || - (id->bInterfaceProtocol == UIPROTO_PRINTER_IEEE_1284_4))) + (id->bInterfaceProtocol == UIPROTO_PRINTER_1284))) return (UMATCH_IFACECLASS_IFACESUBCLASS_IFACEPROTO); return (UMATCH_NONE); } @@ -231,12 +231,13 @@ USB_ATTACH(ulpt) id->bInterfaceNumber == ifcd->bInterfaceNumber) { if (id->bInterfaceClass == UICLASS_PRINTER && id->bInterfaceSubClass == UISUBCLASS_PRINTER && - id->bInterfaceProtocol == UIPROTO_PRINTER_BI) + (id->bInterfaceProtocol == UIPROTO_PRINTER_BI || + id->bInterfaceProtocol == UIPROTO_PRINTER_1284)) goto found; altno++; } } - id = ifcd; /* not found, use original */ + id = ifcd; /* not found, use original */ found: if (id != ifcd) { /* Found a new bidir setting */ diff --git a/sys/dev/usb/ums.c b/sys/dev/usb/ums.c index 5215bd98300..8505da52f67 100644 --- a/sys/dev/usb/ums.c +++ b/sys/dev/usb/ums.c @@ -1,5 +1,5 @@ -/* $OpenBSD: ums.c,v 1.5 2001/05/03 02:20:34 aaron Exp $ */ -/* $NetBSD: ums.c,v 1.47 2001/01/23 14:04:14 augustss Exp $ */ +/* $OpenBSD: ums.c,v 1.6 2001/10/31 04:24:44 nate Exp $ */ +/* $NetBSD: ums.c,v 1.49 2001/10/26 17:58:21 augustss Exp $ */ /* * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -147,7 +147,7 @@ USB_MATCH(ums) if (id == NULL || id->bInterfaceClass != UICLASS_HID) return (UMATCH_NONE); - err = usbd_alloc_report_desc(uaa->iface, &desc, &size, M_TEMP); + err = usbd_read_report_desc(uaa->iface, &desc, &size, M_TEMP); if (err) return (UMATCH_NONE); @@ -212,7 +212,7 @@ USB_ATTACH(ums) if (quirks & UQ_SPUR_BUT_UP) sc->flags |= UMS_SPUR_BUT_UP; - err = usbd_alloc_report_desc(uaa->iface, &desc, &size, M_TEMP); + err = usbd_read_report_desc(uaa->iface, &desc, &size, M_TEMP); if (err) USB_ATTACH_ERROR_RETURN; @@ -292,7 +292,7 @@ USB_ATTACH(ums) DPRINTF(("ums_attach: X\t%d/%d\n", sc->sc_loc_x.pos, sc->sc_loc_x.size)); DPRINTF(("ums_attach: Y\t%d/%d\n", - sc->sc_loc_x.pos, sc->sc_loc_x.size)); + sc->sc_loc_y.pos, sc->sc_loc_y.size)); if (sc->flags & UMS_Z) DPRINTF(("ums_attach: Z\t%d/%d\n", sc->sc_loc_z.pos, sc->sc_loc_z.size)); diff --git a/sys/dev/usb/uplcom.c b/sys/dev/usb/uplcom.c index 1ffc36229ad..ffff1e0664c 100644 --- a/sys/dev/usb/uplcom.c +++ b/sys/dev/usb/uplcom.c @@ -1,6 +1,5 @@ -/* $OpenBSD: uplcom.c,v 1.1 2001/10/02 01:37:36 millert Exp $ */ +/* $OpenBSD: uplcom.c,v 1.2 2001/10/31 04:24:44 nate Exp $ */ /* $NetBSD: uplcom.c,v 1.20 2001/07/31 12:33:11 ichiro Exp $ */ - /* * Copyright (c) 2001 The NetBSD Foundation, Inc. * All rights reserved. diff --git a/sys/dev/usb/urio.c b/sys/dev/usb/urio.c index 35cd619bda6..08903978e71 100644 --- a/sys/dev/usb/urio.c +++ b/sys/dev/usb/urio.c @@ -1,5 +1,5 @@ -/* $OpenBSD: urio.c,v 1.5 2001/01/28 09:43:42 aaron Exp $ */ -/* $NetBSD: urio.c,v 1.5 2000/10/24 14:53:59 augustss Exp $ */ +/* $OpenBSD: urio.c,v 1.6 2001/10/31 04:24:44 nate Exp $ */ +/* $NetBSD: urio.c,v 1.6 2001/09/25 21:08:44 jdolecek Exp $ */ /* * Copyright (c) 2000 The NetBSD Foundation, Inc. @@ -139,8 +139,9 @@ USB_MATCH(urio) if ( ( uaa->vendor == USB_VENDOR_DIAMOND && uaa->product == USB_PRODUCT_DIAMOND_RIO500USB ) || - ( uaa->vendor == USB_VENDOR_DIAMOND2 && - uaa->product == USB_PRODUCT_DIAMOND2_RIO600USB ) + ( uaa->vendor == USB_VENDOR_DIAMOND2 && + ( uaa->product == USB_PRODUCT_DIAMOND2_RIO600USB || + uaa->product == USB_PRODUCT_DIAMOND2_RIO800USB ) ) ) return (UMATCH_VENDOR_PRODUCT); else diff --git a/sys/dev/usb/usb.c b/sys/dev/usb/usb.c index edfbef7a301..8ddd9a61740 100644 --- a/sys/dev/usb/usb.c +++ b/sys/dev/usb/usb.c @@ -1,4 +1,4 @@ -/* $OpenBSD: usb.c,v 1.15 2001/05/03 02:20:34 aaron Exp $ */ +/* $OpenBSD: usb.c,v 1.16 2001/10/31 04:24:44 nate Exp $ */ /* $NetBSD: usb.c,v 1.53 2001/01/23 17:04:30 augustss Exp $ */ /* $FreeBSD: src/sys/dev/usb/usb.c,v 1.20 1999/11/17 22:33:46 n_hibma Exp $ */ @@ -232,7 +232,7 @@ usb_add_task(usbd_device_handle dev, struct usb_task *task) TAILQ_INSERT_TAIL(&sc->sc_tasks, task, next); task->onqueue = 1; } else - DPRINTFN(3,("usb_add_task: sc=%p task=%p on q\n", sc, task)); + DPRINTFN(3,("usb_add_task: sc=%p task=%p on q\n", sc, task)); wakeup(&sc->sc_tasks); splx(s); } diff --git a/sys/dev/usb/usb.h b/sys/dev/usb/usb.h index 2e93c2ea22e..005f6f87472 100644 --- a/sys/dev/usb/usb.h +++ b/sys/dev/usb/usb.h @@ -1,5 +1,5 @@ -/* $OpenBSD: usb.h,v 1.13 2001/10/04 22:55:56 gluk Exp $ */ -/* $NetBSD: usb.h,v 1.50 2000/06/01 15:43:32 augustss Exp $ */ +/* $OpenBSD: usb.h,v 1.14 2001/10/31 04:24:44 nate Exp $ */ +/* $NetBSD: usb.h,v 1.52 2001/07/23 15:17:50 nathanw Exp $ */ /* $FreeBSD: src/sys/dev/usb/usb.h,v 1.14 1999/11/17 22:33:46 n_hibma Exp $ */ /* @@ -379,7 +379,7 @@ typedef struct { #define UISUBCLASS_PRINTER 1 #define UIPROTO_PRINTER_UNI 1 #define UIPROTO_PRINTER_BI 2 -#define UIPROTO_PRINTER_IEEE_1284_4 3 +#define UIPROTO_PRINTER_1284 3 #define UICLASS_MASS 0x08 #define UISUBCLASS_RBC 1 diff --git a/sys/dev/usb/usb_port.h b/sys/dev/usb/usb_port.h index 3be3f3db2ca..9ef0b33fc4d 100644 --- a/sys/dev/usb/usb_port.h +++ b/sys/dev/usb/usb_port.h @@ -1,5 +1,5 @@ -/* $OpenBSD: usb_port.h,v 1.29 2001/10/02 19:30:22 provos Exp $ */ -/* $NetBSD: usb_port.h,v 1.42 2001/03/28 19:00:39 ichiro Exp $ */ +/* $OpenBSD: usb_port.h,v 1.30 2001/10/31 04:24:44 nate Exp $ */ +/* $NetBSD: usb_port.h,v 1.44 2001/05/14 20:35:29 bouyer Exp $ */ /* $FreeBSD: src/sys/dev/usb/usb_port.h,v 1.21 1999/11/17 22:33:47 n_hibma Exp $ */ /* @@ -39,6 +39,8 @@ * POSSIBILITY OF SUCH DAMAGE. */ +#ifndef _USB_PORT_H +#define _USB_PORT_H /* * Macro's to cope with the differences between operating systems. @@ -51,6 +53,8 @@ #include "opt_usbverbose.h" +#define USB_USE_SOFTINTR + #ifdef USB_DEBUG #define UKBD_DEBUG 1 #define UHID_DEBUG 1 @@ -61,7 +65,6 @@ #define ULPT_DEBUG 1 #define UCOM_DEBUG 1 #define UPLCOM_DEBUG 1 -#define UMCT_DEBUG 1 #define UMODEM_DEBUG 1 #define UAUDIO_DEBUG 1 #define AUE_DEBUG 1 @@ -73,6 +76,7 @@ #define UZCOM_DEBUG 1 #define URIO_DEBUG 1 #define UFTDI_DEBUG 1 +#define UMCT_DEBUG 1 #define USCANNER_DEBUG 1 #define USSCANNER_DEBUG 1 #define Static @@ -80,6 +84,8 @@ #define Static static #endif +#define SCSI_MODE_SENSE MODE_SENSE + typedef struct device *device_ptr_t; #define USBBASEDEVICE struct device #define USBDEV(bdev) (&(bdev)) @@ -182,6 +188,7 @@ __CONCAT(dname,_detach)(self, flags) \ /* * OpenBSD */ +#define USB_DEBUG #ifdef USB_DEBUG #define UKBD_DEBUG 1 #define UHID_DEBUG 1 @@ -202,6 +209,7 @@ __CONCAT(dname,_detach)(self, flags) \ #define UZCOM_DEBUG 1 #define URIO_DEBUG 1 #define UFTDI_DEBUG 1 +#define UMCT_DEBUG 1 #define USCANNER_DEBUG 1 #define USSCANNER_DEBUG 1 #endif @@ -494,3 +502,6 @@ __CONCAT(dname,_detach)(device_t self) #define logprintf printf #endif /* __FreeBSD__ */ + +#endif /* _USB_PORT_H */ + diff --git a/sys/dev/usb/usb_quirks.c b/sys/dev/usb/usb_quirks.c index f2f599d5478..31e003798b8 100644 --- a/sys/dev/usb/usb_quirks.c +++ b/sys/dev/usb/usb_quirks.c @@ -1,4 +1,4 @@ -/* $OpenBSD: usb_quirks.c,v 1.9 2001/05/03 02:20:34 aaron Exp $ */ +/* $OpenBSD: usb_quirks.c,v 1.10 2001/10/31 04:24:44 nate Exp $ */ /* $NetBSD: usb_quirks.c,v 1.38 2001/04/15 10:26:36 augustss Exp $ */ /* $FreeBSD: src/sys/dev/usb/usb_quirks.c,v 1.13 1999/11/17 22:33:47 n_hibma Exp $ */ @@ -74,6 +74,8 @@ Static const struct usbd_quirk_entry { { USB_VENDOR_ALCOR2, USB_PRODUCT_ALCOR2_KBD_HUB, 0x001, { UQ_SPUR_BUT_UP }}, { USB_VENDOR_MCT, USB_PRODUCT_MCT_HUB0100, 0x102, { UQ_BUS_POWERED }}, { USB_VENDOR_MCT, USB_PRODUCT_MCT_USB232, 0x102, { UQ_BUS_POWERED }}, + { USB_VENDOR_MCT, USB_PRODUCT_MCT_SITECOM_USB232, 0x102, { UQ_BUS_POWERED }}, + { USB_VENDOR_MCT, USB_PRODUCT_MCT_DU_H3SP_USB232, 0x102, { UQ_BUS_POWERED }}, { USB_VENDOR_METRICOM, USB_PRODUCT_METRICOM_RICOCHET_GS, 0x100, { UQ_ASSUME_CM_OVER_DATA | UQ_NO_STRINGS }}, { USB_VENDOR_TI, USB_PRODUCT_TI_UTUSB41, 0x110, { UQ_POWER_CLAIM }}, @@ -83,13 +85,11 @@ Static const struct usbd_quirk_entry { { USB_VENDOR_SILICONPORTALS, USB_PRODUCT_SILICONPORTALS_YAPPHONE, 0x100, { UQ_AU_INP_ASYNC }}, /* XXX These should have a revision number, but I don't know what they are. */ -#ifdef notyet - { USB_VENDOR_HP, USB_PRODUCT_HP_895C, ANY, { UQ_BROKEN_BIDIR }}, - { USB_VENDOR_HP, USB_PRODUCT_HP_880C, ANY, { UQ_BROKEN_BIDIR }}, - { USB_VENDOR_HP, USB_PRODUCT_HP_815C, ANY, { UQ_BROKEN_BIDIR }}, - { USB_VENDOR_HP, USB_PRODUCT_HP_810C, ANY, { UQ_BROKEN_BIDIR }}, - { USB_VENDOR_HP, USB_PRODUCT_HP_830C, ANY, { UQ_BROKEN_BIDIR }}, -#endif + { USB_VENDOR_HP, USB_PRODUCT_HP_895C, ANY, { UQ_BROKEN_BIDIR }}, + { USB_VENDOR_HP, USB_PRODUCT_HP_880C, ANY, { UQ_BROKEN_BIDIR }}, + { USB_VENDOR_HP, USB_PRODUCT_HP_815C, ANY, { UQ_BROKEN_BIDIR }}, + { USB_VENDOR_HP, USB_PRODUCT_HP_810C, ANY, { UQ_BROKEN_BIDIR }}, + { USB_VENDOR_HP, USB_PRODUCT_HP_830C, ANY, { UQ_BROKEN_BIDIR }}, { 0, 0, 0, { 0 } } }; diff --git a/sys/dev/usb/usb_quirks.h b/sys/dev/usb/usb_quirks.h index 7e347bf5779..99ae4757537 100644 --- a/sys/dev/usb/usb_quirks.h +++ b/sys/dev/usb/usb_quirks.h @@ -1,4 +1,4 @@ -/* $OpenBSD: usb_quirks.h,v 1.8 2001/05/03 02:20:34 aaron Exp $ */ +/* $OpenBSD: usb_quirks.h,v 1.9 2001/10/31 04:24:44 nate Exp $ */ /* $NetBSD: usb_quirks.h,v 1.20 2001/04/15 09:38:01 augustss Exp $ */ /* $FreeBSD: src/sys/dev/usb/usb_quirks.h,v 1.9 1999/11/12 23:31:03 n_hibma Exp $ */ @@ -54,7 +54,7 @@ struct usbd_quirks { #define UQ_AU_NO_FRAC 0x0400 /* don't adjust for fractional samples */ #define UQ_AU_INP_ASYNC 0x0800 /* input is async despite claim of adaptive */ #define UQ_ASSUME_CM_OVER_DATA 0x1000 /* modem device breaks on cm over data */ -#define UQ_BROKEN_BIDIR 0x2000 /* printer has broken bidir mode */ +#define UQ_BROKEN_BIDIR 0x2000 /* printer has broken bidir mode */ }; extern const struct usbd_quirks usbd_no_quirk; diff --git a/sys/dev/usb/usb_subr.c b/sys/dev/usb/usb_subr.c index 2d23497ce17..4a6953667f7 100644 --- a/sys/dev/usb/usb_subr.c +++ b/sys/dev/usb/usb_subr.c @@ -1,5 +1,5 @@ -/* $OpenBSD: usb_subr.c,v 1.17 2001/03/22 02:10:22 mickey Exp $ */ -/* $NetBSD: usb_subr.c,v 1.72 2000/04/14 14:13:56 augustss Exp $ */ +/* $OpenBSD: usb_subr.c,v 1.18 2001/10/31 04:24:44 nate Exp $ */ +/* $NetBSD: usb_subr.c,v 1.87 2001/08/15 00:04:59 augustss Exp $ */ /* $FreeBSD: src/sys/dev/usb/usb_subr.c,v 1.18 1999/11/17 22:33:47 n_hibma Exp $ */ /* @@ -101,16 +101,13 @@ typedef u_int16_t usb_product_id_t; /* * Descriptions of of known vendors and devices ("products"). */ -struct usb_known_vendor { - usb_vendor_id_t vendor; - const char *vendorname; -}; - -struct usb_known_product { +struct usb_knowndev { usb_vendor_id_t vendor; usb_product_id_t product; - const char *productname; + int flags; + char *vendorname, *productname; }; +#define USB_KNOWNDEV_NOPROD 0x01 /* match on vendor only */ #include <dev/usb/usbdevs_data.h> #endif /* USBVERBOSE */ @@ -213,28 +210,29 @@ usbd_get_string(usbd_device_handle dev, int si, char *buf) return (buf); } -static char * -usbd_trim_trailings_spaces(char *p) +static void +usbd_trim_spaces(char *p) { - char *q, *r; + char *q, *e; if (p == NULL) - return NULL; - r = p; - q = p + strlen(p); - while (--q >= p && *q == ' ') - *q = 0; - return r; + return; + q = e = p; + while (*q == ' ') /* skip leading spaces */ + q++; + while ((*p = *q++)) /* copy string */ + if (*p++ != ' ') /* remember last non-space */ + e = p; + *e = 0; /* kill trailing spaces */ } void usbd_devinfo_vp(usbd_device_handle dev, char *v, char *p, int usedev) { usb_device_descriptor_t *udd = &dev->ddesc; - const char *vendor = NULL, *product = NULL; + char *vendor = 0, *product = 0; #ifdef USBVERBOSE - const struct usb_known_vendor *ukv; - const struct usb_known_product *ukp; + const struct usb_knowndev *kdp; #endif if (dev == NULL) { @@ -243,34 +241,30 @@ usbd_devinfo_vp(usbd_device_handle dev, char *v, char *p, int usedev) } if (usedev) { - vendor = usbd_trim_trailings_spaces( - usbd_get_string(dev, udd->iManufacturer, v)); - product = usbd_trim_trailings_spaces( - usbd_get_string(dev, udd->iProduct, p)); + vendor = usbd_get_string(dev, udd->iManufacturer, v); + usbd_trim_spaces(vendor); + product = usbd_get_string(dev, udd->iProduct, p); + usbd_trim_spaces(product); } else { vendor = NULL; product = NULL; } #ifdef USBVERBOSE if (vendor == NULL || product == NULL) { - for(ukv = usb_known_vendors; - ukv->vendorname != NULL; - ukv++) { - if (ukv->vendor == UGETW(udd->idVendor)) { - vendor = ukv->vendorname; + for(kdp = usb_knowndevs; + kdp->vendorname != NULL; + kdp++) { + if (kdp->vendor == UGETW(udd->idVendor) && + (kdp->product == UGETW(udd->idProduct) || + (kdp->flags & USB_KNOWNDEV_NOPROD) != 0)) break; - } } - if (vendor != NULL) { - for(ukp = usb_known_products; - ukp->productname != NULL; - ukp++) { - if (ukp->vendor == UGETW(udd->idVendor) && - (ukp->product == UGETW(udd->idProduct))) { - product = ukp->productname; - break; - } - } + if (kdp->vendorname != NULL) { + if (vendor == NULL) + vendor = kdp->vendorname; + if (product == NULL) + product = (kdp->flags & USB_KNOWNDEV_NOPROD) == 0 ? + kdp->productname : NULL; } } #endif @@ -299,7 +293,7 @@ usbd_devinfo(usbd_device_handle dev, int showclass, char *cp) int bcdDevice, bcdUSB; usbd_devinfo_vp(dev, vendor, product, 1); - cp += sprintf(cp, "%s%s%s", vendor, *vendor ? " " : "", product); + cp += sprintf(cp, "%s %s", vendor, product); if (showclass) cp += sprintf(cp, ", class %d/%d", udd->bDeviceClass, udd->bDeviceSubClass); @@ -470,7 +464,6 @@ usbd_fill_iface_data(usbd_device_handle dev, int ifaceidx, int altidx) for (endpt = 0; endpt < nendpt; endpt++) { DPRINTFN(10,("usbd_fill_iface_data: endpt=%d\n", endpt)); for (; p < end; p += ed->bLength) { - ed = (usb_endpoint_descriptor_t *)p; DPRINTFN(10,("usbd_fill_iface_data: p=%p end=%p " "len=%d type=%d\n", p, end, ed->bLength, ed->bDescriptorType)); @@ -1173,6 +1166,18 @@ usbd_submatch(struct device *parent, void *match, void *aux) ) ) return 0; + if (cf->uhubcf_vendor != UHUB_UNK_VENDOR && + cf->uhubcf_vendor == uaa->vendor && + cf->uhubcf_product != UHUB_UNK_PRODUCT && + cf->uhubcf_product == uaa->product) { + /* We have a vendor&product locator match */ + if (cf->uhubcf_release != UHUB_UNK_RELEASE && + cf->uhubcf_release == uaa->release) + uaa->matchlvl = UMATCH_VENDOR_PRODUCT_REV; + else + uaa->matchlvl = UMATCH_VENDOR_PRODUCT; + } else + uaa->matchlvl = 0; return ((*cf->cf_attach->ca_match)(parent, cf, aux)); } diff --git a/sys/dev/usb/usbdevs b/sys/dev/usb/usbdevs index 9112696bbac..0ca15cf5849 100644 --- a/sys/dev/usb/usbdevs +++ b/sys/dev/usb/usbdevs @@ -1,5 +1,5 @@ -$OpenBSD: usbdevs,v 1.36 2001/10/26 18:05:28 nate Exp $ -/* $NetBSD: usbdevs,v 1.127 2000/11/15 14:36:09 augustss Exp $ */ +$OpenBSD: usbdevs,v 1.37 2001/10/31 04:24:44 nate Exp $ +/* $NetBSD: usbdevs,v 1.194 2001/10/26 03:47:31 mycroft Exp $ */ /* * Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc. @@ -40,10 +40,26 @@ $OpenBSD: usbdevs,v 1.36 2001/10/26 18:05:28 nate Exp $ /* * List of known USB vendors + * + * Please note that these IDs do not do anything. Adding an ID here and + * regenerating the usbdevs.h and usbdevs_data.h only makes a symbolic name + * available to the source code and does not change any functionality, nor + * does it make your device available to a specific driver. + * It will however make the descriptive string available if a device does not + * provide the string itself. + * + * After adding a vendor ID VNDR and a product ID PRDCT you will have the + * following extra defines: + * #define USB_VENDOR_VNDR 0x???? + * #define USB_PRODUCT_VNDR_PRDCT 0x???? + * + * You may have to add these defines to the respective probe routines to + * make the device recognised by the appropriate device driver. */ vendor AOX 0x03e8 AOX vendor ATMEL 0x03eb Atmel +vendor MITSUMI 0x03ee Mitsumi vendor HP 0x03f0 Hewlett Packard vendor ADAPTEC 0x03f3 Adaptec vendor NATIONAL 0x0400 National Semiconductor @@ -57,6 +73,7 @@ vendor ADI 0x0422 ADI Systems vendor CATC 0x0423 Computer Access Technology vendor GRAVIS 0x0428 Advanced Gravis Computer vendor SUN 0x0430 Sun Microsystems +vendor TAUGA 0x0436 Taugagreining HF vendor AMD 0x0438 Advanced Micro Devices vendor LEXMARK 0x043d Lexmark International vendor NANAO 0x0440 NANAO @@ -89,6 +106,7 @@ vendor CYPRESS 0x04b4 Cypress Semiconductor vendor EPSON 0x04b8 Seiko Epson vendor RAINBOW 0x04b9 Rainbow Technologies vendor IODATA 0x04bb I/O Data +vendor TDK 0x04bf TDK vendor 3COMUSR 0x04c1 U.S. Robotics vendor METHODE 0x04c2 Methode Electronics Far East vendor MAXISWITCH 0x04c3 Maxi Switch @@ -106,6 +124,7 @@ vendor MYSON 0x04cf Myson Technology vendor DIGI2 0x04d0 Digi vendor ITTCANON 0x04d1 ITT Canon vendor ALTEC 0x04d2 Altec Lansing +vendor PANASONIC 0x04da Panasonic (Matsushita) vendor SHUTTLE 0x04e6 Shuttle Technology vendor ANNABOOKS 0x04ed Annabooks vendor CHICONY 0x04f2 Chicony Electronics @@ -123,6 +142,7 @@ vendor ALTRA 0x0527 ALTRA vendor ATI 0x0528 ATI Technologies vendor AKS 0x0529 Aladdin Knowledge Systems vendor UNIACCESS 0x0540 Universal Access +vendor XIRLINK 0x0545 Xirlink vendor ANCHOR 0x0547 Anchor Chips vendor SONY 0x054c Sony vendor VISION 0x0553 VLSI Vision @@ -136,6 +156,7 @@ vendor WACOM 0x056a WACOM vendor ETEK 0x056c e-TEK Labs vendor EIZO 0x056d EIZO vendor ELECOM 0x056e Elecom +vendor HAUPPAUGE 0x0573 Hauppauge Computer Works vendor BAFO 0x0576 BAFO/Quality Computer Accessories vendor YEDATA 0x057b Y-E Data vendor AVM 0x057c AVM @@ -157,6 +178,7 @@ vendor ELSA 0x05cc ELSA vendor BRAINBOXES 0x05d1 Brainboxes Limited vendor AXIOHM 0x05d9 Axiohm Transaction Solutions vendor MICROTEK 0x05da Microtek +vendor LEXAR 0x05dc Lexar Media vendor SYMBOL 0x05e0 Symbol Technologies vendor GENESYS 0x05e3 Genesys Logic vendor FUJI 0x05e5 Fuji Electric @@ -184,12 +206,14 @@ vendor AIWA 0x0677 Aiwa vendor ACARD 0x0678 ACARD Technology vendor PROLIFIC 0x067b Prolific Technology vendor ADVANCELOGIC 0x0680 Avance Logic +vendor HAGIWARA 0x0693 Hagiwara Sys-Com vendor CTX 0x0698 Chuntex vendor ASKEY 0x069a Askey Computer vendor ALCATELT 0x06b9 Alcatel Telecom vendor AGFA 0x06bd AGFA-Gevaert NV vendor ASIAMD 0x06be Asia Microelectronic Development vendor BIZLINK 0x06c4 Bizlink International +vendor KEYSPAN 0x06cd Keyspan vendor AASHIMA 0x06d6 Aashima Technology B.V. vendor MULTITECH 0x06e0 MultiTech vendor ADS 0x06e1 ADS Technologies @@ -197,7 +221,9 @@ vendor ALCATELM 0x06e4 Alcatel Microelectronics vendor SIRIUS 0x06ea Sirius Technologies vendor BOSTON 0x06fd Boston Acoustics vendor SMC 0x0707 Standard Microsystems +vendor PUTERCOM 0x0708 Putercom vendor MCT 0x0711 MCT +vendor DIGITALSTREAM 0x074e Digital Stream vendor AUREAL 0x0755 Aureal Semiconductor vendor MIDIMAN 0x0763 Midiman vendor GRIFFIN 0x077d Griffin Technology @@ -213,6 +239,7 @@ vendor ADMTEK 0x07a6 ADMtek vendor COREGA 0x07aa Corega vendor FREECOM 0x07ab Freecom vendor MICROTECH 0x07af Microtech +vendor OLYMPUS 0x07b4 Olympus vendor ABOCOM 0x07b8 AboCom Systems vendor KEISOKUGIKEN 0x07c1 Keisokugiken vendor APG 0x07c5 APG Cash Drawer @@ -220,6 +247,7 @@ vendor BUG 0x07c8 B.U.G. vendor ALLIEDTELESYN 0x07c9 Allied Telesyn International vendor AVERMEDIA 0x07ca AVerMedia Technologies vendor SIIG 0x07cc SIIG +vendor CASIO 0x07cf CASIO vendor APTIO 0x07d2 Aptio Products vendor ARASAN 0x07da Arasan Chip Systems vendor ALLIEDCABLE 0x07e6 Allied Cable @@ -233,8 +261,10 @@ vendor ACCTON 0x083a Accton Technology vendor DIAMOND 0x0841 Diamond vendor NETGEAR 0x0846 BayNETGEAR vendor ACTIVEWIRE 0x0854 ActiveWire +vendor PORTGEAR 0x085a PortGear vendor METRICOM 0x0870 Metricom vendor ADESSOKBTEK 0x087c ADESSO/Kbtek America +vendor JATON 0x087d Jaton vendor APT 0x0880 APT Technologies vendor BOCARESEARCH 0x0885 Boca Research vendor ANDREA 0x08a8 Andrea Electronics @@ -244,6 +274,7 @@ vendor AIPTEK 0x08ca AIPTEK International vendor SMARTBRIDGES 0x08d1 SmartBridges vendor BILLIONTON 0x08dd Billionton Systems vendor EXTENDED 0x08e9 Extended Systems +vendor MSYSTEMS 0x08ec M-Systems vendor AUTHENTEC 0x08ff AuthenTec vendor ALATION 0x0910 Alation Systems vendor BIOMETRIC 0x0929 American Biometric Company @@ -251,6 +282,7 @@ vendor YANO 0x094f Yano vendor KINGSTON 0x0951 Kingston Technology vendor BLUEWATER 0x0956 BlueWater Systems vendor AGILENT 0x0957 Agilent Technologies +vendor PORTSMITH 0x095a Portsmith vendor ADIRONDACK 0x0976 Adirondack Wire & Cable vendor BECKHOFF 0x0978 Beckhoff vendor ALTIUS 0x09b3 Altius Solutions @@ -268,13 +300,18 @@ vendor TREK 0x0a16 Trek Technology vendor ASAHIOPTICAL 0x0a17 Asahi Optical vendor BOCASYSTEMS 0x0a43 Boca Systems vendor BROADCOM 0x0a5c Broadcom +vendor GREENHOUSE 0x0a6b GREENHOUSE vendor GEOCAST 0x0a79 Geocast Network Systems vendor TODOS 0x0b0c Todos Data System +vendor AGATE 0x0c08 Agate Technologies vendor MOTOROLA 0x1063 Motorola vendor PLX 0x10b5 PLX +vendor ASANTE 0x10bd Asante vendor BELKIN2 0x1293 Belkin Components +vendor MOBILITY 0x1342 Mobility +vendor SHARK 0x13d2 Shark vendor SILICONPORTALS 0x1527 Silicon Portals -vendor SOHOWARE 0x15e8 SOHOware +vendor SOHOWARE 0x15e8 SOHOware vendor UMAX 0x1606 UMAX Data Systems vendor INSIDEOUT 0x1608 Inside Out Networks vendor ENTREGA 0x1645 Entrega @@ -291,8 +328,8 @@ vendor HP2 0xf003 Hewlett Packard product 3COM HOMECONN 0x009d HomeConnect Camera product 3COM 3C19250 0x03E8 3C19250 Ethernet product 3COM USR56K 0x3021 U.S.Robotics 56000 - -product 3COM 3C460 0x11f8 HomeConnect Ethernet +product 3COM 3C460 0x11f8 HomeConnect 3C460 +product 3COM 3C460B 0x4601 HomeConnect 3C460B product 3COMUSR OFFICECONN 0x0082 3Com OfficeConnect Analog Modem product 3COMUSR USRISDN 0x008f 3Com U.S. Robotics Pro ISDN TA @@ -300,7 +337,21 @@ product 3COMUSR HOMECONN 0x009d 3Com HomeConnect camera product 3COMUSR USR56K 0x3021 U.S.Robotics 56000 /* AboCom products */ -product ABOCOM URE450 0x4000 USB Ethernet +product ABOCOM XX1 0x110c XX1 +product ABOCOM XX2 0x200c XX2 +product ABOCOM URE450 0x4000 URE450 Ethernet +product ABOCOM XX3 0x4002 XX3 +product ABOCOM DSB650TX_PNA 0x4003 1/10/100 ethernet +product ABOCOM XX4 0x4004 XX4 +product ABOCOM XX5 0x4007 XX5 +product ABOCOM XX6 0x400b XX6 +product ABOCOM XX7 0x400c XX7 +product ABOCOM XX8 0x4102 XX8 +product ABOCOM XX9 0x4104 XX9 +product ABOCOM XX10 0xabc1 XX10 + +/* Accton products */ +product ACCTON USB320_EC 0x1046 USB320-EC Ethernet /* Acer Peripherals products */ product ACERP ACERSCAN_C310U 0x12a6 Acerscan C310U @@ -314,9 +365,14 @@ product ACTIVEWIRE IOBOARD_FW1 0x0101 I/O Board, rev. 1 /* ADMtek products */ product ADMTEK PEGASUS 0x0986 AN986 Ethernet +product ADMTEK PEGASUSII 0x8511 AN8511 Ethernet /* ADS products */ product ADS UBS10BT 0x0008 UBS-10BT Ethernet +product ADS UBS10BTX 0x0009 UBS-10BT Ethernet + +/* Agate Technologies products */ +product AGATE QDRIVE 0x0378 Q-Drive /* Agiler products */ product ELECOM MOUSE29UO 0x0002 mouse 29UO @@ -349,16 +405,20 @@ product ANCHOR EZUSB 0x2131 EZUSB product ANCHOR EZLINK 0x2720 EZLINK /* AOX products */ -product AOX USB101 0x0008 USB Ethernet controller engine +product AOX USB101 0x0008 Ethernet controller engine /* Apple Computer products */ product APPLE OPTMOUSE 0x0302 Optical mouse product APPLE SPEAKERS 0x1101 Speakers +/* Asante products */ +product ASANTE EA 0x1427 Ethernet + /* ATen products */ -product ATEN UC1284 0x2001 Parallel printer adapter +product ATEN UC1284 0x2001 Parallel adapter product ATEN UC10T 0x2002 10Mbps Ethernet product ATEN UC232A 0x2008 Serial adapter +product ATEN DSB650C 0x4000 DSB-650C /* Atmel Comp. products */ product ATMEL UHB124 0x3301 UHB124 hub @@ -368,10 +428,13 @@ product AVISION 1200U 0x0268 1200U scanner /* Belkin products */ /*product BELKIN F5U111 0x???? F5U111 Ethernet */ -product BELKIN2 F5U002 0x0002 F5U002 Parallel printer adapter +product BELKIN2 F5U002 0x0002 F5U002 Parallel adapter /* Billionton products */ product BILLIONTON USB100 0x0986 USB100N 10/100 Ethernet +product BILLIONTON USBLP100 0x0987 USB100LP +product BILLIONTON USBEL100 0x0988 USB100EL +product BILLIONTON USBE100 0x8511 USBE100 /* Brother Industries products */ product BROTHER HL1050 0x0002 HL-1050 laser printer @@ -380,7 +443,9 @@ product BROTHER HL1050 0x0002 HL-1050 laser printer product BTC BTC7932 0x6782 Keyboard /* Canon products */ +product CANON N656U 0x2206 CANOSCAN N656U product CANON S10 0x3041 PowerShot S10 +product CANON S100 0x3045 PowerShot S100 /* CATC products */ product CATC NETMATE 0x000a Netmate Ethernet @@ -388,18 +453,22 @@ product CATC NETMATE2 0x000c Netmate2 Ethernet product CATC CHIEF 0x000d USB Chief Bus & Protocol Analyzer product CATC ANDROMEDA 0x1237 Andromeda hub +/* CASIO products */ +product CASIO NAMELAND 0x4001 CASIO Nameland EZ-USB + /* Cherry products */ -product CHERRY MY3000KBD 0x0001 My3000 -product CHERRY MY3000HUB 0x0003 My3000 +product CHERRY MY3000KBD 0x0001 My3000 keyboard +product CHERRY MY3000HUB 0x0003 My3000 hub /* Chic Technology products */ product CHIC MOUSE1 0x0001 mouse -product CHIC CYPRESS 0x0003 Cypress +product CHIC CYPRESS 0x0003 Cypress USB Mouse /* Chicony products */ -product CHICONY KB8933 0x0001 KB-8933 +product CHICONY KB8933 0x0001 KB-8933 keyboard /* Compaq products */ +product COMPAQ IPAQPOCKETPC 0x0003 iPAQ PocketPC product COMPAQ PJB100 0x504a Personal Jukebox PJB100 /* Connectix products */ @@ -423,13 +492,18 @@ product CYPRESS FMRADIO 0x1002 FM Radio /* D-Link products */ /*product DLINK DSBS25 0x0100 DSB-S25 serial adapter*/ +product DLINK DSB650TX4 0x200c 10/100 ethernet product DLINK DSB650C 0x4000 10Mbps Ethernet +product DLINK DSB650TX1 0x4001 10/100 ethernet product DLINK DSB650TX 0x4002 10/100 Ethernet product DLINK DSB650TX_PNA 0x4003 1/10/100 Ethernet -product DLINK DSB650 0xABC1 10/100 Ethernet +product DLINK DSB650TX3 0x400b 10/100 ethernet +product DLINK DSB650TX2 0x4102 10/100 ethernet +product DLINK DSB650 0xabc1 10/100 Ethernet /* Dallas Semiconductor products */ product DALLAS J6502 0x4201 J-6502 speakers +product DALLAS USB_FOB_IBUTTON 0x2490 USB-FOB/iBUTTON /* Diamond products */ product DIAMOND RIO500USB 0x0001 Rio 500 USB @@ -439,12 +513,23 @@ product DIGI ACCELEPORT2 0x0002 AccelePort 2 product DIGI ACCELEPORT4 0x0004 AccelePort 4 product DIGI ACCELEPORT8 0x0008 AccelePort 8 +/* Digital Stream Corp. products */ +product DIGITALSTREAM PS2 0x0001 PS/2 Active Adapter + /* EIZO products */ product EIZO HUB 0x0000 hub product EIZO MONITOR 0x0001 monitor +/* Elecom products */ +product ELECOM MOUSE29UO 0x0002 mouse 29UO +product ELECOM LDUSBTX0 0x200c LD-USB/TX +product ELECOM LDUSBTX1 0x4002 LD-USB/TX +product ELECOM LDUSBTX2 0x400b LD-USB/TX +product ELECOM LDUSBTX3 0xabc1 LD-USB/TX + /* Elsa products */ product ELSA MODEM1 0x2265 ELSA +product ELSA USB2ETHERNET 0x3000 Microlink USB2Ethernet /* Entrega products */ product ENTREGA 1S 0x0001 1S serial connector @@ -453,10 +538,12 @@ product ENTREGA 1S25 0x0003 1S25 serial connector product ENTREGA 4S 0x0004 4S serial connector product ENTREGA E45 0x0005 E45 Ethernet product ENTREGA CENTRONICS 0x0006 Centronics connector +product ENTREGA XX1 0x0008 Ethernet product ENTREGA 1S9 0x0093 1S9 serial connector product ENTREGA EZUSB 0x8000 EZ-USB /*product ENTREGA SERIAL 0x8001 DB25 Serial connector*/ product ENTREGA 2U4S 0x8004 2U4S serial connector/usb hub +product ENTREGA XX2 0x8005 Ethernet /*product ENTREGA SERIAL_DB9 0x8093 DB9 Serial connector*/ /* Epson products */ @@ -468,7 +555,10 @@ product EPSON 636 0x0101 Perfection 636U / 636Photo scanner product EPSON 610 0x0103 Perfection 610 scanner product EPSON 1200 0x0104 Perfection 1200U / 1200Photo scanner product EPSON 1600 0x0107 Expression 1600 scanner -product EPSON 1640 0x010a Expression 1640SU scanner +product EPSON 1640 0x010a Perfection 1640SU scanner +product EPSON 1240 0x010b Perfection 1240U / 1240Photo scanner +product EPSON 640U 0x010c Perfection 640U scanner +product EPSON 1650 0x0110 Perfection 1650 scanner /* e-TEK Labs products */ product ETEK 1COM 0x8007 Serial port @@ -479,6 +569,9 @@ product EXTENDED XTNDACCESS 0x0100 XTNDAccess IrDA /* Gravis products */ product GRAVIS GAMEPADPRO 0x4001 GamePad Pro +/* GREENHOUSE products */ +product GREENHOUSE KANA21 0x0001 CF-writer/MP3 Player + /* Griffin Technology */ product GRIFFIN IMATE 0x0405 iMate, ADB adapter @@ -491,20 +584,42 @@ product FTDI SERIAL 0x8372 Serial converter /* Fuji photo products */ product FUJIPHOTO MASS0100 0x0100 Mass Storage +/* Hagiwara products */ +product HAGIWARA FGSM 0x0002 FlashGate SmartMediaReader +product HAGIWARA FGCF 0x0003 FlashGate CompactFlash Reader +product HAGIWARA FG 0x0005 FlashGate + /* Handspring */ product HANDSPRING VISOR 0x0100 Handspring Visor +/* Hauppauge Computer Works */ +product HAUPPAUGE WINTV_USB_FM 0x4d12 WinTV USB FM + /* HP products */ +product HP 895C 0x0004 DeskJet 895C product HP 4100C 0x0101 Scanjet 4100C product HP S20 0x0102 Photosmart S20 +product HP 880C 0x0104 DeskJet 880C product HP 4200C 0x0105 ScanJet 4200C +product HP CDWRITERPLUS 0x0107 CD-Writer Plus +product HP KBDHUB 0x010c Multimedia Keyboard Hub product HP 6200C 0x0201 ScanJet 6200C product HP S20b 0x0202 PhotoSmart S20 +product HP 815C 0x0204 DeskJet 815C product HP 3300C 0x0205 ScanJet 3300C +product HP CDW8200 0x0207 CD-Writer Plus 8200e +product HP 810C 0x0304 DeskJet 810C/812C +product HP 4300C 0x0305 Scanjet 4300C +product HP G85XI 0x0311 OfficeJet G85xi product HP 5200C 0x0401 Scanjet 5200C +product HP 830C 0x0404 DeskJet 830C +product HP 3400CSE 0x0405 ScanJet 3400cse product HP 6300C 0x0601 Scanjet 6300C +product HP 840C 0x0604 DeskJet 840c product HP 5300C 0x0701 Scanjet 5300C +product HP 930C 0x1204 DeskJet 930c product HP 970CSE 0x1004 Deskjet 970Cse +product HP 640C 0x2004 DeskJet 640c product HP P1100 0x3102 Photosmart P1100 /* HP products */ @@ -517,7 +632,8 @@ product IBM USBCDROMDRIVE 0x4427 USB CD-ROM Drive product INSIDEOUT EDGEPORT4 0x0001 EdgePort/4 serial ports /* In-System products */ -product INSYSTEM F5U002 0x0002 Parallel printer adapter +product INSYSTEM F5U002 0x0002 Parallel adapter +product INSYSTEM ATAPI 0x0031 ATAPI adapter product INSYSTEM ISD110 0x0200 IDE adapter ISD110 product INSYSTEM ISD105 0x0202 IDE adapter ISD105 product INSYSTEM USBCABLE 0x081a USB cable @@ -536,8 +652,8 @@ product IODATA USBRSAQ 0x0a03 RSAQ1 Serial Adapter product IOMEGA ZIP100 0x0001 Zip 100 product IOMEGA ZIP250 0x0030 Zip 250 -/* Kawasaki products */ -product KLSI DUH3E10BT 0x0008 USB Ethernet controller engine +/* Jaton products */ +product JATON EDA 0x5704 Ethernet Device Adapter /* Kawatsu products */ product KAWATSU MH4000P 0x0003 MiniHub 4000P @@ -545,14 +661,26 @@ product KAWATSU MH4000P 0x0003 MiniHub 4000P /* Keisokugiken Corp. products */ product KEISOKUGIKEN USBDAQ 0x0068 HKS-0200 USBDAQ -/* Kawasaki LSI products (?) */ +/* Kawasaki LSI products */ product KLSI DUH3E10BT 0x0008 10BT Ethernet +product KLSI DUH3E10BTN 0x0009 10BT Ethernet /* Kensington products */ product KENSINGTON ORBIT 0x1003 Orbit USB/PS2 trackball product KENSINGTON TURBOBALL 0x1005 TurboBall +product KENSINGTON ORBIT_MAC 0x1009 Orbit USB trackball for Mac + +/* Keyspan products */ +product KEYSPAN USA28 0x0101 USA-28 serial adapter +product KEYSPAN USA28X 0x0102 USA-28X serial adapter +product KEYSPAN USA19 0x0103 USA-19 serial adapter +product KEYSPAN USA18X 0x0105 USA-18X serial adapter +product KEYSPAN USA19W 0x0106 USA-19W serial adapter +product KEYSPAN USA49W 0x0109 USA-49W serial adapter +product KEYSPAN UIA10_NF 0x0201 UIA-10 remote control /* Kingston products */ +product KINGSTON XX1 0x0008 Ethernet product KINGSTON KNU101TX 0x000a KNU101TX Ethernet /* Kodak products */ @@ -573,16 +701,23 @@ product KYE FLIGHT2000 0x1004 Flight 2000 joystick product KYE VIVIDPRO 0x2001 ColorPage Vivid-Pro scanner /* LaCie products */ +product LACIE HD 0xa601 Hard Disk product LACIE CDRW 0xa602 CD R/W +/* Lexar products */ +product LEXAR JUMPSHOT 0x0001 jumpSHOT CompactFlash Reader + /* Lexmark products */ product LEXMARK S2450 0x0009 Optra S 2450 /* Linksys products */ +product LINKSYS MAUSB2 0x0105 Camedia MAUSB-2 +product LINKSYS USB10TX1 0x200c USB10TX product LINKSYS USB10T 0x2202 USB10T Ethernet product LINKSYS USB100TX 0x2203 USB100TX Ethernet product LINKSYS USB100H1 0x2204 USB100H1 Ethernet/HPNA product LINKSYS USB10TA 0x2206 USB10TA Ethernet +product LINKSYS USB10TX2 0x400b USB10TX /* Logitech products */ product LOGITECH M2452 0x0203 M2452 @@ -597,9 +732,13 @@ product LOGITECH N48 0xc001 N48 mouse product LOGITECH MBA47 0xc002 M-BA47 mouse product LOGITECH WMMOUSE 0xc004 WingMan Gaming Mouse product LOGITECH BD58 0xc00c BD58 mouse +product LOGITECH UN58A 0xc030 iFeel Mouse product LOGITECH BB13 0xc401 USB-PS/2 Trackball product LOGITECH WMPAD 0xc208 WingMan GamePad Extreme product LOGITECH WMJOY 0xc281 WingMan Force joystick +product LOGITECH RK53 0xc501 Cordless mouse +product LOGITECH RB6 0xc503 Cordless keyboard +product LOGITECH CDO 0xc504 Cordless Desktop Optical product LOGITECH QUICKCAMPRO2 0xd001 QuickCam Pro /* Lucent products */ @@ -617,6 +756,7 @@ product MCT SITECOM_USB232 0x0230 Sitecom USB-232 Products /* Melco, Inc products */ product MELCO LUATX1 0x0001 LUA-TX Ethernet product MELCO LUATX5 0x0005 LUA-TX Ethernet +product MELCO LUA2TX5 0x0009 LUA2-TX Ethernet /* Metricom products */ product METRICOM RICOCHET_GS 0x0001 Ricochet GS @@ -630,6 +770,12 @@ product MICROSOFT SIDEWINDER 0x001a Sidewinder Precision Racing Wheel product MICROSOFT INTELLIEYE 0x0025 IntelliEye mouse product MICROSOFT INETPRO 0x002b Internet Pro +/* Microtech products */ +product MICROTECH SCSIDB25 0x0004 USB-SCSI-DB25 +product MICROTECH SCSIHD50 0x0005 USB-SCSI-HD50 +product MICROTECH DPCM 0x0006 USB CameraMate +product MICROTECH FREECOM 0xfc01 Freecom USB-IDE + /* Microtek products */ product MICROTEK 336CX 0x0094 Phantom 336CX - C3 scanner product MICROTEK X6U 0x0099 ScanMaker X6 - X6U @@ -642,6 +788,12 @@ product MICROTEK V6UL 0x80ac ScanMaker V6UL /* Midiman products */ product MIDIMAN MIDISPORT2X2 0x1001 Midisport 2x2 +/* Mitsumi products */ +product MITSUMI CDRRW 0x0000 CD-R/RW Drive + +/* Mobility products */ +product MOBILITY EA 0x0204 Ethernet + /* Motorola products */ product MOTOROLA MC141555 0x1555 MC141555 hub controller @@ -655,6 +807,9 @@ product MUSTEK 1200USB 0x0003 1200 scanner product MUSTEK 1200UB 0x0006 1200 UB scanner product MUSTEK MDC800 0xa800 MDC-800 digital camera +/* M-Systems products */ +product MSYSTEMS DISKONKEY 0x0010 DiskOnKey + /* National Semiconductor */ product NATIONAL BEARPAW 0x1000 BearPaw 1200 @@ -667,10 +822,14 @@ product NETCHIP TURBOCONNECT 0x1080 Turbo-Connect /* Netgear products */ product NETGEAR EA101 0x1001 Ethernet +product NETGEAR EA101X 0x1001 Ethernet /* Nikon products */ product NIKON E990 0x0102 Digital Camera E990 +/* Olympus products */ +product OLYMPUS C700 0x0105 C-700 Ultra Zoom + /* OmniVision Technologies products */ product OMNIVISION OV511 0x0511 OV511 Camera product OMNIVISION OV511PLUS 0xa511 OV511+ Camera @@ -678,6 +837,9 @@ product OMNIVISION OV511PLUS 0xa511 OV511+ Camera /* Palm Computing */ product PALM SERIAL 0x0080 USB Serial Adaptor +/* Panasonic products */ +product PANASONIC SDCAAE 0x1b00 MultiMediaCard Adapter + /* Peracom products */ product PERACOM SERIAL1 0x0001 Serial Converter product PERACOM ENET 0x0002 Ethernet @@ -688,6 +850,7 @@ product PERACOM ENET2 0x0005 Ethernet product PHILIPS DSS350 0x0101 DSS 350 Digital Speaker System product PHILIPS DSS 0x0104 DSS XXX Digital Speaker System product PHILIPS HUB 0x0201 hub +product PHILIPS PCA646VC 0x0303 PCA646VC PC Camera product PHILIPS PCVC680K 0x0308 PCVC680K Vesta Pro PC Camera product PHILIPS DSS150 0x0471 DSS 150 Digital Speaker System @@ -700,6 +863,13 @@ product PIENGINEERING PS2USB 0x020b PS2 to Mac Adapter /* PLX products */ product PLX TESTBOARD 0x9060 test board +/* PortGear products */ +product PORTGEAR EA8 0x0008 Ethernet +product PORTGEAR EA9 0x0008 Ethernet + +/* Portsmith products */ +product PORTSMITH EEA 0x3003 Express Ethernet + /* Primax products */ product PRIMAX G2X300 0x0300 G2-200 scanner product PRIMAX G2E300 0x0301 G2E-300 scanner @@ -720,11 +890,14 @@ product PRIMAX PCGAUMS1 0x4d04 Sony PCGA-UMS1 /* Prolific products */ product PROLIFIC PL2301 0x0000 PL2301 Host-Host interface product PROLIFIC PL2302 0x0001 PL2302 Host-Host interface -product PROLIFIC RSAQ2 0x04bb PL2303 Serial adapter (IODATA USB-RSAQ2) -product PROLIFIC PL2303 0x2303 PL2303 Serial adapter (ATEN/IOGEAR UC232A) -product PROLIFIC PL2305 0x2305 Parallel printer adapter +product PROLIFIC RSAQ2 0x04bb PL2303 Serial adapter +product PROLIFIC PL2303 0x2303 PL2303 Serial adapter +product PROLIFIC PL2305 0x2305 Parallel printer product PROLIFIC ATAPI4 0x2307 ATAPI-4 Bridge Controller +/* Putercom products */ +product PUTERCOM UPA100 0x047e USB-1284 BRIDGE + /* Qtronix products */ product QTRONIX 980N 0x2011 Scorpion-980N @@ -736,18 +909,35 @@ product RAINBOW IKEY2000 0x1200 i-Key 2000 /* Roland products */ product ROLAND UM1 0x0009 UM-1 MIDI I/F +product ROLAND UM880N 0x0014 EDIROL UM-880 MIDI I/F (native) +product ROLAND UM880G 0x0015 EDIROL UM-880 MIDI I/F (generic) /* Rockfire products */ product ROCKFIRE GAMEPAD 0x2033 gamepad 203USB /* SanDisk products */ product SANDISK IMAGEMATE 0x0001 USB ImageMate +product SANDISK SDDR31 0x0002 ImageMate SDDR-31 +product SANDISK SDDR12 0x0100 ImageMate SDDR-12 +product SANDISK SDDR09 0x0200 ImageMate SDDR-09 /* ScanLogic products */ product SCANLOGIC 336CX 0x0300 Phantom 336CX - C3 scanner +/* Shark products */ +product SHARK PA 0x0400 Pocket Adapter + /* Shuttle Technology products */ product SHUTTLE EUSB 0x0001 E-USB Bridge +product SHUTTLE EUSCSI 0x0002 eUSCSI Bridge +product SHUTTLE SDDR09 0x0003 ImageMate SDDR09 +product SHUTTLE ZIOMMC 0x0006 eUSB MultiMediaCard Adapter +product SHUTTLE HIFD 0x0007 Sony Hifd +product SHUTTLE EUSBATAPI 0x0009 eUSB ATA/ATAPI Adapter +product SHUTTLE CF 0x000a eUSB CompactFlash Adapter +product SHUTTLE EUSCSI_B 0x000b eUSCSI Bridge +product SHUTTLE EUSCSI_C 0x000c eUSCSI Bridge +product SHUTTLE CDRW 0x0101 CD-RW Device /* SIIG products */ product SIIG DIGIFILMREADER 0x0004 DigiFilm-Combo Reader @@ -761,19 +951,21 @@ product SIRIUS ROADSTER 0x0001 NetComm Roadster II 56 USB /* SmartBridges products */ product SMARTBRIDGES SMARTLINK 0x0001 SmartLink Ethernet +product SMARTBRIDGES SMARTNIC 0x0003 smartNIC 2 PnP Adapter /* SMC products */ product SMC 2102USB 0x0100 10Mbps Ethernet product SMC 2202USB 0x0200 10/100 Ethernet /* SOHOware products */ -product SOHOWARE NUB100 0x9100 10/100 USB Ethernet +product SOHOWARE NUB100 0x9100 10/100 Ethernet /* SOLID YEAR products */ product SOLIDYEAR KEYBOARD 0x2101 Keyboard /* SONY products */ product SONY DSC 0x0010 Sony DSC Cameras +product SONY MSACUS1 0x002d Memorystick MSAC-US1 product SONY MSC 0x0032 Sony MSC Memorystick Slot /* STMicroelectronics products */ @@ -785,11 +977,22 @@ product STSN STSN0001 0x0001 Internet Access Device /* Sun Microsystems products */ product SUN KEYBOARD 0x0005 Type 6 USB /* XXX The above is a North American PC style keyboard possibly */ +product SUN MOUSE 0x0100 Type 6 USB mouse /* Supra products */ product DIAMOND2 SUPRAEXPRESS56K 0x07da Supra Express 56K product DIAMOND2 SUPRA2890 0x0b4a SupraMax 2890 56K product DIAMOND2 RIO600USB 0x5001 Rio 600 +product DIAMOND2 RIO800USB 0x5002 Rio 800 USB + +/* Taugagreining products */ +product TAUGA CAMERAMATE 0x0005 CameraMate (DPCM_USB) + +/* TDK products */ +product TDK UPA9664 0x0115 USB-PDC Adapter UPA9664 +product TDK UCA1464 0x0116 USB-cdmaOne Adapter UCA1464 +product TDK UHA6400 0x0117 USB-PHS Adapter UHA6400 +product TDK UPA6400 0x0118 USB-PHS Adapter UPA6400 /* TEAC products */ product TEAC FD05PUB 0x0000 FD-05PUB @@ -816,9 +1019,10 @@ product UMAX ASTRA1220U 0x0010 Astra 1220U Scanner product UMAX ASTRA2000U 0x0030 Astra 2000U Scanner product UMAX ASTRA2100U 0x0130 Astra 2100U Scanner product UMAX ASTRA2200U 0x0230 Astra 2200U Scanner +product UMAX ASTRA3400 0x0060 Astra 3400 Scanner /* Universal Access products */ -product UNIACCESS PANACHE 0x0101 Panache Surf ISDN Adapter +product UNIACCESS PANACHE 0x0101 Panache Surf ISDN /* Vision products */ product VISION VC6452V002 0x0002 CPiA Camera @@ -836,6 +1040,9 @@ product WACOM CT0405U 0x0000 CT-0405-U Tablet product WACOM GRAPHIRE 0x0010 Graphire product WACOM INTUOSA5 0x0021 Intuos A5 +/* Xirlink products */ +product XIRLINK PCCAM 0x8080 IBM PC Camera + /* Y-E Data products */ product YEDATA FLASHBUSTERU 0x0000 Flashbuster-U @@ -849,4 +1056,5 @@ product YAMAHA UX256 0x1000 UX256 MIDI I/F product ZOOM 2986L 0x9700 2986L /* ZyXEL Communication Co. products */ +product ZYXEL OMNI56K 0x1500 Omni 56K Plus product ZYXEL 980N 0x2011 Scorpion-980N diff --git a/sys/dev/usb/usbdevs.h b/sys/dev/usb/usbdevs.h index 2f1733ca62f..07b0cd9cb8c 100644 --- a/sys/dev/usb/usbdevs.h +++ b/sys/dev/usb/usbdevs.h @@ -1,4 +1,4 @@ -/* $OpenBSD: usbdevs.h,v 1.35 2001/10/26 18:06:26 nate Exp $ */ +/* $OpenBSD: usbdevs.h,v 1.36 2001/10/31 04:24:44 nate Exp $ */ /* * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. @@ -47,10 +47,26 @@ /* * List of known USB vendors + * + * Please note that these IDs do not do anything. Adding an ID here and + * regenerating the usbdevs.h and usbdevs_data.h only makes a symbolic name + * available to the source code and does not change any functionality, nor + * does it make your device available to a specific driver. + * It will however make the descriptive string available if a device does not + * provide the string itself. + * + * After adding a vendor ID VNDR and a product ID PRDCT you will have the + * following extra defines: + * #define USB_VENDOR_VNDR 0x???? + * #define USB_PRODUCT_VNDR_PRDCT 0x???? + * + * You may have to add these defines to the respective probe routines to + * make the device recognised by the appropriate device driver. */ #define USB_VENDOR_AOX 0x03e8 /* AOX */ #define USB_VENDOR_ATMEL 0x03eb /* Atmel */ +#define USB_VENDOR_MITSUMI 0x03ee /* Mitsumi */ #define USB_VENDOR_HP 0x03f0 /* Hewlett Packard */ #define USB_VENDOR_ADAPTEC 0x03f3 /* Adaptec */ #define USB_VENDOR_NATIONAL 0x0400 /* National Semiconductor */ @@ -64,6 +80,7 @@ #define USB_VENDOR_CATC 0x0423 /* Computer Access Technology */ #define USB_VENDOR_GRAVIS 0x0428 /* Advanced Gravis Computer */ #define USB_VENDOR_SUN 0x0430 /* Sun Microsystems */ +#define USB_VENDOR_TAUGA 0x0436 /* Taugagreining HF */ #define USB_VENDOR_AMD 0x0438 /* Advanced Micro Devices */ #define USB_VENDOR_LEXMARK 0x043d /* Lexmark International */ #define USB_VENDOR_NANAO 0x0440 /* NANAO */ @@ -96,6 +113,7 @@ #define USB_VENDOR_EPSON 0x04b8 /* Seiko Epson */ #define USB_VENDOR_RAINBOW 0x04b9 /* Rainbow Technologies */ #define USB_VENDOR_IODATA 0x04bb /* I/O Data */ +#define USB_VENDOR_TDK 0x04bf /* TDK */ #define USB_VENDOR_3COMUSR 0x04c1 /* U.S. Robotics */ #define USB_VENDOR_METHODE 0x04c2 /* Methode Electronics Far East */ #define USB_VENDOR_MAXISWITCH 0x04c3 /* Maxi Switch */ @@ -113,6 +131,7 @@ #define USB_VENDOR_DIGI2 0x04d0 /* Digi */ #define USB_VENDOR_ITTCANON 0x04d1 /* ITT Canon */ #define USB_VENDOR_ALTEC 0x04d2 /* Altec Lansing */ +#define USB_VENDOR_PANASONIC 0x04da /* Panasonic (Matsushita) */ #define USB_VENDOR_SHUTTLE 0x04e6 /* Shuttle Technology */ #define USB_VENDOR_ANNABOOKS 0x04ed /* Annabooks */ #define USB_VENDOR_CHICONY 0x04f2 /* Chicony Electronics */ @@ -130,6 +149,7 @@ #define USB_VENDOR_ATI 0x0528 /* ATI Technologies */ #define USB_VENDOR_AKS 0x0529 /* Aladdin Knowledge Systems */ #define USB_VENDOR_UNIACCESS 0x0540 /* Universal Access */ +#define USB_VENDOR_XIRLINK 0x0545 /* Xirlink */ #define USB_VENDOR_ANCHOR 0x0547 /* Anchor Chips */ #define USB_VENDOR_SONY 0x054c /* Sony */ #define USB_VENDOR_VISION 0x0553 /* VLSI Vision */ @@ -143,6 +163,7 @@ #define USB_VENDOR_ETEK 0x056c /* e-TEK Labs */ #define USB_VENDOR_EIZO 0x056d /* EIZO */ #define USB_VENDOR_ELECOM 0x056e /* Elecom */ +#define USB_VENDOR_HAUPPAUGE 0x0573 /* Hauppauge Computer Works */ #define USB_VENDOR_BAFO 0x0576 /* BAFO/Quality Computer Accessories */ #define USB_VENDOR_YEDATA 0x057b /* Y-E Data */ #define USB_VENDOR_AVM 0x057c /* AVM */ @@ -164,6 +185,7 @@ #define USB_VENDOR_BRAINBOXES 0x05d1 /* Brainboxes Limited */ #define USB_VENDOR_AXIOHM 0x05d9 /* Axiohm Transaction Solutions */ #define USB_VENDOR_MICROTEK 0x05da /* Microtek */ +#define USB_VENDOR_LEXAR 0x05dc /* Lexar Media */ #define USB_VENDOR_SYMBOL 0x05e0 /* Symbol Technologies */ #define USB_VENDOR_GENESYS 0x05e3 /* Genesys Logic */ #define USB_VENDOR_FUJI 0x05e5 /* Fuji Electric */ @@ -191,12 +213,14 @@ #define USB_VENDOR_ACARD 0x0678 /* ACARD Technology */ #define USB_VENDOR_PROLIFIC 0x067b /* Prolific Technology */ #define USB_VENDOR_ADVANCELOGIC 0x0680 /* Avance Logic */ +#define USB_VENDOR_HAGIWARA 0x0693 /* Hagiwara Sys-Com */ #define USB_VENDOR_CTX 0x0698 /* Chuntex */ #define USB_VENDOR_ASKEY 0x069a /* Askey Computer */ #define USB_VENDOR_ALCATELT 0x06b9 /* Alcatel Telecom */ #define USB_VENDOR_AGFA 0x06bd /* AGFA-Gevaert NV */ #define USB_VENDOR_ASIAMD 0x06be /* Asia Microelectronic Development */ #define USB_VENDOR_BIZLINK 0x06c4 /* Bizlink International */ +#define USB_VENDOR_KEYSPAN 0x06cd /* Keyspan */ #define USB_VENDOR_AASHIMA 0x06d6 /* Aashima Technology B.V. */ #define USB_VENDOR_MULTITECH 0x06e0 /* MultiTech */ #define USB_VENDOR_ADS 0x06e1 /* ADS Technologies */ @@ -204,7 +228,9 @@ #define USB_VENDOR_SIRIUS 0x06ea /* Sirius Technologies */ #define USB_VENDOR_BOSTON 0x06fd /* Boston Acoustics */ #define USB_VENDOR_SMC 0x0707 /* Standard Microsystems */ +#define USB_VENDOR_PUTERCOM 0x0708 /* Putercom */ #define USB_VENDOR_MCT 0x0711 /* MCT */ +#define USB_VENDOR_DIGITALSTREAM 0x074e /* Digital Stream */ #define USB_VENDOR_AUREAL 0x0755 /* Aureal Semiconductor */ #define USB_VENDOR_MIDIMAN 0x0763 /* Midiman */ #define USB_VENDOR_GRIFFIN 0x077d /* Griffin Technology */ @@ -220,6 +246,7 @@ #define USB_VENDOR_COREGA 0x07aa /* Corega */ #define USB_VENDOR_FREECOM 0x07ab /* Freecom */ #define USB_VENDOR_MICROTECH 0x07af /* Microtech */ +#define USB_VENDOR_OLYMPUS 0x07b4 /* Olympus */ #define USB_VENDOR_ABOCOM 0x07b8 /* AboCom Systems */ #define USB_VENDOR_KEISOKUGIKEN 0x07c1 /* Keisokugiken */ #define USB_VENDOR_APG 0x07c5 /* APG Cash Drawer */ @@ -227,6 +254,7 @@ #define USB_VENDOR_ALLIEDTELESYN 0x07c9 /* Allied Telesyn International */ #define USB_VENDOR_AVERMEDIA 0x07ca /* AVerMedia Technologies */ #define USB_VENDOR_SIIG 0x07cc /* SIIG */ +#define USB_VENDOR_CASIO 0x07cf /* CASIO */ #define USB_VENDOR_APTIO 0x07d2 /* Aptio Products */ #define USB_VENDOR_ARASAN 0x07da /* Arasan Chip Systems */ #define USB_VENDOR_ALLIEDCABLE 0x07e6 /* Allied Cable */ @@ -240,8 +268,10 @@ #define USB_VENDOR_DIAMOND 0x0841 /* Diamond */ #define USB_VENDOR_NETGEAR 0x0846 /* BayNETGEAR */ #define USB_VENDOR_ACTIVEWIRE 0x0854 /* ActiveWire */ +#define USB_VENDOR_PORTGEAR 0x085a /* PortGear */ #define USB_VENDOR_METRICOM 0x0870 /* Metricom */ #define USB_VENDOR_ADESSOKBTEK 0x087c /* ADESSO/Kbtek America */ +#define USB_VENDOR_JATON 0x087d /* Jaton */ #define USB_VENDOR_APT 0x0880 /* APT Technologies */ #define USB_VENDOR_BOCARESEARCH 0x0885 /* Boca Research */ #define USB_VENDOR_ANDREA 0x08a8 /* Andrea Electronics */ @@ -251,6 +281,7 @@ #define USB_VENDOR_SMARTBRIDGES 0x08d1 /* SmartBridges */ #define USB_VENDOR_BILLIONTON 0x08dd /* Billionton Systems */ #define USB_VENDOR_EXTENDED 0x08e9 /* Extended Systems */ +#define USB_VENDOR_MSYSTEMS 0x08ec /* M-Systems */ #define USB_VENDOR_AUTHENTEC 0x08ff /* AuthenTec */ #define USB_VENDOR_ALATION 0x0910 /* Alation Systems */ #define USB_VENDOR_BIOMETRIC 0x0929 /* American Biometric Company */ @@ -258,6 +289,7 @@ #define USB_VENDOR_KINGSTON 0x0951 /* Kingston Technology */ #define USB_VENDOR_BLUEWATER 0x0956 /* BlueWater Systems */ #define USB_VENDOR_AGILENT 0x0957 /* Agilent Technologies */ +#define USB_VENDOR_PORTSMITH 0x095a /* Portsmith */ #define USB_VENDOR_ADIRONDACK 0x0976 /* Adirondack Wire & Cable */ #define USB_VENDOR_BECKHOFF 0x0978 /* Beckhoff */ #define USB_VENDOR_ALTIUS 0x09b3 /* Altius Solutions */ @@ -275,11 +307,16 @@ #define USB_VENDOR_ASAHIOPTICAL 0x0a17 /* Asahi Optical */ #define USB_VENDOR_BOCASYSTEMS 0x0a43 /* Boca Systems */ #define USB_VENDOR_BROADCOM 0x0a5c /* Broadcom */ +#define USB_VENDOR_GREENHOUSE 0x0a6b /* GREENHOUSE */ #define USB_VENDOR_GEOCAST 0x0a79 /* Geocast Network Systems */ #define USB_VENDOR_TODOS 0x0b0c /* Todos Data System */ +#define USB_VENDOR_AGATE 0x0c08 /* Agate Technologies */ #define USB_VENDOR_MOTOROLA 0x1063 /* Motorola */ #define USB_VENDOR_PLX 0x10b5 /* PLX */ +#define USB_VENDOR_ASANTE 0x10bd /* Asante */ #define USB_VENDOR_BELKIN2 0x1293 /* Belkin Components */ +#define USB_VENDOR_MOBILITY 0x1342 /* Mobility */ +#define USB_VENDOR_SHARK 0x13d2 /* Shark */ #define USB_VENDOR_SILICONPORTALS 0x1527 /* Silicon Portals */ #define USB_VENDOR_SOHOWARE 0x15e8 /* SOHOware */ #define USB_VENDOR_UMAX 0x1606 /* UMAX Data Systems */ @@ -298,8 +335,8 @@ #define USB_PRODUCT_3COM_HOMECONN 0x009d /* HomeConnect Camera */ #define USB_PRODUCT_3COM_3C19250 0x03E8 /* 3C19250 Ethernet */ #define USB_PRODUCT_3COM_USR56K 0x3021 /* U.S.Robotics 56000 */ - -#define USB_PRODUCT_3COM_3C460 0x11f8 /* HomeConnect Ethernet */ +#define USB_PRODUCT_3COM_3C460 0x11f8 /* HomeConnect 3C460 */ +#define USB_PRODUCT_3COM_3C460B 0x4601 /* HomeConnect 3C460B */ #define USB_PRODUCT_3COMUSR_OFFICECONN 0x0082 /* 3Com OfficeConnect Analog Modem */ #define USB_PRODUCT_3COMUSR_USRISDN 0x008f /* 3Com U.S. Robotics Pro ISDN TA */ @@ -307,7 +344,21 @@ #define USB_PRODUCT_3COMUSR_USR56K 0x3021 /* U.S.Robotics 56000 */ /* AboCom products */ -#define USB_PRODUCT_ABOCOM_URE450 0x4000 /* USB Ethernet */ +#define USB_PRODUCT_ABOCOM_XX1 0x110c /* XX1 */ +#define USB_PRODUCT_ABOCOM_XX2 0x200c /* XX2 */ +#define USB_PRODUCT_ABOCOM_URE450 0x4000 /* URE450 Ethernet */ +#define USB_PRODUCT_ABOCOM_XX3 0x4002 /* XX3 */ +#define USB_PRODUCT_ABOCOM_DSB650TX_PNA 0x4003 /* 1/10/100 ethernet */ +#define USB_PRODUCT_ABOCOM_XX4 0x4004 /* XX4 */ +#define USB_PRODUCT_ABOCOM_XX5 0x4007 /* XX5 */ +#define USB_PRODUCT_ABOCOM_XX6 0x400b /* XX6 */ +#define USB_PRODUCT_ABOCOM_XX7 0x400c /* XX7 */ +#define USB_PRODUCT_ABOCOM_XX8 0x4102 /* XX8 */ +#define USB_PRODUCT_ABOCOM_XX9 0x4104 /* XX9 */ +#define USB_PRODUCT_ABOCOM_XX10 0xabc1 /* XX10 */ + +/* Accton products */ +#define USB_PRODUCT_ACCTON_USB320_EC 0x1046 /* USB320-EC Ethernet */ /* Acer Peripherals products */ #define USB_PRODUCT_ACERP_ACERSCAN_C310U 0x12a6 /* Acerscan C310U */ @@ -321,9 +372,14 @@ /* ADMtek products */ #define USB_PRODUCT_ADMTEK_PEGASUS 0x0986 /* AN986 Ethernet */ +#define USB_PRODUCT_ADMTEK_PEGASUSII 0x8511 /* AN8511 Ethernet */ /* ADS products */ #define USB_PRODUCT_ADS_UBS10BT 0x0008 /* UBS-10BT Ethernet */ +#define USB_PRODUCT_ADS_UBS10BTX 0x0009 /* UBS-10BT Ethernet */ + +/* Agate Technologies products */ +#define USB_PRODUCT_AGATE_QDRIVE 0x0378 /* Q-Drive */ /* Agiler products */ #define USB_PRODUCT_ELECOM_MOUSE29UO 0x0002 /* mouse 29UO */ @@ -356,16 +412,20 @@ #define USB_PRODUCT_ANCHOR_EZLINK 0x2720 /* EZLINK */ /* AOX products */ -#define USB_PRODUCT_AOX_USB101 0x0008 /* USB Ethernet controller engine */ +#define USB_PRODUCT_AOX_USB101 0x0008 /* Ethernet controller engine */ /* Apple Computer products */ #define USB_PRODUCT_APPLE_OPTMOUSE 0x0302 /* Optical mouse */ #define USB_PRODUCT_APPLE_SPEAKERS 0x1101 /* Speakers */ +/* Asante products */ +#define USB_PRODUCT_ASANTE_EA 0x1427 /* Ethernet */ + /* ATen products */ -#define USB_PRODUCT_ATEN_UC1284 0x2001 /* Parallel printer adapter */ +#define USB_PRODUCT_ATEN_UC1284 0x2001 /* Parallel adapter */ #define USB_PRODUCT_ATEN_UC10T 0x2002 /* 10Mbps Ethernet */ #define USB_PRODUCT_ATEN_UC232A 0x2008 /* Serial adapter */ +#define USB_PRODUCT_ATEN_DSB650C 0x4000 /* DSB-650C */ /* Atmel Comp. products */ #define USB_PRODUCT_ATMEL_UHB124 0x3301 /* UHB124 hub */ @@ -375,10 +435,13 @@ /* Belkin products */ /*product BELKIN F5U111 0x???? F5U111 Ethernet */ -#define USB_PRODUCT_BELKIN2_F5U002 0x0002 /* F5U002 Parallel printer adapter */ +#define USB_PRODUCT_BELKIN2_F5U002 0x0002 /* F5U002 Parallel adapter */ /* Billionton products */ #define USB_PRODUCT_BILLIONTON_USB100 0x0986 /* USB100N 10/100 Ethernet */ +#define USB_PRODUCT_BILLIONTON_USBLP100 0x0987 /* USB100LP */ +#define USB_PRODUCT_BILLIONTON_USBEL100 0x0988 /* USB100EL */ +#define USB_PRODUCT_BILLIONTON_USBE100 0x8511 /* USBE100 */ /* Brother Industries products */ #define USB_PRODUCT_BROTHER_HL1050 0x0002 /* HL-1050 laser printer */ @@ -387,7 +450,9 @@ #define USB_PRODUCT_BTC_BTC7932 0x6782 /* Keyboard */ /* Canon products */ +#define USB_PRODUCT_CANON_N656U 0x2206 /* CANOSCAN N656U */ #define USB_PRODUCT_CANON_S10 0x3041 /* PowerShot S10 */ +#define USB_PRODUCT_CANON_S100 0x3045 /* PowerShot S100 */ /* CATC products */ #define USB_PRODUCT_CATC_NETMATE 0x000a /* Netmate Ethernet */ @@ -395,18 +460,22 @@ #define USB_PRODUCT_CATC_CHIEF 0x000d /* USB Chief Bus & Protocol Analyzer */ #define USB_PRODUCT_CATC_ANDROMEDA 0x1237 /* Andromeda hub */ +/* CASIO products */ +#define USB_PRODUCT_CASIO_NAMELAND 0x4001 /* CASIO Nameland EZ-USB */ + /* Cherry products */ -#define USB_PRODUCT_CHERRY_MY3000KBD 0x0001 /* My3000 */ -#define USB_PRODUCT_CHERRY_MY3000HUB 0x0003 /* My3000 */ +#define USB_PRODUCT_CHERRY_MY3000KBD 0x0001 /* My3000 keyboard */ +#define USB_PRODUCT_CHERRY_MY3000HUB 0x0003 /* My3000 hub */ /* Chic Technology products */ #define USB_PRODUCT_CHIC_MOUSE1 0x0001 /* mouse */ -#define USB_PRODUCT_CHIC_CYPRESS 0x0003 /* Cypress */ +#define USB_PRODUCT_CHIC_CYPRESS 0x0003 /* Cypress USB Mouse */ /* Chicony products */ -#define USB_PRODUCT_CHICONY_KB8933 0x0001 /* KB-8933 */ +#define USB_PRODUCT_CHICONY_KB8933 0x0001 /* KB-8933 keyboard */ /* Compaq products */ +#define USB_PRODUCT_COMPAQ_IPAQPOCKETPC 0x0003 /* iPAQ PocketPC */ #define USB_PRODUCT_COMPAQ_PJB100 0x504a /* Personal Jukebox PJB100 */ /* Connectix products */ @@ -430,13 +499,18 @@ /* D-Link products */ /*product DLINK DSBS25 0x0100 DSB-S25 serial adapter*/ +#define USB_PRODUCT_DLINK_DSB650TX4 0x200c /* 10/100 ethernet */ #define USB_PRODUCT_DLINK_DSB650C 0x4000 /* 10Mbps Ethernet */ +#define USB_PRODUCT_DLINK_DSB650TX1 0x4001 /* 10/100 ethernet */ #define USB_PRODUCT_DLINK_DSB650TX 0x4002 /* 10/100 Ethernet */ #define USB_PRODUCT_DLINK_DSB650TX_PNA 0x4003 /* 1/10/100 Ethernet */ -#define USB_PRODUCT_DLINK_DSB650 0xABC1 /* 10/100 Ethernet */ +#define USB_PRODUCT_DLINK_DSB650TX3 0x400b /* 10/100 ethernet */ +#define USB_PRODUCT_DLINK_DSB650TX2 0x4102 /* 10/100 ethernet */ +#define USB_PRODUCT_DLINK_DSB650 0xabc1 /* 10/100 Ethernet */ /* Dallas Semiconductor products */ #define USB_PRODUCT_DALLAS_J6502 0x4201 /* J-6502 speakers */ +#define USB_PRODUCT_DALLAS_USB_FOB_IBUTTON 0x2490 /* USB-FOB/iBUTTON */ /* Diamond products */ #define USB_PRODUCT_DIAMOND_RIO500USB 0x0001 /* Rio 500 USB */ @@ -446,12 +520,23 @@ #define USB_PRODUCT_DIGI_ACCELEPORT4 0x0004 /* AccelePort 4 */ #define USB_PRODUCT_DIGI_ACCELEPORT8 0x0008 /* AccelePort 8 */ +/* Digital Stream Corp. products */ +#define USB_PRODUCT_DIGITALSTREAM_PS2 0x0001 /* PS/2 Active Adapter */ + /* EIZO products */ #define USB_PRODUCT_EIZO_HUB 0x0000 /* hub */ #define USB_PRODUCT_EIZO_MONITOR 0x0001 /* monitor */ +/* Elecom products */ +#define USB_PRODUCT_ELECOM_MOUSE29UO 0x0002 /* mouse 29UO */ +#define USB_PRODUCT_ELECOM_LDUSBTX0 0x200c /* LD-USB/TX */ +#define USB_PRODUCT_ELECOM_LDUSBTX1 0x4002 /* LD-USB/TX */ +#define USB_PRODUCT_ELECOM_LDUSBTX2 0x400b /* LD-USB/TX */ +#define USB_PRODUCT_ELECOM_LDUSBTX3 0xabc1 /* LD-USB/TX */ + /* Elsa products */ #define USB_PRODUCT_ELSA_MODEM1 0x2265 /* ELSA */ +#define USB_PRODUCT_ELSA_USB2ETHERNET 0x3000 /* Microlink USB2Ethernet */ /* Entrega products */ #define USB_PRODUCT_ENTREGA_1S 0x0001 /* 1S serial connector */ @@ -460,10 +545,12 @@ #define USB_PRODUCT_ENTREGA_4S 0x0004 /* 4S serial connector */ #define USB_PRODUCT_ENTREGA_E45 0x0005 /* E45 Ethernet */ #define USB_PRODUCT_ENTREGA_CENTRONICS 0x0006 /* Centronics connector */ +#define USB_PRODUCT_ENTREGA_XX1 0x0008 /* Ethernet */ #define USB_PRODUCT_ENTREGA_1S9 0x0093 /* 1S9 serial connector */ #define USB_PRODUCT_ENTREGA_EZUSB 0x8000 /* EZ-USB */ /*product ENTREGA SERIAL 0x8001 DB25 Serial connector*/ #define USB_PRODUCT_ENTREGA_2U4S 0x8004 /* 2U4S serial connector/usb hub */ +#define USB_PRODUCT_ENTREGA_XX2 0x8005 /* Ethernet */ /*product ENTREGA SERIAL_DB9 0x8093 DB9 Serial connector*/ /* Epson products */ @@ -475,7 +562,10 @@ #define USB_PRODUCT_EPSON_610 0x0103 /* Perfection 610 scanner */ #define USB_PRODUCT_EPSON_1200 0x0104 /* Perfection 1200U / 1200Photo scanner */ #define USB_PRODUCT_EPSON_1600 0x0107 /* Expression 1600 scanner */ -#define USB_PRODUCT_EPSON_1640 0x010a /* Expression 1640SU scanner */ +#define USB_PRODUCT_EPSON_1640 0x010a /* Perfection 1640SU scanner */ +#define USB_PRODUCT_EPSON_1240 0x010b /* Perfection 1240U / 1240Photo scanner */ +#define USB_PRODUCT_EPSON_640U 0x010c /* Perfection 640U scanner */ +#define USB_PRODUCT_EPSON_1650 0x0110 /* Perfection 1650 scanner */ /* e-TEK Labs products */ #define USB_PRODUCT_ETEK_1COM 0x8007 /* Serial port */ @@ -486,6 +576,9 @@ /* Gravis products */ #define USB_PRODUCT_GRAVIS_GAMEPADPRO 0x4001 /* GamePad Pro */ +/* GREENHOUSE products */ +#define USB_PRODUCT_GREENHOUSE_KANA21 0x0001 /* CF-writer/MP3 Player */ + /* Griffin Technology */ #define USB_PRODUCT_GRIFFIN_IMATE 0x0405 /* iMate, ADB adapter */ @@ -498,20 +591,42 @@ /* Fuji photo products */ #define USB_PRODUCT_FUJIPHOTO_MASS0100 0x0100 /* Mass Storage */ +/* Hagiwara products */ +#define USB_PRODUCT_HAGIWARA_FGSM 0x0002 /* FlashGate SmartMediaReader */ +#define USB_PRODUCT_HAGIWARA_FGCF 0x0003 /* FlashGate CompactFlash Reader */ +#define USB_PRODUCT_HAGIWARA_FG 0x0005 /* FlashGate */ + /* Handspring */ #define USB_PRODUCT_HANDSPRING_VISOR 0x0100 /* Handspring Visor */ +/* Hauppauge Computer Works */ +#define USB_PRODUCT_HAUPPAUGE_WINTV_USB_FM 0x4d12 /* WinTV USB FM */ + /* HP products */ +#define USB_PRODUCT_HP_895C 0x0004 /* DeskJet 895C */ #define USB_PRODUCT_HP_4100C 0x0101 /* Scanjet 4100C */ #define USB_PRODUCT_HP_S20 0x0102 /* Photosmart S20 */ +#define USB_PRODUCT_HP_880C 0x0104 /* DeskJet 880C */ #define USB_PRODUCT_HP_4200C 0x0105 /* ScanJet 4200C */ +#define USB_PRODUCT_HP_CDWRITERPLUS 0x0107 /* CD-Writer Plus */ +#define USB_PRODUCT_HP_KBDHUB 0x010c /* Multimedia Keyboard Hub */ #define USB_PRODUCT_HP_6200C 0x0201 /* ScanJet 6200C */ #define USB_PRODUCT_HP_S20b 0x0202 /* PhotoSmart S20 */ +#define USB_PRODUCT_HP_815C 0x0204 /* DeskJet 815C */ #define USB_PRODUCT_HP_3300C 0x0205 /* ScanJet 3300C */ +#define USB_PRODUCT_HP_CDW8200 0x0207 /* CD-Writer Plus 8200e */ +#define USB_PRODUCT_HP_810C 0x0304 /* DeskJet 810C/812C */ +#define USB_PRODUCT_HP_4300C 0x0305 /* Scanjet 4300C */ +#define USB_PRODUCT_HP_G85XI 0x0311 /* OfficeJet G85xi */ #define USB_PRODUCT_HP_5200C 0x0401 /* Scanjet 5200C */ +#define USB_PRODUCT_HP_830C 0x0404 /* DeskJet 830C */ +#define USB_PRODUCT_HP_3400CSE 0x0405 /* ScanJet 3400cse */ #define USB_PRODUCT_HP_6300C 0x0601 /* Scanjet 6300C */ +#define USB_PRODUCT_HP_840C 0x0604 /* DeskJet 840c */ #define USB_PRODUCT_HP_5300C 0x0701 /* Scanjet 5300C */ +#define USB_PRODUCT_HP_930C 0x1204 /* DeskJet 930c */ #define USB_PRODUCT_HP_970CSE 0x1004 /* Deskjet 970Cse */ +#define USB_PRODUCT_HP_640C 0x2004 /* DeskJet 640c */ #define USB_PRODUCT_HP_P1100 0x3102 /* Photosmart P1100 */ /* HP products */ @@ -524,7 +639,8 @@ #define USB_PRODUCT_INSIDEOUT_EDGEPORT4 0x0001 /* EdgePort/4 serial ports */ /* In-System products */ -#define USB_PRODUCT_INSYSTEM_F5U002 0x0002 /* Parallel printer adapter */ +#define USB_PRODUCT_INSYSTEM_F5U002 0x0002 /* Parallel adapter */ +#define USB_PRODUCT_INSYSTEM_ATAPI 0x0031 /* ATAPI adapter */ #define USB_PRODUCT_INSYSTEM_ISD110 0x0200 /* IDE adapter ISD110 */ #define USB_PRODUCT_INSYSTEM_ISD105 0x0202 /* IDE adapter ISD105 */ #define USB_PRODUCT_INSYSTEM_USBCABLE 0x081a /* USB cable */ @@ -543,8 +659,8 @@ #define USB_PRODUCT_IOMEGA_ZIP100 0x0001 /* Zip 100 */ #define USB_PRODUCT_IOMEGA_ZIP250 0x0030 /* Zip 250 */ -/* Kawasaki products */ -#define USB_PRODUCT_KLSI_DUH3E10BT 0x0008 /* USB Ethernet controller engine */ +/* Jaton products */ +#define USB_PRODUCT_JATON_EDA 0x5704 /* Ethernet Device Adapter */ /* Kawatsu products */ #define USB_PRODUCT_KAWATSU_MH4000P 0x0003 /* MiniHub 4000P */ @@ -552,14 +668,26 @@ /* Keisokugiken Corp. products */ #define USB_PRODUCT_KEISOKUGIKEN_USBDAQ 0x0068 /* HKS-0200 USBDAQ */ -/* Kawasaki LSI products (?) */ +/* Kawasaki LSI products */ #define USB_PRODUCT_KLSI_DUH3E10BT 0x0008 /* 10BT Ethernet */ +#define USB_PRODUCT_KLSI_DUH3E10BTN 0x0009 /* 10BT Ethernet */ /* Kensington products */ #define USB_PRODUCT_KENSINGTON_ORBIT 0x1003 /* Orbit USB/PS2 trackball */ #define USB_PRODUCT_KENSINGTON_TURBOBALL 0x1005 /* TurboBall */ +#define USB_PRODUCT_KENSINGTON_ORBIT_MAC 0x1009 /* Orbit USB trackball for Mac */ + +/* Keyspan products */ +#define USB_PRODUCT_KEYSPAN_USA28 0x0101 /* USA-28 serial adapter */ +#define USB_PRODUCT_KEYSPAN_USA28X 0x0102 /* USA-28X serial adapter */ +#define USB_PRODUCT_KEYSPAN_USA19 0x0103 /* USA-19 serial adapter */ +#define USB_PRODUCT_KEYSPAN_USA18X 0x0105 /* USA-18X serial adapter */ +#define USB_PRODUCT_KEYSPAN_USA19W 0x0106 /* USA-19W serial adapter */ +#define USB_PRODUCT_KEYSPAN_USA49W 0x0109 /* USA-49W serial adapter */ +#define USB_PRODUCT_KEYSPAN_UIA10_NF 0x0201 /* UIA-10 remote control */ /* Kingston products */ +#define USB_PRODUCT_KINGSTON_XX1 0x0008 /* Ethernet */ #define USB_PRODUCT_KINGSTON_KNU101TX 0x000a /* KNU101TX Ethernet */ /* Kodak products */ @@ -580,16 +708,23 @@ #define USB_PRODUCT_KYE_VIVIDPRO 0x2001 /* ColorPage Vivid-Pro scanner */ /* LaCie products */ +#define USB_PRODUCT_LACIE_HD 0xa601 /* Hard Disk */ #define USB_PRODUCT_LACIE_CDRW 0xa602 /* CD R/W */ +/* Lexar products */ +#define USB_PRODUCT_LEXAR_JUMPSHOT 0x0001 /* jumpSHOT CompactFlash Reader */ + /* Lexmark products */ #define USB_PRODUCT_LEXMARK_S2450 0x0009 /* Optra S 2450 */ /* Linksys products */ +#define USB_PRODUCT_LINKSYS_MAUSB2 0x0105 /* Camedia MAUSB-2 */ +#define USB_PRODUCT_LINKSYS_USB10TX1 0x200c /* USB10TX */ #define USB_PRODUCT_LINKSYS_USB10T 0x2202 /* USB10T Ethernet */ #define USB_PRODUCT_LINKSYS_USB100TX 0x2203 /* USB100TX Ethernet */ #define USB_PRODUCT_LINKSYS_USB100H1 0x2204 /* USB100H1 Ethernet/HPNA */ #define USB_PRODUCT_LINKSYS_USB10TA 0x2206 /* USB10TA Ethernet */ +#define USB_PRODUCT_LINKSYS_USB10TX2 0x400b /* USB10TX */ /* Logitech products */ #define USB_PRODUCT_LOGITECH_M2452 0x0203 /* M2452 */ @@ -604,9 +739,13 @@ #define USB_PRODUCT_LOGITECH_MBA47 0xc002 /* M-BA47 mouse */ #define USB_PRODUCT_LOGITECH_WMMOUSE 0xc004 /* WingMan Gaming Mouse */ #define USB_PRODUCT_LOGITECH_BD58 0xc00c /* BD58 mouse */ +#define USB_PRODUCT_LOGITECH_UN58A 0xc030 /* iFeel Mouse */ #define USB_PRODUCT_LOGITECH_BB13 0xc401 /* USB-PS/2 Trackball */ #define USB_PRODUCT_LOGITECH_WMPAD 0xc208 /* WingMan GamePad Extreme */ #define USB_PRODUCT_LOGITECH_WMJOY 0xc281 /* WingMan Force joystick */ +#define USB_PRODUCT_LOGITECH_RK53 0xc501 /* Cordless mouse */ +#define USB_PRODUCT_LOGITECH_RB6 0xc503 /* Cordless keyboard */ +#define USB_PRODUCT_LOGITECH_CDO 0xc504 /* Cordless Desktop Optical */ #define USB_PRODUCT_LOGITECH_QUICKCAMPRO2 0xd001 /* QuickCam Pro */ /* Lucent products */ @@ -624,6 +763,7 @@ /* Melco, Inc products */ #define USB_PRODUCT_MELCO_LUATX1 0x0001 /* LUA-TX Ethernet */ #define USB_PRODUCT_MELCO_LUATX5 0x0005 /* LUA-TX Ethernet */ +#define USB_PRODUCT_MELCO_LUA2TX5 0x0009 /* LUA2-TX Ethernet */ /* Metricom products */ #define USB_PRODUCT_METRICOM_RICOCHET_GS 0x0001 /* Ricochet GS */ @@ -637,6 +777,12 @@ #define USB_PRODUCT_MICROSOFT_INTELLIEYE 0x0025 /* IntelliEye mouse */ #define USB_PRODUCT_MICROSOFT_INETPRO 0x002b /* Internet Pro */ +/* Microtech products */ +#define USB_PRODUCT_MICROTECH_SCSIDB25 0x0004 /* USB-SCSI-DB25 */ +#define USB_PRODUCT_MICROTECH_SCSIHD50 0x0005 /* USB-SCSI-HD50 */ +#define USB_PRODUCT_MICROTECH_DPCM 0x0006 /* USB CameraMate */ +#define USB_PRODUCT_MICROTECH_FREECOM 0xfc01 /* Freecom USB-IDE */ + /* Microtek products */ #define USB_PRODUCT_MICROTEK_336CX 0x0094 /* Phantom 336CX - C3 scanner */ #define USB_PRODUCT_MICROTEK_X6U 0x0099 /* ScanMaker X6 - X6U */ @@ -649,6 +795,12 @@ /* Midiman products */ #define USB_PRODUCT_MIDIMAN_MIDISPORT2X2 0x1001 /* Midisport 2x2 */ +/* Mitsumi products */ +#define USB_PRODUCT_MITSUMI_CDRRW 0x0000 /* CD-R/RW Drive */ + +/* Mobility products */ +#define USB_PRODUCT_MOBILITY_EA 0x0204 /* Ethernet */ + /* Motorola products */ #define USB_PRODUCT_MOTOROLA_MC141555 0x1555 /* MC141555 hub controller */ @@ -662,6 +814,9 @@ #define USB_PRODUCT_MUSTEK_1200UB 0x0006 /* 1200 UB scanner */ #define USB_PRODUCT_MUSTEK_MDC800 0xa800 /* MDC-800 digital camera */ +/* M-Systems products */ +#define USB_PRODUCT_MSYSTEMS_DISKONKEY 0x0010 /* DiskOnKey */ + /* National Semiconductor */ #define USB_PRODUCT_NATIONAL_BEARPAW 0x1000 /* BearPaw 1200 */ @@ -674,10 +829,14 @@ /* Netgear products */ #define USB_PRODUCT_NETGEAR_EA101 0x1001 /* Ethernet */ +#define USB_PRODUCT_NETGEAR_EA101X 0x1001 /* Ethernet */ /* Nikon products */ #define USB_PRODUCT_NIKON_E990 0x0102 /* Digital Camera E990 */ +/* Olympus products */ +#define USB_PRODUCT_OLYMPUS_C700 0x0105 /* C-700 Ultra Zoom */ + /* OmniVision Technologies products */ #define USB_PRODUCT_OMNIVISION_OV511 0x0511 /* OV511 Camera */ #define USB_PRODUCT_OMNIVISION_OV511PLUS 0xa511 /* OV511+ Camera */ @@ -685,6 +844,9 @@ /* Palm Computing */ #define USB_PRODUCT_PALM_SERIAL 0x0080 /* USB Serial Adaptor */ +/* Panasonic products */ +#define USB_PRODUCT_PANASONIC_SDCAAE 0x1b00 /* MultiMediaCard Adapter */ + /* Peracom products */ #define USB_PRODUCT_PERACOM_SERIAL1 0x0001 /* Serial Converter */ #define USB_PRODUCT_PERACOM_ENET 0x0002 /* Ethernet */ @@ -695,6 +857,7 @@ #define USB_PRODUCT_PHILIPS_DSS350 0x0101 /* DSS 350 Digital Speaker System */ #define USB_PRODUCT_PHILIPS_DSS 0x0104 /* DSS XXX Digital Speaker System */ #define USB_PRODUCT_PHILIPS_HUB 0x0201 /* hub */ +#define USB_PRODUCT_PHILIPS_PCA646VC 0x0303 /* PCA646VC PC Camera */ #define USB_PRODUCT_PHILIPS_PCVC680K 0x0308 /* PCVC680K Vesta Pro PC Camera */ #define USB_PRODUCT_PHILIPS_DSS150 0x0471 /* DSS 150 Digital Speaker System */ @@ -707,6 +870,13 @@ /* PLX products */ #define USB_PRODUCT_PLX_TESTBOARD 0x9060 /* test board */ +/* PortGear products */ +#define USB_PRODUCT_PORTGEAR_EA8 0x0008 /* Ethernet */ +#define USB_PRODUCT_PORTGEAR_EA9 0x0008 /* Ethernet */ + +/* Portsmith products */ +#define USB_PRODUCT_PORTSMITH_EEA 0x3003 /* Express Ethernet */ + /* Primax products */ #define USB_PRODUCT_PRIMAX_G2X300 0x0300 /* G2-200 scanner */ #define USB_PRODUCT_PRIMAX_G2E300 0x0301 /* G2E-300 scanner */ @@ -727,11 +897,14 @@ /* Prolific products */ #define USB_PRODUCT_PROLIFIC_PL2301 0x0000 /* PL2301 Host-Host interface */ #define USB_PRODUCT_PROLIFIC_PL2302 0x0001 /* PL2302 Host-Host interface */ -#define USB_PRODUCT_PROLIFIC_RSAQ2 0x04bb /* PL2303 Serial adapter (IODATA USB-RSAQ2) */ -#define USB_PRODUCT_PROLIFIC_PL2303 0x2303 /* PL2303 Serial adapter (ATEN/IOGEAR UC232A) */ -#define USB_PRODUCT_PROLIFIC_PL2305 0x2305 /* Parallel printer adapter */ +#define USB_PRODUCT_PROLIFIC_RSAQ2 0x04bb /* PL2303 Serial adapter */ +#define USB_PRODUCT_PROLIFIC_PL2303 0x2303 /* PL2303 Serial adapter */ +#define USB_PRODUCT_PROLIFIC_PL2305 0x2305 /* Parallel printer */ #define USB_PRODUCT_PROLIFIC_ATAPI4 0x2307 /* ATAPI-4 Bridge Controller */ +/* Putercom products */ +#define USB_PRODUCT_PUTERCOM_UPA100 0x047e /* USB-1284 BRIDGE */ + /* Qtronix products */ #define USB_PRODUCT_QTRONIX_980N 0x2011 /* Scorpion-980N */ @@ -743,18 +916,35 @@ /* Roland products */ #define USB_PRODUCT_ROLAND_UM1 0x0009 /* UM-1 MIDI I/F */ +#define USB_PRODUCT_ROLAND_UM880N 0x0014 /* EDIROL UM-880 MIDI I/F (native) */ +#define USB_PRODUCT_ROLAND_UM880G 0x0015 /* EDIROL UM-880 MIDI I/F (generic) */ /* Rockfire products */ #define USB_PRODUCT_ROCKFIRE_GAMEPAD 0x2033 /* gamepad 203USB */ /* SanDisk products */ #define USB_PRODUCT_SANDISK_IMAGEMATE 0x0001 /* USB ImageMate */ +#define USB_PRODUCT_SANDISK_SDDR31 0x0002 /* ImageMate SDDR-31 */ +#define USB_PRODUCT_SANDISK_SDDR12 0x0100 /* ImageMate SDDR-12 */ +#define USB_PRODUCT_SANDISK_SDDR09 0x0200 /* ImageMate SDDR-09 */ /* ScanLogic products */ #define USB_PRODUCT_SCANLOGIC_336CX 0x0300 /* Phantom 336CX - C3 scanner */ +/* Shark products */ +#define USB_PRODUCT_SHARK_PA 0x0400 /* Pocket Adapter */ + /* Shuttle Technology products */ #define USB_PRODUCT_SHUTTLE_EUSB 0x0001 /* E-USB Bridge */ +#define USB_PRODUCT_SHUTTLE_EUSCSI 0x0002 /* eUSCSI Bridge */ +#define USB_PRODUCT_SHUTTLE_SDDR09 0x0003 /* ImageMate SDDR09 */ +#define USB_PRODUCT_SHUTTLE_ZIOMMC 0x0006 /* eUSB MultiMediaCard Adapter */ +#define USB_PRODUCT_SHUTTLE_HIFD 0x0007 /* Sony Hifd */ +#define USB_PRODUCT_SHUTTLE_EUSBATAPI 0x0009 /* eUSB ATA/ATAPI Adapter */ +#define USB_PRODUCT_SHUTTLE_CF 0x000a /* eUSB CompactFlash Adapter */ +#define USB_PRODUCT_SHUTTLE_EUSCSI_B 0x000b /* eUSCSI Bridge */ +#define USB_PRODUCT_SHUTTLE_EUSCSI_C 0x000c /* eUSCSI Bridge */ +#define USB_PRODUCT_SHUTTLE_CDRW 0x0101 /* CD-RW Device */ /* SIIG products */ #define USB_PRODUCT_SIIG_DIGIFILMREADER 0x0004 /* DigiFilm-Combo Reader */ @@ -768,19 +958,21 @@ /* SmartBridges products */ #define USB_PRODUCT_SMARTBRIDGES_SMARTLINK 0x0001 /* SmartLink Ethernet */ +#define USB_PRODUCT_SMARTBRIDGES_SMARTNIC 0x0003 /* smartNIC 2 PnP Adapter */ /* SMC products */ #define USB_PRODUCT_SMC_2102USB 0x0100 /* 10Mbps Ethernet */ #define USB_PRODUCT_SMC_2202USB 0x0200 /* 10/100 Ethernet */ /* SOHOware products */ -#define USB_PRODUCT_SOHOWARE_NUB100 0x9100 /* 10/100 USB Ethernet */ +#define USB_PRODUCT_SOHOWARE_NUB100 0x9100 /* 10/100 Ethernet */ /* SOLID YEAR products */ #define USB_PRODUCT_SOLIDYEAR_KEYBOARD 0x2101 /* Keyboard */ /* SONY products */ #define USB_PRODUCT_SONY_DSC 0x0010 /* Sony DSC Cameras */ +#define USB_PRODUCT_SONY_MSACUS1 0x002d /* Memorystick MSAC-US1 */ #define USB_PRODUCT_SONY_MSC 0x0032 /* Sony MSC Memorystick Slot */ /* STMicroelectronics products */ @@ -792,11 +984,22 @@ /* Sun Microsystems products */ #define USB_PRODUCT_SUN_KEYBOARD 0x0005 /* Type 6 USB */ /* XXX The above is a North American PC style keyboard possibly */ +#define USB_PRODUCT_SUN_MOUSE 0x0100 /* Type 6 USB mouse */ /* Supra products */ #define USB_PRODUCT_DIAMOND2_SUPRAEXPRESS56K 0x07da /* Supra Express 56K */ #define USB_PRODUCT_DIAMOND2_SUPRA2890 0x0b4a /* SupraMax 2890 56K */ #define USB_PRODUCT_DIAMOND2_RIO600USB 0x5001 /* Rio 600 */ +#define USB_PRODUCT_DIAMOND2_RIO800USB 0x5002 /* Rio 800 USB */ + +/* Taugagreining products */ +#define USB_PRODUCT_TAUGA_CAMERAMATE 0x0005 /* CameraMate (DPCM_USB) */ + +/* TDK products */ +#define USB_PRODUCT_TDK_UPA9664 0x0115 /* USB-PDC Adapter UPA9664 */ +#define USB_PRODUCT_TDK_UCA1464 0x0116 /* USB-cdmaOne Adapter UCA1464 */ +#define USB_PRODUCT_TDK_UHA6400 0x0117 /* USB-PHS Adapter UHA6400 */ +#define USB_PRODUCT_TDK_UPA6400 0x0118 /* USB-PHS Adapter UPA6400 */ /* TEAC products */ #define USB_PRODUCT_TEAC_FD05PUB 0x0000 /* FD-05PUB */ @@ -823,9 +1026,10 @@ #define USB_PRODUCT_UMAX_ASTRA2000U 0x0030 /* Astra 2000U Scanner */ #define USB_PRODUCT_UMAX_ASTRA2100U 0x0130 /* Astra 2100U Scanner */ #define USB_PRODUCT_UMAX_ASTRA2200U 0x0230 /* Astra 2200U Scanner */ +#define USB_PRODUCT_UMAX_ASTRA3400 0x0060 /* Astra 3400 Scanner */ /* Universal Access products */ -#define USB_PRODUCT_UNIACCESS_PANACHE 0x0101 /* Panache Surf ISDN Adapter */ +#define USB_PRODUCT_UNIACCESS_PANACHE 0x0101 /* Panache Surf ISDN */ /* Vision products */ #define USB_PRODUCT_VISION_VC6452V002 0x0002 /* CPiA Camera */ @@ -843,6 +1047,9 @@ #define USB_PRODUCT_WACOM_GRAPHIRE 0x0010 /* Graphire */ #define USB_PRODUCT_WACOM_INTUOSA5 0x0021 /* Intuos A5 */ +/* Xirlink products */ +#define USB_PRODUCT_XIRLINK_PCCAM 0x8080 /* IBM PC Camera */ + /* Y-E Data products */ #define USB_PRODUCT_YEDATA_FLASHBUSTERU 0x0000 /* Flashbuster-U */ @@ -856,4 +1063,5 @@ #define USB_PRODUCT_ZOOM_2986L 0x9700 /* 2986L */ /* ZyXEL Communication Co. products */ +#define USB_PRODUCT_ZYXEL_OMNI56K 0x1500 /* Omni 56K Plus */ #define USB_PRODUCT_ZYXEL_980N 0x2011 /* Scorpion-980N */ diff --git a/sys/dev/usb/usbdevs_data.h b/sys/dev/usb/usbdevs_data.h index dfb6aa2b023..782c55b35d3 100644 --- a/sys/dev/usb/usbdevs_data.h +++ b/sys/dev/usb/usbdevs_data.h @@ -1,4 +1,4 @@ -/* $OpenBSD: usbdevs_data.h,v 1.35 2001/10/26 18:06:26 nate Exp $ */ +/* $OpenBSD: usbdevs_data.h,v 1.36 2001/10/31 04:24:44 nate Exp $ */ /* * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. @@ -45,2146 +45,4086 @@ * POSSIBILITY OF SUCH DAMAGE. */ -const struct usb_known_product usb_known_products[] = { +const struct usb_knowndev usb_knowndevs[] = { { USB_VENDOR_3COM, USB_PRODUCT_3COM_HOMECONN, + 0, + "3Com", "HomeConnect Camera", }, { USB_VENDOR_3COM, USB_PRODUCT_3COM_3C19250, + 0, + "3Com", "3C19250 Ethernet", }, { USB_VENDOR_3COM, USB_PRODUCT_3COM_USR56K, + 0, + "3Com", "U.S.Robotics 56000", }, { USB_VENDOR_3COM, USB_PRODUCT_3COM_3C460, - "HomeConnect Ethernet", + 0, + "3Com", + "HomeConnect 3C460", + }, + { + USB_VENDOR_3COM, USB_PRODUCT_3COM_3C460B, + 0, + "3Com", + "HomeConnect 3C460B", }, { USB_VENDOR_3COMUSR, USB_PRODUCT_3COMUSR_OFFICECONN, + 0, + "U.S. Robotics", "3Com OfficeConnect Analog Modem", }, { USB_VENDOR_3COMUSR, USB_PRODUCT_3COMUSR_USRISDN, + 0, + "U.S. Robotics", "3Com U.S. Robotics Pro ISDN TA", }, { USB_VENDOR_3COMUSR, USB_PRODUCT_3COMUSR_HOMECONN, + 0, + "U.S. Robotics", "3Com HomeConnect camera", }, { USB_VENDOR_3COMUSR, USB_PRODUCT_3COMUSR_USR56K, + 0, + "U.S. Robotics", "U.S.Robotics 56000", }, { + USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX1, + 0, + "AboCom Systems", + "XX1", + }, + { + USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX2, + 0, + "AboCom Systems", + "XX2", + }, + { USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_URE450, - "USB Ethernet", + 0, + "AboCom Systems", + "URE450 Ethernet", + }, + { + USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX3, + 0, + "AboCom Systems", + "XX3", + }, + { + USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_DSB650TX_PNA, + 0, + "AboCom Systems", + "1/10/100 ethernet", + }, + { + USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX4, + 0, + "AboCom Systems", + "XX4", + }, + { + USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX5, + 0, + "AboCom Systems", + "XX5", + }, + { + USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX6, + 0, + "AboCom Systems", + "XX6", + }, + { + USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX7, + 0, + "AboCom Systems", + "XX7", + }, + { + USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX8, + 0, + "AboCom Systems", + "XX8", + }, + { + USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX9, + 0, + "AboCom Systems", + "XX9", + }, + { + USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX10, + 0, + "AboCom Systems", + "XX10", + }, + { + USB_VENDOR_ACCTON, USB_PRODUCT_ACCTON_USB320_EC, + 0, + "Accton Technology", + "USB320-EC Ethernet", }, { USB_VENDOR_ACERP, USB_PRODUCT_ACERP_ACERSCAN_C310U, + 0, + "Acer Peripherals", "Acerscan C310U", }, { USB_VENDOR_ACERP, USB_PRODUCT_ACERP_ACERSCAN_320U, + 0, + "Acer Peripherals", "Acerscan 320U", }, { USB_VENDOR_ACERP, USB_PRODUCT_ACERP_ACERSCAN_640U, + 0, + "Acer Peripherals", "Acerscan 640U", }, { USB_VENDOR_ACERP, USB_PRODUCT_ACERP_ACERSCAN_620U, + 0, + "Acer Peripherals", "Acerscan 620U", }, { USB_VENDOR_ACTIVEWIRE, USB_PRODUCT_ACTIVEWIRE_IOBOARD, + 0, + "ActiveWire", "I/O Board", }, { USB_VENDOR_ACTIVEWIRE, USB_PRODUCT_ACTIVEWIRE_IOBOARD_FW1, + 0, + "ActiveWire", "I/O Board, rev. 1", }, { USB_VENDOR_ADMTEK, USB_PRODUCT_ADMTEK_PEGASUS, + 0, + "ADMtek", "AN986 Ethernet", }, { + USB_VENDOR_ADMTEK, USB_PRODUCT_ADMTEK_PEGASUSII, + 0, + "ADMtek", + "AN8511 Ethernet", + }, + { USB_VENDOR_ADS, USB_PRODUCT_ADS_UBS10BT, + 0, + "ADS Technologies", "UBS-10BT Ethernet", }, { + USB_VENDOR_ADS, USB_PRODUCT_ADS_UBS10BTX, + 0, + "ADS Technologies", + "UBS-10BT Ethernet", + }, + { + USB_VENDOR_AGATE, USB_PRODUCT_AGATE_QDRIVE, + 0, + "Agate Technologies", + "Q-Drive", + }, + { USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_MOUSE29UO, + 0, + "Elecom", "mouse 29UO", }, { USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCAN1212U, + 0, + "AGFA-Gevaert NV", "SnapScan 1212U", }, { USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANTOUCH, + 0, + "AGFA-Gevaert NV", "SnapScan Touch", }, { USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCAN1212U2, + 0, + "AGFA-Gevaert NV", "SnapScan 1212U", }, { USB_VENDOR_AKS, USB_PRODUCT_AKS_USBHASP, + 0, + "Aladdin Knowledge Systems", "USB-HASP 0.06", }, { USB_VENDOR_ALCOR2, USB_PRODUCT_ALCOR2_KBD_HUB, + 0, + "Alcor Micro", "Kbd Hub", }, { USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_MA_KBD_HUB, + 0, + "Alcor Micro", "MacAlly Kbd Hub", }, { USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_AU9814, + 0, + "Alcor Micro", "AU9814 Hub", }, { USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_SM_KBD, + 0, + "Alcor Micro", "MicroConnectors/StrongMan", }, { USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_NEC_KBD_HUB, + 0, + "Alcor Micro", "NEC Kbd Hub", }, { USB_VENDOR_ALTEC, USB_PRODUCT_ALTEC_ADA70, + 0, + "Altec Lansing", "ADA70 Speakers", }, { USB_VENDOR_ALTEC, USB_PRODUCT_ALTEC_ASC495, + 0, + "Altec Lansing", "ASC495 Speakers", }, { USB_VENDOR_APC, USB_PRODUCT_APC_UPSPRO500, + 0, + "American Power Conversion", "Back-UPS Pro 500", }, { USB_VENDOR_ANCHOR, USB_PRODUCT_ANCHOR_EZUSB, + 0, + "Anchor Chips", "EZUSB", }, { USB_VENDOR_ANCHOR, USB_PRODUCT_ANCHOR_EZLINK, + 0, + "Anchor Chips", "EZLINK", }, { USB_VENDOR_AOX, USB_PRODUCT_AOX_USB101, - "USB Ethernet controller engine", + 0, + "AOX", + "Ethernet controller engine", }, { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_OPTMOUSE, + 0, + "Apple Computer", "Optical mouse", }, { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_SPEAKERS, + 0, + "Apple Computer", "Speakers", }, { + USB_VENDOR_ASANTE, USB_PRODUCT_ASANTE_EA, + 0, + "Asante", + "Ethernet", + }, + { USB_VENDOR_ATEN, USB_PRODUCT_ATEN_UC1284, - "Parallel printer adapter", + 0, + "ATEN International", + "Parallel adapter", }, { USB_VENDOR_ATEN, USB_PRODUCT_ATEN_UC10T, + 0, + "ATEN International", "10Mbps Ethernet", }, { USB_VENDOR_ATEN, USB_PRODUCT_ATEN_UC232A, + 0, + "ATEN International", "Serial adapter", }, { + USB_VENDOR_ATEN, USB_PRODUCT_ATEN_DSB650C, + 0, + "ATEN International", + "DSB-650C", + }, + { USB_VENDOR_ATMEL, USB_PRODUCT_ATMEL_UHB124, + 0, + "Atmel", "UHB124 hub", }, { USB_VENDOR_AVISION, USB_PRODUCT_AVISION_1200U, + 0, + "Avision", "1200U scanner", }, { USB_VENDOR_BELKIN2, USB_PRODUCT_BELKIN2_F5U002, - "F5U002 Parallel printer adapter", + 0, + "Belkin Components", + "F5U002 Parallel adapter", }, { USB_VENDOR_BILLIONTON, USB_PRODUCT_BILLIONTON_USB100, + 0, + "Billionton Systems", "USB100N 10/100 Ethernet", }, { + USB_VENDOR_BILLIONTON, USB_PRODUCT_BILLIONTON_USBLP100, + 0, + "Billionton Systems", + "USB100LP", + }, + { + USB_VENDOR_BILLIONTON, USB_PRODUCT_BILLIONTON_USBEL100, + 0, + "Billionton Systems", + "USB100EL", + }, + { + USB_VENDOR_BILLIONTON, USB_PRODUCT_BILLIONTON_USBE100, + 0, + "Billionton Systems", + "USBE100", + }, + { USB_VENDOR_BROTHER, USB_PRODUCT_BROTHER_HL1050, + 0, + "Brother Industries", "HL-1050 laser printer", }, { USB_VENDOR_BTC, USB_PRODUCT_BTC_BTC7932, + 0, + "Behavior Tech. Computer", "Keyboard", }, { + USB_VENDOR_CANON, USB_PRODUCT_CANON_N656U, + 0, + "Canon", + "CANOSCAN N656U", + }, + { USB_VENDOR_CANON, USB_PRODUCT_CANON_S10, + 0, + "Canon", "PowerShot S10", }, { + USB_VENDOR_CANON, USB_PRODUCT_CANON_S100, + 0, + "Canon", + "PowerShot S100", + }, + { USB_VENDOR_CATC, USB_PRODUCT_CATC_NETMATE, + 0, + "Computer Access Technology", "Netmate Ethernet", }, { USB_VENDOR_CATC, USB_PRODUCT_CATC_NETMATE2, + 0, + "Computer Access Technology", "Netmate2 Ethernet", }, { USB_VENDOR_CATC, USB_PRODUCT_CATC_CHIEF, + 0, + "Computer Access Technology", "USB Chief Bus & Protocol Analyzer", }, { USB_VENDOR_CATC, USB_PRODUCT_CATC_ANDROMEDA, + 0, + "Computer Access Technology", "Andromeda hub", }, { + USB_VENDOR_CASIO, USB_PRODUCT_CASIO_NAMELAND, + 0, + "CASIO", + "CASIO Nameland EZ-USB", + }, + { USB_VENDOR_CHERRY, USB_PRODUCT_CHERRY_MY3000KBD, - "My3000", + 0, + "Cherry Mikroschalter", + "My3000 keyboard", }, { USB_VENDOR_CHERRY, USB_PRODUCT_CHERRY_MY3000HUB, - "My3000", + 0, + "Cherry Mikroschalter", + "My3000 hub", }, { USB_VENDOR_CHIC, USB_PRODUCT_CHIC_MOUSE1, + 0, + "Chic Technology", "mouse", }, { USB_VENDOR_CHIC, USB_PRODUCT_CHIC_CYPRESS, - "Cypress", + 0, + "Chic Technology", + "Cypress USB Mouse", }, { USB_VENDOR_CHICONY, USB_PRODUCT_CHICONY_KB8933, - "KB-8933", + 0, + "Chicony Electronics", + "KB-8933 keyboard", + }, + { + USB_VENDOR_COMPAQ, USB_PRODUCT_COMPAQ_IPAQPOCKETPC, + 0, + "Compaq", + "iPAQ PocketPC", }, { USB_VENDOR_COMPAQ, USB_PRODUCT_COMPAQ_PJB100, + 0, + "Compaq", "Personal Jukebox PJB100", }, { USB_VENDOR_CONNECTIX, USB_PRODUCT_CONNECTIX_QUICKCAM, + 0, + "Connectix", "QuickCam", }, { USB_VENDOR_COREGA, USB_PRODUCT_COREGA_ETHER_USB_T, + 0, + "Corega", "Ether USB-T", }, { USB_VENDOR_COREGA, USB_PRODUCT_COREGA_FETHER_USB_TX, + 0, + "Corega", "FEther USB-TX", }, { USB_VENDOR_CREATIVELABS, USB_PRODUCT_CREATIVELABS_NOMAD_II, + 0, + "Creative Labs", "Nomad II", }, { USB_VENDOR_CREATIVELABS, USB_PRODUCT_CREATIVELABS_NOMAD_IIMG, + 0, + "Creative Labs", "Nomad II MG", }, { USB_VENDOR_CTX, USB_PRODUCT_CTX_EX1300, + 0, + "Chuntex", "Ex1300 hub", }, { USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_MOUSE, + 0, + "Cypress Semiconductor", "mouse", }, { USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_THERMO, + 0, + "Cypress Semiconductor", "thermometer", }, { USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_FMRADIO, + 0, + "Cypress Semiconductor", "FM Radio", }, { + USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX4, + 0, + "D-Link", + "10/100 ethernet", + }, + { USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650C, + 0, + "D-Link", "10Mbps Ethernet", }, { + USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX1, + 0, + "D-Link", + "10/100 ethernet", + }, + { USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX, + 0, + "D-Link", "10/100 Ethernet", }, { USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX_PNA, + 0, + "D-Link", "1/10/100 Ethernet", }, { + USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX3, + 0, + "D-Link", + "10/100 ethernet", + }, + { + USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX2, + 0, + "D-Link", + "10/100 ethernet", + }, + { USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650, + 0, + "D-Link", "10/100 Ethernet", }, { USB_VENDOR_DALLAS, USB_PRODUCT_DALLAS_J6502, + 0, + "Dallas Semiconductor", "J-6502 speakers", }, { + USB_VENDOR_DALLAS, USB_PRODUCT_DALLAS_USB_FOB_IBUTTON, + 0, + "Dallas Semiconductor", + "USB-FOB/iBUTTON", + }, + { USB_VENDOR_DIAMOND, USB_PRODUCT_DIAMOND_RIO500USB, + 0, + "Diamond", "Rio 500 USB", }, { USB_VENDOR_DIGI, USB_PRODUCT_DIGI_ACCELEPORT2, + 0, + "Digi International", "AccelePort 2", }, { USB_VENDOR_DIGI, USB_PRODUCT_DIGI_ACCELEPORT4, + 0, + "Digi International", "AccelePort 4", }, { USB_VENDOR_DIGI, USB_PRODUCT_DIGI_ACCELEPORT8, + 0, + "Digi International", "AccelePort 8", }, { + USB_VENDOR_DIGITALSTREAM, USB_PRODUCT_DIGITALSTREAM_PS2, + 0, + "Digital Stream", + "PS/2 Active Adapter", + }, + { USB_VENDOR_EIZO, USB_PRODUCT_EIZO_HUB, + 0, + "EIZO", "hub", }, { USB_VENDOR_EIZO, USB_PRODUCT_EIZO_MONITOR, + 0, + "EIZO", "monitor", }, { + USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_MOUSE29UO, + 0, + "Elecom", + "mouse 29UO", + }, + { + USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSBTX0, + 0, + "Elecom", + "LD-USB/TX", + }, + { + USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSBTX1, + 0, + "Elecom", + "LD-USB/TX", + }, + { + USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSBTX2, + 0, + "Elecom", + "LD-USB/TX", + }, + { + USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSBTX3, + 0, + "Elecom", + "LD-USB/TX", + }, + { USB_VENDOR_ELSA, USB_PRODUCT_ELSA_MODEM1, + 0, + "ELSA", "ELSA", }, { + USB_VENDOR_ELSA, USB_PRODUCT_ELSA_USB2ETHERNET, + 0, + "ELSA", + "Microlink USB2Ethernet", + }, + { USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_1S, + 0, + "Entrega", "1S serial connector", }, { USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_2S, + 0, + "Entrega", "2S serial connector", }, { USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_1S25, + 0, + "Entrega", "1S25 serial connector", }, { USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_4S, + 0, + "Entrega", "4S serial connector", }, { USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_E45, + 0, + "Entrega", "E45 Ethernet", }, { USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_CENTRONICS, + 0, + "Entrega", "Centronics connector", }, { + USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_XX1, + 0, + "Entrega", + "Ethernet", + }, + { USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_1S9, + 0, + "Entrega", "1S9 serial connector", }, { USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_EZUSB, + 0, + "Entrega", "EZ-USB", }, { USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_2U4S, + 0, + "Entrega", "2U4S serial connector/usb hub", }, { + USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_XX2, + 0, + "Entrega", + "Ethernet", + }, + { USB_VENDOR_EPSON, USB_PRODUCT_EPSON_PRINTER1, + 0, + "Seiko Epson", "USB Printer", }, { USB_VENDOR_EPSON, USB_PRODUCT_EPSON_PRINTER2, + 0, + "Seiko Epson", "ISD Smart Cable for Mac", }, { USB_VENDOR_EPSON, USB_PRODUCT_EPSON_PRINTER3, + 0, + "Seiko Epson", "ISD Smart Cable", }, { USB_VENDOR_EPSON, USB_PRODUCT_EPSON_PRINTER5, + 0, + "Seiko Epson", "USB Printer", }, { USB_VENDOR_EPSON, USB_PRODUCT_EPSON_636, + 0, + "Seiko Epson", "Perfection 636U / 636Photo scanner", }, { USB_VENDOR_EPSON, USB_PRODUCT_EPSON_610, + 0, + "Seiko Epson", "Perfection 610 scanner", }, { USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1200, + 0, + "Seiko Epson", "Perfection 1200U / 1200Photo scanner", }, { USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1600, + 0, + "Seiko Epson", "Expression 1600 scanner", }, { USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1640, - "Expression 1640SU scanner", + 0, + "Seiko Epson", + "Perfection 1640SU scanner", + }, + { + USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1240, + 0, + "Seiko Epson", + "Perfection 1240U / 1240Photo scanner", + }, + { + USB_VENDOR_EPSON, USB_PRODUCT_EPSON_640U, + 0, + "Seiko Epson", + "Perfection 640U scanner", + }, + { + USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1650, + 0, + "Seiko Epson", + "Perfection 1650 scanner", }, { USB_VENDOR_ETEK, USB_PRODUCT_ETEK_1COM, + 0, + "e-TEK Labs", "Serial port", }, { USB_VENDOR_EXTENDED, USB_PRODUCT_EXTENDED_XTNDACCESS, + 0, + "Extended Systems", "XTNDAccess IrDA", }, { USB_VENDOR_GRAVIS, USB_PRODUCT_GRAVIS_GAMEPADPRO, + 0, + "Advanced Gravis Computer", "GamePad Pro", }, { + USB_VENDOR_GREENHOUSE, USB_PRODUCT_GREENHOUSE_KANA21, + 0, + "GREENHOUSE", + "CF-writer/MP3 Player", + }, + { USB_VENDOR_GRIFFIN, USB_PRODUCT_GRIFFIN_IMATE, + 0, + "Griffin Technology", "iMate, ADB adapter", }, { USB_VENDOR_FREECOM, USB_PRODUCT_FREECOM_DVD, + 0, + "Freecom", "Connector for DVD drive", }, { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SERIAL, + 0, + "Future Technology Devices", "Serial converter", }, { USB_VENDOR_FUJIPHOTO, USB_PRODUCT_FUJIPHOTO_MASS0100, + 0, + "Fuji Photo Film", "Mass Storage", }, { + USB_VENDOR_HAGIWARA, USB_PRODUCT_HAGIWARA_FGSM, + 0, + "Hagiwara Sys-Com", + "FlashGate SmartMediaReader", + }, + { + USB_VENDOR_HAGIWARA, USB_PRODUCT_HAGIWARA_FGCF, + 0, + "Hagiwara Sys-Com", + "FlashGate CompactFlash Reader", + }, + { + USB_VENDOR_HAGIWARA, USB_PRODUCT_HAGIWARA_FG, + 0, + "Hagiwara Sys-Com", + "FlashGate", + }, + { USB_VENDOR_HANDSPRING, USB_PRODUCT_HANDSPRING_VISOR, + 0, + "Handspring", "Handspring Visor", }, { + USB_VENDOR_HAUPPAUGE, USB_PRODUCT_HAUPPAUGE_WINTV_USB_FM, + 0, + "Hauppauge Computer Works", + "WinTV USB FM", + }, + { + USB_VENDOR_HP, USB_PRODUCT_HP_895C, + 0, + "Hewlett Packard", + "DeskJet 895C", + }, + { USB_VENDOR_HP, USB_PRODUCT_HP_4100C, + 0, + "Hewlett Packard", "Scanjet 4100C", }, { USB_VENDOR_HP, USB_PRODUCT_HP_S20, + 0, + "Hewlett Packard", "Photosmart S20", }, { + USB_VENDOR_HP, USB_PRODUCT_HP_880C, + 0, + "Hewlett Packard", + "DeskJet 880C", + }, + { USB_VENDOR_HP, USB_PRODUCT_HP_4200C, + 0, + "Hewlett Packard", "ScanJet 4200C", }, { + USB_VENDOR_HP, USB_PRODUCT_HP_CDWRITERPLUS, + 0, + "Hewlett Packard", + "CD-Writer Plus", + }, + { + USB_VENDOR_HP, USB_PRODUCT_HP_KBDHUB, + 0, + "Hewlett Packard", + "Multimedia Keyboard Hub", + }, + { USB_VENDOR_HP, USB_PRODUCT_HP_6200C, + 0, + "Hewlett Packard", "ScanJet 6200C", }, { USB_VENDOR_HP, USB_PRODUCT_HP_S20b, + 0, + "Hewlett Packard", "PhotoSmart S20", }, { + USB_VENDOR_HP, USB_PRODUCT_HP_815C, + 0, + "Hewlett Packard", + "DeskJet 815C", + }, + { USB_VENDOR_HP, USB_PRODUCT_HP_3300C, + 0, + "Hewlett Packard", "ScanJet 3300C", }, { + USB_VENDOR_HP, USB_PRODUCT_HP_CDW8200, + 0, + "Hewlett Packard", + "CD-Writer Plus 8200e", + }, + { + USB_VENDOR_HP, USB_PRODUCT_HP_810C, + 0, + "Hewlett Packard", + "DeskJet 810C/812C", + }, + { + USB_VENDOR_HP, USB_PRODUCT_HP_4300C, + 0, + "Hewlett Packard", + "Scanjet 4300C", + }, + { + USB_VENDOR_HP, USB_PRODUCT_HP_G85XI, + 0, + "Hewlett Packard", + "OfficeJet G85xi", + }, + { USB_VENDOR_HP, USB_PRODUCT_HP_5200C, + 0, + "Hewlett Packard", "Scanjet 5200C", }, { + USB_VENDOR_HP, USB_PRODUCT_HP_830C, + 0, + "Hewlett Packard", + "DeskJet 830C", + }, + { + USB_VENDOR_HP, USB_PRODUCT_HP_3400CSE, + 0, + "Hewlett Packard", + "ScanJet 3400cse", + }, + { USB_VENDOR_HP, USB_PRODUCT_HP_6300C, + 0, + "Hewlett Packard", "Scanjet 6300C", }, { + USB_VENDOR_HP, USB_PRODUCT_HP_840C, + 0, + "Hewlett Packard", + "DeskJet 840c", + }, + { USB_VENDOR_HP, USB_PRODUCT_HP_5300C, + 0, + "Hewlett Packard", "Scanjet 5300C", }, { + USB_VENDOR_HP, USB_PRODUCT_HP_930C, + 0, + "Hewlett Packard", + "DeskJet 930c", + }, + { USB_VENDOR_HP, USB_PRODUCT_HP_970CSE, + 0, + "Hewlett Packard", "Deskjet 970Cse", }, { + USB_VENDOR_HP, USB_PRODUCT_HP_640C, + 0, + "Hewlett Packard", + "DeskJet 640c", + }, + { USB_VENDOR_HP, USB_PRODUCT_HP_P1100, + 0, + "Hewlett Packard", "Photosmart P1100", }, { USB_VENDOR_HP2, USB_PRODUCT_HP2_C500, + 0, + "Hewlett Packard", "PhotoSmart C500", }, { USB_VENDOR_IBM, USB_PRODUCT_IBM_USBCDROMDRIVE, + 0, + "IBM", "USB CD-ROM Drive", }, { USB_VENDOR_INSIDEOUT, USB_PRODUCT_INSIDEOUT_EDGEPORT4, + 0, + "Inside Out Networks", "EdgePort/4 serial ports", }, { USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_F5U002, - "Parallel printer adapter", + 0, + "In-System Design", + "Parallel adapter", + }, + { + USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_ATAPI, + 0, + "In-System Design", + "ATAPI adapter", }, { USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_ISD110, + 0, + "In-System Design", "IDE adapter ISD110", }, { USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_ISD105, + 0, + "In-System Design", "IDE adapter ISD105", }, { USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_USBCABLE, + 0, + "In-System Design", "USB cable", }, { USB_VENDOR_INTEL, USB_PRODUCT_INTEL_EASYPC_CAMERA, + 0, + "Intel", "Easy PC Camera", }, { USB_VENDOR_INTEL, USB_PRODUCT_INTEL_TESTBOARD, + 0, + "Intel", "82930 test board", }, { USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBETT, + 0, + "I/O Data", "USB ETT", }, { USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBETTX, + 0, + "I/O Data", "USB ETTX", }, { USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBETTXS, + 0, + "I/O Data", "USB ETTX", }, { USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBRSAQ, + 0, + "I/O Data", "RSAQ1 Serial Adapter", }, { USB_VENDOR_IOMEGA, USB_PRODUCT_IOMEGA_ZIP100, + 0, + "Iomega", "Zip 100", }, { USB_VENDOR_IOMEGA, USB_PRODUCT_IOMEGA_ZIP250, + 0, + "Iomega", "Zip 250", }, { - USB_VENDOR_KLSI, USB_PRODUCT_KLSI_DUH3E10BT, - "USB Ethernet controller engine", + USB_VENDOR_JATON, USB_PRODUCT_JATON_EDA, + 0, + "Jaton", + "Ethernet Device Adapter", }, { USB_VENDOR_KAWATSU, USB_PRODUCT_KAWATSU_MH4000P, + 0, + "Kawatsu Semiconductor", "MiniHub 4000P", }, { USB_VENDOR_KEISOKUGIKEN, USB_PRODUCT_KEISOKUGIKEN_USBDAQ, + 0, + "Keisokugiken", "HKS-0200 USBDAQ", }, { USB_VENDOR_KLSI, USB_PRODUCT_KLSI_DUH3E10BT, + 0, + "Kawasaki LSI", + "10BT Ethernet", + }, + { + USB_VENDOR_KLSI, USB_PRODUCT_KLSI_DUH3E10BTN, + 0, + "Kawasaki LSI", "10BT Ethernet", }, { USB_VENDOR_KENSINGTON, USB_PRODUCT_KENSINGTON_ORBIT, + 0, + "Kensington", "Orbit USB/PS2 trackball", }, { USB_VENDOR_KENSINGTON, USB_PRODUCT_KENSINGTON_TURBOBALL, + 0, + "Kensington", "TurboBall", }, { + USB_VENDOR_KENSINGTON, USB_PRODUCT_KENSINGTON_ORBIT_MAC, + 0, + "Kensington", + "Orbit USB trackball for Mac", + }, + { + USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA28, + 0, + "Keyspan", + "USA-28 serial adapter", + }, + { + USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA28X, + 0, + "Keyspan", + "USA-28X serial adapter", + }, + { + USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA19, + 0, + "Keyspan", + "USA-19 serial adapter", + }, + { + USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA18X, + 0, + "Keyspan", + "USA-18X serial adapter", + }, + { + USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA19W, + 0, + "Keyspan", + "USA-19W serial adapter", + }, + { + USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA49W, + 0, + "Keyspan", + "USA-49W serial adapter", + }, + { + USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_UIA10_NF, + 0, + "Keyspan", + "UIA-10 remote control", + }, + { + USB_VENDOR_KINGSTON, USB_PRODUCT_KINGSTON_XX1, + 0, + "Kingston Technology", + "Ethernet", + }, + { USB_VENDOR_KINGSTON, USB_PRODUCT_KINGSTON_KNU101TX, + 0, + "Kingston Technology", "KNU101TX Ethernet", }, { USB_VENDOR_KODAK, USB_PRODUCT_KODAK_DC220, + 0, + "Eastman Kodak", "Digital Science DC220", }, { USB_VENDOR_KODAK, USB_PRODUCT_KODAK_DC260, + 0, + "Eastman Kodak", "Digital Science DC260", }, { USB_VENDOR_KODAK, USB_PRODUCT_KODAK_DC265, + 0, + "Eastman Kodak", "Digital Science DC265", }, { USB_VENDOR_KODAK, USB_PRODUCT_KODAK_DC290, + 0, + "Eastman Kodak", "Digital Science DC290", }, { USB_VENDOR_KODAK, USB_PRODUCT_KODAK_DC240, + 0, + "Eastman Kodak", "Digital Science DC240", }, { USB_VENDOR_KODAK, USB_PRODUCT_KODAK_DC280, + 0, + "Eastman Kodak", "Digital Science DC280", }, { USB_VENDOR_KONICA, USB_PRODUCT_KONICA_CAMERA, + 0, + "Konica", "Digital Color Camera", }, { USB_VENDOR_KYE, USB_PRODUCT_KYE_NICHE, + 0, + "KYE Systems", "Niche mouse", }, { USB_VENDOR_KYE, USB_PRODUCT_KYE_NETSCROLL, + 0, + "KYE Systems", "Genius NetScroll mouse", }, { USB_VENDOR_KYE, USB_PRODUCT_KYE_FLIGHT2000, + 0, + "KYE Systems", "Flight 2000 joystick", }, { USB_VENDOR_KYE, USB_PRODUCT_KYE_VIVIDPRO, + 0, + "KYE Systems", "ColorPage Vivid-Pro scanner", }, { + USB_VENDOR_LACIE, USB_PRODUCT_LACIE_HD, + 0, + "LaCie", + "Hard Disk", + }, + { USB_VENDOR_LACIE, USB_PRODUCT_LACIE_CDRW, + 0, + "LaCie", "CD R/W", }, { + USB_VENDOR_LEXAR, USB_PRODUCT_LEXAR_JUMPSHOT, + 0, + "Lexar Media", + "jumpSHOT CompactFlash Reader", + }, + { USB_VENDOR_LEXMARK, USB_PRODUCT_LEXMARK_S2450, + 0, + "Lexmark International", "Optra S 2450", }, { + USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_MAUSB2, + 0, + "Linksys", + "Camedia MAUSB-2", + }, + { + USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10TX1, + 0, + "Linksys", + "USB10TX", + }, + { USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10T, + 0, + "Linksys", "USB10T Ethernet", }, { USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB100TX, + 0, + "Linksys", "USB100TX Ethernet", }, { USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB100H1, + 0, + "Linksys", "USB100H1 Ethernet/HPNA", }, { USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10TA, + 0, + "Linksys", "USB10TA Ethernet", }, { + USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10TX2, + 0, + "Linksys", + "USB10TX", + }, + { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_M2452, + 0, + "Logitech", "M2452", }, { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_M4848, + 0, + "Logitech", "M4848", }, { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_PAGESCAN, + 0, + "Logitech", "PageScan", }, { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_QUICKCAMWEB, + 0, + "Logitech", "QuickCam Web", }, { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_QUICKCAMPRO, + 0, + "Logitech", "QuickCam Pro", }, { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_QUICKCAMEXP, + 0, + "Logitech", "QuickCam Express", }, { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_QUICKCAM, + 0, + "Logitech", "QuickCam", }, { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_N43, + 0, + "Logitech", "N43", }, { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_N48, + 0, + "Logitech", "N48 mouse", }, { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_MBA47, + 0, + "Logitech", "M-BA47 mouse", }, { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_WMMOUSE, + 0, + "Logitech", "WingMan Gaming Mouse", }, { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_BD58, + 0, + "Logitech", "BD58 mouse", }, { + USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_UN58A, + 0, + "Logitech", + "iFeel Mouse", + }, + { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_BB13, + 0, + "Logitech", "USB-PS/2 Trackball", }, { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_WMPAD, + 0, + "Logitech", "WingMan GamePad Extreme", }, { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_WMJOY, + 0, + "Logitech", "WingMan Force joystick", }, { + USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_RK53, + 0, + "Logitech", + "Cordless mouse", + }, + { + USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_RB6, + 0, + "Logitech", + "Cordless keyboard", + }, + { + USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_CDO, + 0, + "Logitech", + "Cordless Desktop Optical", + }, + { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_QUICKCAMPRO2, + 0, + "Logitech", "QuickCam Pro", }, { USB_VENDOR_LUCENT, USB_PRODUCT_LUCENT_EVALKIT, + 0, + "Lucent", "USS-720 evaluation kit", }, { USB_VENDOR_MACALLY, USB_PRODUCT_MACALLY_MOUSE1, + 0, + "Macally", "mouse", }, { USB_VENDOR_MCT, USB_PRODUCT_MCT_HUB0100, + 0, + "MCT", "Hub", }, { USB_VENDOR_MCT, USB_PRODUCT_MCT_DU_H3SP_USB232, + 0, + "MCT", "D-Link DU-H3SP USB BAY Hub", }, { USB_VENDOR_MCT, USB_PRODUCT_MCT_USB232, + 0, + "MCT", "USB-232 Interface", }, { USB_VENDOR_MCT, USB_PRODUCT_MCT_SITECOM_USB232, + 0, + "MCT", "Sitecom USB-232 Products", }, { USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUATX1, + 0, + "Melco", "LUA-TX Ethernet", }, { USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUATX5, + 0, + "Melco", "LUA-TX Ethernet", }, { + USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUA2TX5, + 0, + "Melco", + "LUA2-TX Ethernet", + }, + { USB_VENDOR_METRICOM, USB_PRODUCT_METRICOM_RICOCHET_GS, + 0, + "Metricom", "Ricochet GS", }, { USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_SIDEPREC, + 0, + "Microsoft", "SideWinder Precision Pro", }, { USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_INTELLIMOUSE, + 0, + "Microsoft", "IntelliMouse", }, { USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_NATURALKBD, + 0, + "Microsoft", "Natural", }, { USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_DDS80, + 0, + "Microsoft", "Digital Sound System 80", }, { USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_SIDEWINDER, + 0, + "Microsoft", "Sidewinder Precision Racing Wheel", }, { USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_INTELLIEYE, + 0, + "Microsoft", "IntelliEye mouse", }, { USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_INETPRO, + 0, + "Microsoft", "Internet Pro", }, { + USB_VENDOR_MICROTECH, USB_PRODUCT_MICROTECH_SCSIDB25, + 0, + "Microtech", + "USB-SCSI-DB25", + }, + { + USB_VENDOR_MICROTECH, USB_PRODUCT_MICROTECH_SCSIHD50, + 0, + "Microtech", + "USB-SCSI-HD50", + }, + { + USB_VENDOR_MICROTECH, USB_PRODUCT_MICROTECH_DPCM, + 0, + "Microtech", + "USB CameraMate", + }, + { + USB_VENDOR_MICROTECH, USB_PRODUCT_MICROTECH_FREECOM, + 0, + "Microtech", + "Freecom USB-IDE", + }, + { USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_336CX, + 0, + "Microtek", "Phantom 336CX - C3 scanner", }, { USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_X6U, + 0, + "Microtek", "ScanMaker X6 - X6U", }, { USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_C6, + 0, + "Microtek", "Phantom C6 scanner", }, { USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_336CX2, + 0, + "Microtek", "Phantom 336CX - C3 scanner", }, { USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_V6USL, + 0, + "Microtek", "ScanMaker V6USL", }, { USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_V6USL2, + 0, + "Microtek", "ScanMaker V6USL", }, { USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_V6UL, + 0, + "Microtek", "ScanMaker V6UL", }, { USB_VENDOR_MIDIMAN, USB_PRODUCT_MIDIMAN_MIDISPORT2X2, + 0, + "Midiman", "Midisport 2x2", }, { + USB_VENDOR_MITSUMI, USB_PRODUCT_MITSUMI_CDRRW, + 0, + "Mitsumi", + "CD-R/RW Drive", + }, + { + USB_VENDOR_MOBILITY, USB_PRODUCT_MOBILITY_EA, + 0, + "Mobility", + "Ethernet", + }, + { USB_VENDOR_MOTOROLA, USB_PRODUCT_MOTOROLA_MC141555, + 0, + "Motorola", "MC141555 hub controller", }, { USB_VENDOR_MULTITECH, USB_PRODUCT_MULTITECH_ATLAS, + 0, + "MultiTech", "MT5634ZBA", }, { USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_1200CU, + 0, + "Mustek Systems", "1200 CU scanner", }, { USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_600CU, + 0, + "Mustek Systems", "600 CU scanner", }, { USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_1200USB, + 0, + "Mustek Systems", "1200 scanner", }, { USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_1200UB, + 0, + "Mustek Systems", "1200 UB scanner", }, { USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_MDC800, + 0, + "Mustek Systems", "MDC-800 digital camera", }, { + USB_VENDOR_MSYSTEMS, USB_PRODUCT_MSYSTEMS_DISKONKEY, + 0, + "M-Systems", + "DiskOnKey", + }, + { USB_VENDOR_NATIONAL, USB_PRODUCT_NATIONAL_BEARPAW, + 0, + "National Semiconductor", "BearPaw 1200", }, { USB_VENDOR_NEC, USB_PRODUCT_NEC_HUB, + 0, + "NEC", "hub", }, { USB_VENDOR_NEC, USB_PRODUCT_NEC_HUB_B, + 0, + "NEC", "hub", }, { USB_VENDOR_NETCHIP, USB_PRODUCT_NETCHIP_TURBOCONNECT, + 0, + "NetChip Technology", "Turbo-Connect", }, { USB_VENDOR_NETGEAR, USB_PRODUCT_NETGEAR_EA101, + 0, + "BayNETGEAR", + "Ethernet", + }, + { + USB_VENDOR_NETGEAR, USB_PRODUCT_NETGEAR_EA101X, + 0, + "BayNETGEAR", "Ethernet", }, { USB_VENDOR_NIKON, USB_PRODUCT_NIKON_E990, + 0, + "Nikon", "Digital Camera E990", }, { + USB_VENDOR_OLYMPUS, USB_PRODUCT_OLYMPUS_C700, + 0, + "Olympus", + "C-700 Ultra Zoom", + }, + { USB_VENDOR_OMNIVISION, USB_PRODUCT_OMNIVISION_OV511, + 0, + "OmniVision", "OV511 Camera", }, { USB_VENDOR_OMNIVISION, USB_PRODUCT_OMNIVISION_OV511PLUS, + 0, + "OmniVision", "OV511+ Camera", }, { USB_VENDOR_PALM, USB_PRODUCT_PALM_SERIAL, + 0, + "Palm Computing", "USB Serial Adaptor", }, { + USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_SDCAAE, + 0, + "Panasonic (Matsushita)", + "MultiMediaCard Adapter", + }, + { USB_VENDOR_PERACOM, USB_PRODUCT_PERACOM_SERIAL1, + 0, + "Peracom Networks", "Serial Converter", }, { USB_VENDOR_PERACOM, USB_PRODUCT_PERACOM_ENET, + 0, + "Peracom Networks", "Ethernet", }, { USB_VENDOR_PERACOM, USB_PRODUCT_PERACOM_ENET3, + 0, + "Peracom Networks", "At-Home Ethernet", }, { USB_VENDOR_PERACOM, USB_PRODUCT_PERACOM_ENET2, + 0, + "Peracom Networks", "Ethernet", }, { USB_VENDOR_PHILIPS, USB_PRODUCT_PHILIPS_DSS350, + 0, + "Philips", "DSS 350 Digital Speaker System", }, { USB_VENDOR_PHILIPS, USB_PRODUCT_PHILIPS_DSS, + 0, + "Philips", "DSS XXX Digital Speaker System", }, { USB_VENDOR_PHILIPS, USB_PRODUCT_PHILIPS_HUB, + 0, + "Philips", "hub", }, { + USB_VENDOR_PHILIPS, USB_PRODUCT_PHILIPS_PCA646VC, + 0, + "Philips", + "PCA646VC PC Camera", + }, + { USB_VENDOR_PHILIPS, USB_PRODUCT_PHILIPS_PCVC680K, + 0, + "Philips", "PCVC680K Vesta Pro PC Camera", }, { USB_VENDOR_PHILIPS, USB_PRODUCT_PHILIPS_DSS150, + 0, + "Philips", "DSS 150 Digital Speaker System", }, { USB_VENDOR_PHILIPSSEMI, USB_PRODUCT_PHILIPSSEMI_HUB1122, + 0, + "Philips Semiconductors", "hub", }, { USB_VENDOR_PIENGINEERING, USB_PRODUCT_PIENGINEERING_PS2USB, + 0, + "P.I. Engineering", "PS2 to Mac Adapter", }, { USB_VENDOR_PLX, USB_PRODUCT_PLX_TESTBOARD, + 0, + "PLX", "test board", }, { + USB_VENDOR_PORTGEAR, USB_PRODUCT_PORTGEAR_EA8, + 0, + "PortGear", + "Ethernet", + }, + { + USB_VENDOR_PORTGEAR, USB_PRODUCT_PORTGEAR_EA9, + 0, + "PortGear", + "Ethernet", + }, + { + USB_VENDOR_PORTSMITH, USB_PRODUCT_PORTSMITH_EEA, + 0, + "Portsmith", + "Express Ethernet", + }, + { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2X300, + 0, + "Primax Electronics", "G2-200 scanner", }, { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2E300, + 0, + "Primax Electronics", "G2E-300 scanner", }, { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2300, + 0, + "Primax Electronics", "G2-300 scanner", }, { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2E3002, + 0, + "Primax Electronics", "G2E-300 scanner", }, { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_9600, + 0, + "Primax Electronics", "Colorado 9600 scanner", }, { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_600U, + 0, + "Primax Electronics", "Colorado 600u scanner", }, { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_19200, + 0, + "Primax Electronics", "Colorado 19200 scanner", }, { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_1200U, + 0, + "Primax Electronics", "Colorado 1200u scanner", }, { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G600, + 0, + "Primax Electronics", "G2-600 scanner", }, { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_636I, + 0, + "Primax Electronics", "ReadyScan 636i", }, { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2600, + 0, + "Primax Electronics", "G2-600 scanner", }, { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2E600, + 0, + "Primax Electronics", "G2E-600 scanner", }, { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_COMFORT, + 0, + "Primax Electronics", "Comfort", }, { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_MOUSEINABOX, + 0, + "Primax Electronics", "Mouse-in-a-Box", }, { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_PCGAUMS1, + 0, + "Primax Electronics", "Sony PCGA-UMS1", }, { USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_PL2301, + 0, + "Prolific Technology", "PL2301 Host-Host interface", }, { USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_PL2302, + 0, + "Prolific Technology", "PL2302 Host-Host interface", }, { USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_RSAQ2, - "PL2303 Serial adapter (IODATA USB-RSAQ2)", + 0, + "Prolific Technology", + "PL2303 Serial adapter", }, { USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_PL2303, - "PL2303 Serial adapter (ATEN/IOGEAR UC232A)", + 0, + "Prolific Technology", + "PL2303 Serial adapter", }, { USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_PL2305, - "Parallel printer adapter", + 0, + "Prolific Technology", + "Parallel printer", }, { USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_ATAPI4, + 0, + "Prolific Technology", "ATAPI-4 Bridge Controller", }, { + USB_VENDOR_PUTERCOM, USB_PRODUCT_PUTERCOM_UPA100, + 0, + "Putercom", + "USB-1284 BRIDGE", + }, + { USB_VENDOR_QTRONIX, USB_PRODUCT_QTRONIX_980N, + 0, + "Qtronix", "Scorpion-980N", }, { USB_VENDOR_QUICKSHOT, USB_PRODUCT_QUICKSHOT_STRIKEPAD, + 0, + "Quickshot", "USB StrikePad", }, { USB_VENDOR_RAINBOW, USB_PRODUCT_RAINBOW_IKEY2000, + 0, + "Rainbow Technologies", "i-Key 2000", }, { USB_VENDOR_ROLAND, USB_PRODUCT_ROLAND_UM1, + 0, + "Roland", "UM-1 MIDI I/F", }, { + USB_VENDOR_ROLAND, USB_PRODUCT_ROLAND_UM880N, + 0, + "Roland", + "EDIROL UM-880 MIDI I/F (native)", + }, + { + USB_VENDOR_ROLAND, USB_PRODUCT_ROLAND_UM880G, + 0, + "Roland", + "EDIROL UM-880 MIDI I/F (generic)", + }, + { USB_VENDOR_ROCKFIRE, USB_PRODUCT_ROCKFIRE_GAMEPAD, + 0, + "Rockfire", "gamepad 203USB", }, { USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_IMAGEMATE, + 0, + "SanDisk", "USB ImageMate", }, { + USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDDR31, + 0, + "SanDisk", + "ImageMate SDDR-31", + }, + { + USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDDR12, + 0, + "SanDisk", + "ImageMate SDDR-12", + }, + { + USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDDR09, + 0, + "SanDisk", + "ImageMate SDDR-09", + }, + { USB_VENDOR_SCANLOGIC, USB_PRODUCT_SCANLOGIC_336CX, + 0, + "ScanLogic", "Phantom 336CX - C3 scanner", }, { + USB_VENDOR_SHARK, USB_PRODUCT_SHARK_PA, + 0, + "Shark", + "Pocket Adapter", + }, + { USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSB, + 0, + "Shuttle Technology", "E-USB Bridge", }, { + USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSCSI, + 0, + "Shuttle Technology", + "eUSCSI Bridge", + }, + { + USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_SDDR09, + 0, + "Shuttle Technology", + "ImageMate SDDR09", + }, + { + USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_ZIOMMC, + 0, + "Shuttle Technology", + "eUSB MultiMediaCard Adapter", + }, + { + USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_HIFD, + 0, + "Shuttle Technology", + "Sony Hifd", + }, + { + USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSBATAPI, + 0, + "Shuttle Technology", + "eUSB ATA/ATAPI Adapter", + }, + { + USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_CF, + 0, + "Shuttle Technology", + "eUSB CompactFlash Adapter", + }, + { + USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSCSI_B, + 0, + "Shuttle Technology", + "eUSCSI Bridge", + }, + { + USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSCSI_C, + 0, + "Shuttle Technology", + "eUSCSI Bridge", + }, + { + USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_CDRW, + 0, + "Shuttle Technology", + "CD-RW Device", + }, + { USB_VENDOR_SIIG, USB_PRODUCT_SIIG_DIGIFILMREADER, + 0, + "SIIG", "DigiFilm-Combo Reader", }, { USB_VENDOR_SILICONPORTALS, USB_PRODUCT_SILICONPORTALS_YAPPH_NF, + 0, + "Silicon Portals", "YAP Phone (no firmware)", }, { USB_VENDOR_SILICONPORTALS, USB_PRODUCT_SILICONPORTALS_YAPPHONE, + 0, + "Silicon Portals", "YAP Phone", }, { USB_VENDOR_SIRIUS, USB_PRODUCT_SIRIUS_ROADSTER, + 0, + "Sirius Technologies", "NetComm Roadster II 56 USB", }, { USB_VENDOR_SMARTBRIDGES, USB_PRODUCT_SMARTBRIDGES_SMARTLINK, + 0, + "SmartBridges", "SmartLink Ethernet", }, { + USB_VENDOR_SMARTBRIDGES, USB_PRODUCT_SMARTBRIDGES_SMARTNIC, + 0, + "SmartBridges", + "smartNIC 2 PnP Adapter", + }, + { USB_VENDOR_SMC, USB_PRODUCT_SMC_2102USB, + 0, + "Standard Microsystems", "10Mbps Ethernet", }, { USB_VENDOR_SMC, USB_PRODUCT_SMC_2202USB, + 0, + "Standard Microsystems", "10/100 Ethernet", }, { USB_VENDOR_SOHOWARE, USB_PRODUCT_SOHOWARE_NUB100, - "10/100 USB Ethernet", + 0, + "SOHOware", + "10/100 Ethernet", }, { USB_VENDOR_SOLIDYEAR, USB_PRODUCT_SOLIDYEAR_KEYBOARD, + 0, + "Solid Year", "Keyboard", }, { USB_VENDOR_SONY, USB_PRODUCT_SONY_DSC, + 0, + "Sony", "Sony DSC Cameras", }, { + USB_VENDOR_SONY, USB_PRODUCT_SONY_MSACUS1, + 0, + "Sony", + "Memorystick MSAC-US1", + }, + { USB_VENDOR_SONY, USB_PRODUCT_SONY_MSC, + 0, + "Sony", "Sony MSC Memorystick Slot", }, { USB_VENDOR_STMICRO, USB_PRODUCT_STMICRO_COMMUNICATOR, + 0, + "STMicroelectronics", "Communicator", }, { USB_VENDOR_STSN, USB_PRODUCT_STSN_STSN0001, + 0, + "STSN", "Internet Access Device", }, { USB_VENDOR_SUN, USB_PRODUCT_SUN_KEYBOARD, + 0, + "Sun Microsystems", "Type 6 USB", }, { + USB_VENDOR_SUN, USB_PRODUCT_SUN_MOUSE, + 0, + "Sun Microsystems", + "Type 6 USB mouse", + }, + { USB_VENDOR_DIAMOND2, USB_PRODUCT_DIAMOND2_SUPRAEXPRESS56K, + 0, + "Diamond (Supra)", "Supra Express 56K", }, { USB_VENDOR_DIAMOND2, USB_PRODUCT_DIAMOND2_SUPRA2890, + 0, + "Diamond (Supra)", "SupraMax 2890 56K", }, { USB_VENDOR_DIAMOND2, USB_PRODUCT_DIAMOND2_RIO600USB, + 0, + "Diamond (Supra)", "Rio 600", }, { + USB_VENDOR_DIAMOND2, USB_PRODUCT_DIAMOND2_RIO800USB, + 0, + "Diamond (Supra)", + "Rio 800 USB", + }, + { + USB_VENDOR_TAUGA, USB_PRODUCT_TAUGA_CAMERAMATE, + 0, + "Taugagreining HF", + "CameraMate (DPCM_USB)", + }, + { + USB_VENDOR_TDK, USB_PRODUCT_TDK_UPA9664, + 0, + "TDK", + "USB-PDC Adapter UPA9664", + }, + { + USB_VENDOR_TDK, USB_PRODUCT_TDK_UCA1464, + 0, + "TDK", + "USB-cdmaOne Adapter UCA1464", + }, + { + USB_VENDOR_TDK, USB_PRODUCT_TDK_UHA6400, + 0, + "TDK", + "USB-PHS Adapter UHA6400", + }, + { + USB_VENDOR_TDK, USB_PRODUCT_TDK_UPA6400, + 0, + "TDK", + "USB-PHS Adapter UPA6400", + }, + { USB_VENDOR_TEAC, USB_PRODUCT_TEAC_FD05PUB, + 0, + "TEAC", "FD-05PUB", }, { USB_VENDOR_TELEX, USB_PRODUCT_TELEX_MIC1, + 0, + "Telex Communications", "Microphone", }, { USB_VENDOR_TI, USB_PRODUCT_TI_UTUSB41, + 0, + "Texas Instruments", "UT-USB41 hub", }, { USB_VENDOR_TI, USB_PRODUCT_TI_TUSB2046, + 0, + "Texas Instruments", "TUSB2046 hub", }, { USB_VENDOR_THRUST, USB_PRODUCT_THRUST_FUSION_PAD, + 0, + "Thrustmaster", "Fusion Digital Gamepad", }, { USB_VENDOR_TODOS, USB_PRODUCT_TODOS_ARGOS_MINI, + 0, + "Todos Data System", "Argos Mini Smartcard Reader", }, { USB_VENDOR_TREK, USB_PRODUCT_TREK_THUMBDRIVE, + 0, + "Trek Technology", "ThumbDrive", }, { USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA1236U, + 0, + "UMAX Data Systems", "Astra 1236U Scanner", }, { USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA1220U, + 0, + "UMAX Data Systems", "Astra 1220U Scanner", }, { USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA2000U, + 0, + "UMAX Data Systems", "Astra 2000U Scanner", }, { USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA2100U, + 0, + "UMAX Data Systems", "Astra 2100U Scanner", }, { USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA2200U, + 0, + "UMAX Data Systems", "Astra 2200U Scanner", }, { + USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA3400, + 0, + "UMAX Data Systems", + "Astra 3400 Scanner", + }, + { USB_VENDOR_UNIACCESS, USB_PRODUCT_UNIACCESS_PANACHE, - "Panache Surf ISDN Adapter", + 0, + "Universal Access", + "Panache Surf ISDN", }, { USB_VENDOR_VISION, USB_PRODUCT_VISION_VC6452V002, + 0, + "VLSI Vision", "CPiA Camera", }, { USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_7600, + 0, + "Visioneer", "OneTouch 7600", }, { USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_5300, + 0, + "Visioneer", "OneTouch 5300", }, { USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_6100, + 0, + "Visioneer", "OneTouch 6100", }, { USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_6200, + 0, + "Visioneer", "OneTouch 6200", }, { USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_8100, + 0, + "Visioneer", "OneTouch 8100", }, { USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_8600, + 0, + "Visioneer", "OneTouch 8600", }, { USB_VENDOR_WACOM, USB_PRODUCT_WACOM_CT0405U, + 0, + "WACOM", "CT-0405-U Tablet", }, { USB_VENDOR_WACOM, USB_PRODUCT_WACOM_GRAPHIRE, + 0, + "WACOM", "Graphire", }, { USB_VENDOR_WACOM, USB_PRODUCT_WACOM_INTUOSA5, + 0, + "WACOM", "Intuos A5", }, { + USB_VENDOR_XIRLINK, USB_PRODUCT_XIRLINK_PCCAM, + 0, + "Xirlink", + "IBM PC Camera", + }, + { USB_VENDOR_YEDATA, USB_PRODUCT_YEDATA_FLASHBUSTERU, + 0, + "Y-E Data", "Flashbuster-U", }, { USB_VENDOR_YANO, USB_PRODUCT_YANO_U640MO, + 0, + "Yano", "U640MO-03", }, { USB_VENDOR_YAMAHA, USB_PRODUCT_YAMAHA_UX256, + 0, + "YAMAHA", "UX256 MIDI I/F", }, { USB_VENDOR_ZOOM, USB_PRODUCT_ZOOM_2986L, + 0, + "Zoom Telephonics", "2986L", }, { + USB_VENDOR_ZYXEL, USB_PRODUCT_ZYXEL_OMNI56K, + 0, + "ZyXEL Communication", + "Omni 56K Plus", + }, + { USB_VENDOR_ZYXEL, USB_PRODUCT_ZYXEL_980N, + 0, + "ZyXEL Communication", "Scorpion-980N", }, - { 0, 0, NULL } -}; - -const struct usb_known_vendor usb_known_vendors[] = { { - USB_VENDOR_AOX, + USB_VENDOR_AOX, 0, + USB_KNOWNDEV_NOPROD, "AOX", + NULL, }, { - USB_VENDOR_ATMEL, + USB_VENDOR_ATMEL, 0, + USB_KNOWNDEV_NOPROD, "Atmel", + NULL, + }, + { + USB_VENDOR_MITSUMI, 0, + USB_KNOWNDEV_NOPROD, + "Mitsumi", + NULL, }, { - USB_VENDOR_HP, + USB_VENDOR_HP, 0, + USB_KNOWNDEV_NOPROD, "Hewlett Packard", + NULL, }, { - USB_VENDOR_ADAPTEC, + USB_VENDOR_ADAPTEC, 0, + USB_KNOWNDEV_NOPROD, "Adaptec", + NULL, }, { - USB_VENDOR_NATIONAL, + USB_VENDOR_NATIONAL, 0, + USB_KNOWNDEV_NOPROD, "National Semiconductor", + NULL, }, { - USB_VENDOR_ACERLABS, + USB_VENDOR_ACERLABS, 0, + USB_KNOWNDEV_NOPROD, "Acer Labs", + NULL, }, { - USB_VENDOR_FTDI, + USB_VENDOR_FTDI, 0, + USB_KNOWNDEV_NOPROD, "Future Technology Devices", + NULL, }, { - USB_VENDOR_NEC, + USB_VENDOR_NEC, 0, + USB_KNOWNDEV_NOPROD, "NEC", + NULL, }, { - USB_VENDOR_KODAK, + USB_VENDOR_KODAK, 0, + USB_KNOWNDEV_NOPROD, "Eastman Kodak", + NULL, }, { - USB_VENDOR_MELCO, + USB_VENDOR_MELCO, 0, + USB_KNOWNDEV_NOPROD, "Melco", + NULL, }, { - USB_VENDOR_CREATIVELABS, + USB_VENDOR_CREATIVELABS, 0, + USB_KNOWNDEV_NOPROD, "Creative Labs", + NULL, }, { - USB_VENDOR_ADI, + USB_VENDOR_ADI, 0, + USB_KNOWNDEV_NOPROD, "ADI Systems", + NULL, }, { - USB_VENDOR_CATC, + USB_VENDOR_CATC, 0, + USB_KNOWNDEV_NOPROD, "Computer Access Technology", + NULL, }, { - USB_VENDOR_GRAVIS, + USB_VENDOR_GRAVIS, 0, + USB_KNOWNDEV_NOPROD, "Advanced Gravis Computer", + NULL, }, { - USB_VENDOR_SUN, + USB_VENDOR_SUN, 0, + USB_KNOWNDEV_NOPROD, "Sun Microsystems", + NULL, + }, + { + USB_VENDOR_TAUGA, 0, + USB_KNOWNDEV_NOPROD, + "Taugagreining HF", + NULL, }, { - USB_VENDOR_AMD, + USB_VENDOR_AMD, 0, + USB_KNOWNDEV_NOPROD, "Advanced Micro Devices", + NULL, }, { - USB_VENDOR_LEXMARK, + USB_VENDOR_LEXMARK, 0, + USB_KNOWNDEV_NOPROD, "Lexmark International", + NULL, }, { - USB_VENDOR_NANAO, + USB_VENDOR_NANAO, 0, + USB_KNOWNDEV_NOPROD, "NANAO", + NULL, }, { - USB_VENDOR_ALPS, + USB_VENDOR_ALPS, 0, + USB_KNOWNDEV_NOPROD, "Alps Electric", + NULL, }, { - USB_VENDOR_THRUST, + USB_VENDOR_THRUST, 0, + USB_KNOWNDEV_NOPROD, "Thrustmaster", + NULL, }, { - USB_VENDOR_TI, + USB_VENDOR_TI, 0, + USB_KNOWNDEV_NOPROD, "Texas Instruments", + NULL, }, { - USB_VENDOR_ANALOGDEVICES, + USB_VENDOR_ANALOGDEVICES, 0, + USB_KNOWNDEV_NOPROD, "Analog Devices", + NULL, }, { - USB_VENDOR_KYE, + USB_VENDOR_KYE, 0, + USB_KNOWNDEV_NOPROD, "KYE Systems", + NULL, }, { - USB_VENDOR_DIAMOND2, + USB_VENDOR_DIAMOND2, 0, + USB_KNOWNDEV_NOPROD, "Diamond (Supra)", + NULL, }, { - USB_VENDOR_MICROSOFT, + USB_VENDOR_MICROSOFT, 0, + USB_KNOWNDEV_NOPROD, "Microsoft", + NULL, }, { - USB_VENDOR_PRIMAX, + USB_VENDOR_PRIMAX, 0, + USB_KNOWNDEV_NOPROD, "Primax Electronics", + NULL, }, { - USB_VENDOR_AMP, + USB_VENDOR_AMP, 0, + USB_KNOWNDEV_NOPROD, "AMP", + NULL, }, { - USB_VENDOR_CHERRY, + USB_VENDOR_CHERRY, 0, + USB_KNOWNDEV_NOPROD, "Cherry Mikroschalter", + NULL, }, { - USB_VENDOR_MEGATRENDS, + USB_VENDOR_MEGATRENDS, 0, + USB_KNOWNDEV_NOPROD, "American Megatrends", + NULL, }, { - USB_VENDOR_LOGITECH, + USB_VENDOR_LOGITECH, 0, + USB_KNOWNDEV_NOPROD, "Logitech", + NULL, }, { - USB_VENDOR_BTC, + USB_VENDOR_BTC, 0, + USB_KNOWNDEV_NOPROD, "Behavior Tech. Computer", + NULL, }, { - USB_VENDOR_PHILIPS, + USB_VENDOR_PHILIPS, 0, + USB_KNOWNDEV_NOPROD, "Philips", + NULL, }, { - USB_VENDOR_CONNECTIX, + USB_VENDOR_CONNECTIX, 0, + USB_KNOWNDEV_NOPROD, "Connectix", + NULL, }, { - USB_VENDOR_KENSINGTON, + USB_VENDOR_KENSINGTON, 0, + USB_KNOWNDEV_NOPROD, "Kensington", + NULL, }, { - USB_VENDOR_LUCENT, + USB_VENDOR_LUCENT, 0, + USB_KNOWNDEV_NOPROD, "Lucent", + NULL, }, { - USB_VENDOR_STMICRO, + USB_VENDOR_STMICRO, 0, + USB_KNOWNDEV_NOPROD, "STMicroelectronics", + NULL, }, { - USB_VENDOR_YAMAHA, + USB_VENDOR_YAMAHA, 0, + USB_KNOWNDEV_NOPROD, "YAMAHA", + NULL, }, { - USB_VENDOR_COMPAQ, + USB_VENDOR_COMPAQ, 0, + USB_KNOWNDEV_NOPROD, "Compaq", + NULL, }, { - USB_VENDOR_ACERP, + USB_VENDOR_ACERP, 0, + USB_KNOWNDEV_NOPROD, "Acer Peripherals", + NULL, }, { - USB_VENDOR_VISIONEER, + USB_VENDOR_VISIONEER, 0, + USB_KNOWNDEV_NOPROD, "Visioneer", + NULL, }, { - USB_VENDOR_CANON, + USB_VENDOR_CANON, 0, + USB_KNOWNDEV_NOPROD, "Canon", + NULL, }, { - USB_VENDOR_NIKON, + USB_VENDOR_NIKON, 0, + USB_KNOWNDEV_NOPROD, "Nikon", + NULL, }, { - USB_VENDOR_IBM, + USB_VENDOR_IBM, 0, + USB_KNOWNDEV_NOPROD, "IBM", + NULL, }, { - USB_VENDOR_CYPRESS, + USB_VENDOR_CYPRESS, 0, + USB_KNOWNDEV_NOPROD, "Cypress Semiconductor", + NULL, }, { - USB_VENDOR_EPSON, + USB_VENDOR_EPSON, 0, + USB_KNOWNDEV_NOPROD, "Seiko Epson", + NULL, }, { - USB_VENDOR_RAINBOW, + USB_VENDOR_RAINBOW, 0, + USB_KNOWNDEV_NOPROD, "Rainbow Technologies", + NULL, }, { - USB_VENDOR_IODATA, + USB_VENDOR_IODATA, 0, + USB_KNOWNDEV_NOPROD, "I/O Data", + NULL, }, { - USB_VENDOR_3COMUSR, + USB_VENDOR_TDK, 0, + USB_KNOWNDEV_NOPROD, + "TDK", + NULL, + }, + { + USB_VENDOR_3COMUSR, 0, + USB_KNOWNDEV_NOPROD, "U.S. Robotics", + NULL, }, { - USB_VENDOR_METHODE, + USB_VENDOR_METHODE, 0, + USB_KNOWNDEV_NOPROD, "Methode Electronics Far East", + NULL, }, { - USB_VENDOR_MAXISWITCH, + USB_VENDOR_MAXISWITCH, 0, + USB_KNOWNDEV_NOPROD, "Maxi Switch", + NULL, }, { - USB_VENDOR_LOCKHEEDMER, + USB_VENDOR_LOCKHEEDMER, 0, + USB_KNOWNDEV_NOPROD, "Lockheed Martin Energy Research", + NULL, }, { - USB_VENDOR_FUJITSU, + USB_VENDOR_FUJITSU, 0, + USB_KNOWNDEV_NOPROD, "Fujitsu", + NULL, }, { - USB_VENDOR_TOSHIBAAM, + USB_VENDOR_TOSHIBAAM, 0, + USB_KNOWNDEV_NOPROD, "Toshiba America Electronic Components", + NULL, }, { - USB_VENDOR_MICROMACRO, + USB_VENDOR_MICROMACRO, 0, + USB_KNOWNDEV_NOPROD, "Micro Macro Technologies", + NULL, }, { - USB_VENDOR_KONICA, + USB_VENDOR_KONICA, 0, + USB_KNOWNDEV_NOPROD, "Konica", + NULL, }, { - USB_VENDOR_LITEON, + USB_VENDOR_LITEON, 0, + USB_KNOWNDEV_NOPROD, "Lite-On Technology", + NULL, }, { - USB_VENDOR_FUJIPHOTO, + USB_VENDOR_FUJIPHOTO, 0, + USB_KNOWNDEV_NOPROD, "Fuji Photo Film", + NULL, }, { - USB_VENDOR_PHILIPSSEMI, + USB_VENDOR_PHILIPSSEMI, 0, + USB_KNOWNDEV_NOPROD, "Philips Semiconductors", + NULL, }, { - USB_VENDOR_TATUNG, + USB_VENDOR_TATUNG, 0, + USB_KNOWNDEV_NOPROD, "Tatung Co. Of America", + NULL, }, { - USB_VENDOR_SCANLOGIC, + USB_VENDOR_SCANLOGIC, 0, + USB_KNOWNDEV_NOPROD, "ScanLogic", + NULL, }, { - USB_VENDOR_MYSON, + USB_VENDOR_MYSON, 0, + USB_KNOWNDEV_NOPROD, "Myson Technology", + NULL, }, { - USB_VENDOR_DIGI2, + USB_VENDOR_DIGI2, 0, + USB_KNOWNDEV_NOPROD, "Digi", + NULL, }, { - USB_VENDOR_ITTCANON, + USB_VENDOR_ITTCANON, 0, + USB_KNOWNDEV_NOPROD, "ITT Canon", + NULL, }, { - USB_VENDOR_ALTEC, + USB_VENDOR_ALTEC, 0, + USB_KNOWNDEV_NOPROD, "Altec Lansing", + NULL, }, { - USB_VENDOR_SHUTTLE, + USB_VENDOR_PANASONIC, 0, + USB_KNOWNDEV_NOPROD, + "Panasonic (Matsushita)", + NULL, + }, + { + USB_VENDOR_SHUTTLE, 0, + USB_KNOWNDEV_NOPROD, "Shuttle Technology", + NULL, }, { - USB_VENDOR_ANNABOOKS, + USB_VENDOR_ANNABOOKS, 0, + USB_KNOWNDEV_NOPROD, "Annabooks", + NULL, }, { - USB_VENDOR_CHICONY, + USB_VENDOR_CHICONY, 0, + USB_KNOWNDEV_NOPROD, "Chicony Electronics", + NULL, }, { - USB_VENDOR_BROTHER, + USB_VENDOR_BROTHER, 0, + USB_KNOWNDEV_NOPROD, "Brother Industries", + NULL, }, { - USB_VENDOR_DALLAS, + USB_VENDOR_DALLAS, 0, + USB_KNOWNDEV_NOPROD, "Dallas Semiconductor", + NULL, }, { - USB_VENDOR_ACER, + USB_VENDOR_ACER, 0, + USB_KNOWNDEV_NOPROD, "Acer", + NULL, }, { - USB_VENDOR_3COM, + USB_VENDOR_3COM, 0, + USB_KNOWNDEV_NOPROD, "3Com", + NULL, }, { - USB_VENDOR_AZTECH, + USB_VENDOR_AZTECH, 0, + USB_KNOWNDEV_NOPROD, "Aztech Systems", + NULL, }, { - USB_VENDOR_BELKIN, + USB_VENDOR_BELKIN, 0, + USB_KNOWNDEV_NOPROD, "Belkin Components", + NULL, }, { - USB_VENDOR_KAWATSU, + USB_VENDOR_KAWATSU, 0, + USB_KNOWNDEV_NOPROD, "Kawatsu Semiconductor", + NULL, }, { - USB_VENDOR_APC, + USB_VENDOR_APC, 0, + USB_KNOWNDEV_NOPROD, "American Power Conversion", + NULL, }, { - USB_VENDOR_CONNECTEK, + USB_VENDOR_CONNECTEK, 0, + USB_KNOWNDEV_NOPROD, "Advanced Connectek USA", + NULL, }, { - USB_VENDOR_NETCHIP, + USB_VENDOR_NETCHIP, 0, + USB_KNOWNDEV_NOPROD, "NetChip Technology", + NULL, }, { - USB_VENDOR_ALTRA, + USB_VENDOR_ALTRA, 0, + USB_KNOWNDEV_NOPROD, "ALTRA", + NULL, }, { - USB_VENDOR_ATI, + USB_VENDOR_ATI, 0, + USB_KNOWNDEV_NOPROD, "ATI Technologies", + NULL, }, { - USB_VENDOR_AKS, + USB_VENDOR_AKS, 0, + USB_KNOWNDEV_NOPROD, "Aladdin Knowledge Systems", + NULL, }, { - USB_VENDOR_UNIACCESS, + USB_VENDOR_UNIACCESS, 0, + USB_KNOWNDEV_NOPROD, "Universal Access", + NULL, + }, + { + USB_VENDOR_XIRLINK, 0, + USB_KNOWNDEV_NOPROD, + "Xirlink", + NULL, }, { - USB_VENDOR_ANCHOR, + USB_VENDOR_ANCHOR, 0, + USB_KNOWNDEV_NOPROD, "Anchor Chips", + NULL, }, { - USB_VENDOR_SONY, + USB_VENDOR_SONY, 0, + USB_KNOWNDEV_NOPROD, "Sony", + NULL, }, { - USB_VENDOR_VISION, + USB_VENDOR_VISION, 0, + USB_KNOWNDEV_NOPROD, "VLSI Vision", + NULL, }, { - USB_VENDOR_ASAHIKASEI, + USB_VENDOR_ASAHIKASEI, 0, + USB_KNOWNDEV_NOPROD, "Asahi Kasei Microsystems", + NULL, }, { - USB_VENDOR_ATEN, + USB_VENDOR_ATEN, 0, + USB_KNOWNDEV_NOPROD, "ATEN International", + NULL, }, { - USB_VENDOR_MUSTEK, + USB_VENDOR_MUSTEK, 0, + USB_KNOWNDEV_NOPROD, "Mustek Systems", + NULL, }, { - USB_VENDOR_TELEX, + USB_VENDOR_TELEX, 0, + USB_KNOWNDEV_NOPROD, "Telex Communications", + NULL, }, { - USB_VENDOR_PERACOM, + USB_VENDOR_PERACOM, 0, + USB_KNOWNDEV_NOPROD, "Peracom Networks", + NULL, }, { - USB_VENDOR_ALCOR2, + USB_VENDOR_ALCOR2, 0, + USB_KNOWNDEV_NOPROD, "Alcor Micro", + NULL, }, { - USB_VENDOR_WACOM, + USB_VENDOR_WACOM, 0, + USB_KNOWNDEV_NOPROD, "WACOM", + NULL, }, { - USB_VENDOR_ETEK, + USB_VENDOR_ETEK, 0, + USB_KNOWNDEV_NOPROD, "e-TEK Labs", + NULL, }, { - USB_VENDOR_EIZO, + USB_VENDOR_EIZO, 0, + USB_KNOWNDEV_NOPROD, "EIZO", + NULL, }, { - USB_VENDOR_ELECOM, + USB_VENDOR_ELECOM, 0, + USB_KNOWNDEV_NOPROD, "Elecom", + NULL, + }, + { + USB_VENDOR_HAUPPAUGE, 0, + USB_KNOWNDEV_NOPROD, + "Hauppauge Computer Works", + NULL, }, { - USB_VENDOR_BAFO, + USB_VENDOR_BAFO, 0, + USB_KNOWNDEV_NOPROD, "BAFO/Quality Computer Accessories", + NULL, }, { - USB_VENDOR_YEDATA, + USB_VENDOR_YEDATA, 0, + USB_KNOWNDEV_NOPROD, "Y-E Data", + NULL, }, { - USB_VENDOR_AVM, + USB_VENDOR_AVM, 0, + USB_KNOWNDEV_NOPROD, "AVM", + NULL, }, { - USB_VENDOR_QUICKSHOT, + USB_VENDOR_QUICKSHOT, 0, + USB_KNOWNDEV_NOPROD, "Quickshot", + NULL, }, { - USB_VENDOR_ROLAND, + USB_VENDOR_ROLAND, 0, + USB_KNOWNDEV_NOPROD, "Roland", + NULL, }, { - USB_VENDOR_ROCKFIRE, + USB_VENDOR_ROCKFIRE, 0, + USB_KNOWNDEV_NOPROD, "Rockfire", + NULL, }, { - USB_VENDOR_ZYXEL, + USB_VENDOR_ZYXEL, 0, + USB_KNOWNDEV_NOPROD, "ZyXEL Communication", + NULL, }, { - USB_VENDOR_ALCOR, + USB_VENDOR_ALCOR, 0, + USB_KNOWNDEV_NOPROD, "Alcor Micro", + NULL, }, { - USB_VENDOR_IOMEGA, + USB_VENDOR_IOMEGA, 0, + USB_KNOWNDEV_NOPROD, "Iomega", + NULL, }, { - USB_VENDOR_ATREND, + USB_VENDOR_ATREND, 0, + USB_KNOWNDEV_NOPROD, "A-Trend Technology", + NULL, }, { - USB_VENDOR_AID, + USB_VENDOR_AID, 0, + USB_KNOWNDEV_NOPROD, "Advanced Input Devices", + NULL, }, { - USB_VENDOR_LACIE, + USB_VENDOR_LACIE, 0, + USB_KNOWNDEV_NOPROD, "LaCie", + NULL, }, { - USB_VENDOR_OMNIVISION, + USB_VENDOR_OMNIVISION, 0, + USB_KNOWNDEV_NOPROD, "OmniVision", + NULL, }, { - USB_VENDOR_INSYSTEM, + USB_VENDOR_INSYSTEM, 0, + USB_KNOWNDEV_NOPROD, "In-System Design", + NULL, }, { - USB_VENDOR_APPLE, + USB_VENDOR_APPLE, 0, + USB_KNOWNDEV_NOPROD, "Apple Computer", + NULL, }, { - USB_VENDOR_DIGI, + USB_VENDOR_DIGI, 0, + USB_KNOWNDEV_NOPROD, "Digi International", + NULL, }, { - USB_VENDOR_QTRONIX, + USB_VENDOR_QTRONIX, 0, + USB_KNOWNDEV_NOPROD, "Qtronix", + NULL, }, { - USB_VENDOR_ELSA, + USB_VENDOR_ELSA, 0, + USB_KNOWNDEV_NOPROD, "ELSA", + NULL, }, { - USB_VENDOR_BRAINBOXES, + USB_VENDOR_BRAINBOXES, 0, + USB_KNOWNDEV_NOPROD, "Brainboxes Limited", + NULL, }, { - USB_VENDOR_AXIOHM, + USB_VENDOR_AXIOHM, 0, + USB_KNOWNDEV_NOPROD, "Axiohm Transaction Solutions", + NULL, }, { - USB_VENDOR_MICROTEK, + USB_VENDOR_MICROTEK, 0, + USB_KNOWNDEV_NOPROD, "Microtek", + NULL, }, { - USB_VENDOR_SYMBOL, + USB_VENDOR_LEXAR, 0, + USB_KNOWNDEV_NOPROD, + "Lexar Media", + NULL, + }, + { + USB_VENDOR_SYMBOL, 0, + USB_KNOWNDEV_NOPROD, "Symbol Technologies", + NULL, }, { - USB_VENDOR_GENESYS, + USB_VENDOR_GENESYS, 0, + USB_KNOWNDEV_NOPROD, "Genesys Logic", + NULL, }, { - USB_VENDOR_FUJI, + USB_VENDOR_FUJI, 0, + USB_KNOWNDEV_NOPROD, "Fuji Electric", + NULL, }, { - USB_VENDOR_KEITHLEY, + USB_VENDOR_KEITHLEY, 0, + USB_KNOWNDEV_NOPROD, "Keithley Instruments", + NULL, }, { - USB_VENDOR_EIZONANAO, + USB_VENDOR_EIZONANAO, 0, + USB_KNOWNDEV_NOPROD, "EIZO Nanao", + NULL, }, { - USB_VENDOR_KLSI, + USB_VENDOR_KLSI, 0, + USB_KNOWNDEV_NOPROD, "Kawasaki LSI", + NULL, }, { - USB_VENDOR_FFC, + USB_VENDOR_FFC, 0, + USB_KNOWNDEV_NOPROD, "FFC Limited", + NULL, }, { - USB_VENDOR_ANKO, + USB_VENDOR_ANKO, 0, + USB_KNOWNDEV_NOPROD, "Anko Electronic", + NULL, }, { - USB_VENDOR_PIENGINEERING, + USB_VENDOR_PIENGINEERING, 0, + USB_KNOWNDEV_NOPROD, "P.I. Engineering", + NULL, }, { - USB_VENDOR_AOC, + USB_VENDOR_AOC, 0, + USB_KNOWNDEV_NOPROD, "AOC International", + NULL, }, { - USB_VENDOR_CHIC, + USB_VENDOR_CHIC, 0, + USB_KNOWNDEV_NOPROD, "Chic Technology", + NULL, }, { - USB_VENDOR_BARCO, + USB_VENDOR_BARCO, 0, + USB_KNOWNDEV_NOPROD, "Barco Display Systems", + NULL, }, { - USB_VENDOR_BRIDGE, + USB_VENDOR_BRIDGE, 0, + USB_KNOWNDEV_NOPROD, "Bridge Information", + NULL, }, { - USB_VENDOR_SOLIDYEAR, + USB_VENDOR_SOLIDYEAR, 0, + USB_KNOWNDEV_NOPROD, "Solid Year", + NULL, }, { - USB_VENDOR_BIORAD, + USB_VENDOR_BIORAD, 0, + USB_KNOWNDEV_NOPROD, "Bio-Rad Laboratories", + NULL, }, { - USB_VENDOR_MACALLY, + USB_VENDOR_MACALLY, 0, + USB_KNOWNDEV_NOPROD, "Macally", + NULL, }, { - USB_VENDOR_ACTLABS, + USB_VENDOR_ACTLABS, 0, + USB_KNOWNDEV_NOPROD, "Act Labs", + NULL, }, { - USB_VENDOR_ALARIS, + USB_VENDOR_ALARIS, 0, + USB_KNOWNDEV_NOPROD, "Alaris", + NULL, }, { - USB_VENDOR_APEX, + USB_VENDOR_APEX, 0, + USB_KNOWNDEV_NOPROD, "Apex", + NULL, }, { - USB_VENDOR_AVISION, + USB_VENDOR_AVISION, 0, + USB_KNOWNDEV_NOPROD, "Avision", + NULL, }, { - USB_VENDOR_TEAC, + USB_VENDOR_TEAC, 0, + USB_KNOWNDEV_NOPROD, "TEAC", + NULL, }, { - USB_VENDOR_LINKSYS, + USB_VENDOR_LINKSYS, 0, + USB_KNOWNDEV_NOPROD, "Linksys", + NULL, }, { - USB_VENDOR_ACERSA, + USB_VENDOR_ACERSA, 0, + USB_KNOWNDEV_NOPROD, "Acer Semiconductor America", + NULL, }, { - USB_VENDOR_AIWA, + USB_VENDOR_AIWA, 0, + USB_KNOWNDEV_NOPROD, "Aiwa", + NULL, }, { - USB_VENDOR_ACARD, + USB_VENDOR_ACARD, 0, + USB_KNOWNDEV_NOPROD, "ACARD Technology", + NULL, }, { - USB_VENDOR_PROLIFIC, + USB_VENDOR_PROLIFIC, 0, + USB_KNOWNDEV_NOPROD, "Prolific Technology", + NULL, }, { - USB_VENDOR_ADVANCELOGIC, + USB_VENDOR_ADVANCELOGIC, 0, + USB_KNOWNDEV_NOPROD, "Avance Logic", + NULL, + }, + { + USB_VENDOR_HAGIWARA, 0, + USB_KNOWNDEV_NOPROD, + "Hagiwara Sys-Com", + NULL, }, { - USB_VENDOR_CTX, + USB_VENDOR_CTX, 0, + USB_KNOWNDEV_NOPROD, "Chuntex", + NULL, }, { - USB_VENDOR_ASKEY, + USB_VENDOR_ASKEY, 0, + USB_KNOWNDEV_NOPROD, "Askey Computer", + NULL, }, { - USB_VENDOR_ALCATELT, + USB_VENDOR_ALCATELT, 0, + USB_KNOWNDEV_NOPROD, "Alcatel Telecom", + NULL, }, { - USB_VENDOR_AGFA, + USB_VENDOR_AGFA, 0, + USB_KNOWNDEV_NOPROD, "AGFA-Gevaert NV", + NULL, }, { - USB_VENDOR_ASIAMD, + USB_VENDOR_ASIAMD, 0, + USB_KNOWNDEV_NOPROD, "Asia Microelectronic Development", + NULL, }, { - USB_VENDOR_BIZLINK, + USB_VENDOR_BIZLINK, 0, + USB_KNOWNDEV_NOPROD, "Bizlink International", + NULL, + }, + { + USB_VENDOR_KEYSPAN, 0, + USB_KNOWNDEV_NOPROD, + "Keyspan", + NULL, }, { - USB_VENDOR_AASHIMA, + USB_VENDOR_AASHIMA, 0, + USB_KNOWNDEV_NOPROD, "Aashima Technology B.V.", + NULL, }, { - USB_VENDOR_MULTITECH, + USB_VENDOR_MULTITECH, 0, + USB_KNOWNDEV_NOPROD, "MultiTech", + NULL, }, { - USB_VENDOR_ADS, + USB_VENDOR_ADS, 0, + USB_KNOWNDEV_NOPROD, "ADS Technologies", + NULL, }, { - USB_VENDOR_ALCATELM, + USB_VENDOR_ALCATELM, 0, + USB_KNOWNDEV_NOPROD, "Alcatel Microelectronics", + NULL, }, { - USB_VENDOR_SIRIUS, + USB_VENDOR_SIRIUS, 0, + USB_KNOWNDEV_NOPROD, "Sirius Technologies", + NULL, }, { - USB_VENDOR_BOSTON, + USB_VENDOR_BOSTON, 0, + USB_KNOWNDEV_NOPROD, "Boston Acoustics", + NULL, }, { - USB_VENDOR_SMC, + USB_VENDOR_SMC, 0, + USB_KNOWNDEV_NOPROD, "Standard Microsystems", + NULL, }, { - USB_VENDOR_MCT, + USB_VENDOR_PUTERCOM, 0, + USB_KNOWNDEV_NOPROD, + "Putercom", + NULL, + }, + { + USB_VENDOR_MCT, 0, + USB_KNOWNDEV_NOPROD, "MCT", + NULL, }, { - USB_VENDOR_AUREAL, + USB_VENDOR_DIGITALSTREAM, 0, + USB_KNOWNDEV_NOPROD, + "Digital Stream", + NULL, + }, + { + USB_VENDOR_AUREAL, 0, + USB_KNOWNDEV_NOPROD, "Aureal Semiconductor", + NULL, }, { - USB_VENDOR_MIDIMAN, + USB_VENDOR_MIDIMAN, 0, + USB_KNOWNDEV_NOPROD, "Midiman", + NULL, }, { - USB_VENDOR_GRIFFIN, + USB_VENDOR_GRIFFIN, 0, + USB_KNOWNDEV_NOPROD, "Griffin Technology", + NULL, }, { - USB_VENDOR_SANDISK, + USB_VENDOR_SANDISK, 0, + USB_KNOWNDEV_NOPROD, "SanDisk", + NULL, }, { - USB_VENDOR_BRIMAX, + USB_VENDOR_BRIMAX, 0, + USB_KNOWNDEV_NOPROD, "Brimax", + NULL, }, { - USB_VENDOR_AXIS, + USB_VENDOR_AXIS, 0, + USB_KNOWNDEV_NOPROD, "Axis Communications AB", + NULL, }, { - USB_VENDOR_ABL, + USB_VENDOR_ABL, 0, + USB_KNOWNDEV_NOPROD, "ABL Electronics", + NULL, }, { - USB_VENDOR_ALFADATA, + USB_VENDOR_ALFADATA, 0, + USB_KNOWNDEV_NOPROD, "Alfadata Computer", + NULL, }, { - USB_VENDOR_NATIONALTECH, + USB_VENDOR_NATIONALTECH, 0, + USB_KNOWNDEV_NOPROD, "National Technical Systems", + NULL, }, { - USB_VENDOR_ONNTO, + USB_VENDOR_ONNTO, 0, + USB_KNOWNDEV_NOPROD, "Onnto", + NULL, }, { - USB_VENDOR_BE, + USB_VENDOR_BE, 0, + USB_KNOWNDEV_NOPROD, "Be", + NULL, }, { - USB_VENDOR_ADMTEK, + USB_VENDOR_ADMTEK, 0, + USB_KNOWNDEV_NOPROD, "ADMtek", + NULL, }, { - USB_VENDOR_COREGA, + USB_VENDOR_COREGA, 0, + USB_KNOWNDEV_NOPROD, "Corega", + NULL, }, { - USB_VENDOR_FREECOM, + USB_VENDOR_FREECOM, 0, + USB_KNOWNDEV_NOPROD, "Freecom", + NULL, }, { - USB_VENDOR_MICROTECH, + USB_VENDOR_MICROTECH, 0, + USB_KNOWNDEV_NOPROD, "Microtech", + NULL, }, { - USB_VENDOR_ABOCOM, + USB_VENDOR_OLYMPUS, 0, + USB_KNOWNDEV_NOPROD, + "Olympus", + NULL, + }, + { + USB_VENDOR_ABOCOM, 0, + USB_KNOWNDEV_NOPROD, "AboCom Systems", + NULL, }, { - USB_VENDOR_KEISOKUGIKEN, + USB_VENDOR_KEISOKUGIKEN, 0, + USB_KNOWNDEV_NOPROD, "Keisokugiken", + NULL, }, { - USB_VENDOR_APG, + USB_VENDOR_APG, 0, + USB_KNOWNDEV_NOPROD, "APG Cash Drawer", + NULL, }, { - USB_VENDOR_BUG, + USB_VENDOR_BUG, 0, + USB_KNOWNDEV_NOPROD, "B.U.G.", + NULL, }, { - USB_VENDOR_ALLIEDTELESYN, + USB_VENDOR_ALLIEDTELESYN, 0, + USB_KNOWNDEV_NOPROD, "Allied Telesyn International", + NULL, }, { - USB_VENDOR_AVERMEDIA, + USB_VENDOR_AVERMEDIA, 0, + USB_KNOWNDEV_NOPROD, "AVerMedia Technologies", + NULL, }, { - USB_VENDOR_SIIG, + USB_VENDOR_SIIG, 0, + USB_KNOWNDEV_NOPROD, "SIIG", + NULL, + }, + { + USB_VENDOR_CASIO, 0, + USB_KNOWNDEV_NOPROD, + "CASIO", + NULL, }, { - USB_VENDOR_APTIO, + USB_VENDOR_APTIO, 0, + USB_KNOWNDEV_NOPROD, "Aptio Products", + NULL, }, { - USB_VENDOR_ARASAN, + USB_VENDOR_ARASAN, 0, + USB_KNOWNDEV_NOPROD, "Arasan Chip Systems", + NULL, }, { - USB_VENDOR_ALLIEDCABLE, + USB_VENDOR_ALLIEDCABLE, 0, + USB_KNOWNDEV_NOPROD, "Allied Cable", + NULL, }, { - USB_VENDOR_STSN, + USB_VENDOR_STSN, 0, + USB_KNOWNDEV_NOPROD, "STSN", + NULL, }, { - USB_VENDOR_ZOOM, + USB_VENDOR_ZOOM, 0, + USB_KNOWNDEV_NOPROD, "Zoom Telephonics", + NULL, }, { - USB_VENDOR_BROADLOGIC, + USB_VENDOR_BROADLOGIC, 0, + USB_KNOWNDEV_NOPROD, "BroadLogic", + NULL, }, { - USB_VENDOR_HANDSPRING, + USB_VENDOR_HANDSPRING, 0, + USB_KNOWNDEV_NOPROD, "Handspring", + NULL, }, { - USB_VENDOR_ACTIONSTAR, + USB_VENDOR_ACTIONSTAR, 0, + USB_KNOWNDEV_NOPROD, "Action Star Enterprise", + NULL, }, { - USB_VENDOR_PALM, + USB_VENDOR_PALM, 0, + USB_KNOWNDEV_NOPROD, "Palm Computing", + NULL, }, { - USB_VENDOR_ACCTON, + USB_VENDOR_ACCTON, 0, + USB_KNOWNDEV_NOPROD, "Accton Technology", + NULL, }, { - USB_VENDOR_DIAMOND, + USB_VENDOR_DIAMOND, 0, + USB_KNOWNDEV_NOPROD, "Diamond", + NULL, }, { - USB_VENDOR_NETGEAR, + USB_VENDOR_NETGEAR, 0, + USB_KNOWNDEV_NOPROD, "BayNETGEAR", + NULL, }, { - USB_VENDOR_ACTIVEWIRE, + USB_VENDOR_ACTIVEWIRE, 0, + USB_KNOWNDEV_NOPROD, "ActiveWire", + NULL, }, { - USB_VENDOR_METRICOM, + USB_VENDOR_PORTGEAR, 0, + USB_KNOWNDEV_NOPROD, + "PortGear", + NULL, + }, + { + USB_VENDOR_METRICOM, 0, + USB_KNOWNDEV_NOPROD, "Metricom", + NULL, }, { - USB_VENDOR_ADESSOKBTEK, + USB_VENDOR_ADESSOKBTEK, 0, + USB_KNOWNDEV_NOPROD, "ADESSO/Kbtek America", + NULL, }, { - USB_VENDOR_APT, + USB_VENDOR_JATON, 0, + USB_KNOWNDEV_NOPROD, + "Jaton", + NULL, + }, + { + USB_VENDOR_APT, 0, + USB_KNOWNDEV_NOPROD, "APT Technologies", + NULL, }, { - USB_VENDOR_BOCARESEARCH, + USB_VENDOR_BOCARESEARCH, 0, + USB_KNOWNDEV_NOPROD, "Boca Research", + NULL, }, { - USB_VENDOR_ANDREA, + USB_VENDOR_ANDREA, 0, + USB_KNOWNDEV_NOPROD, "Andrea Electronics", + NULL, }, { - USB_VENDOR_BURRBROWN, + USB_VENDOR_BURRBROWN, 0, + USB_KNOWNDEV_NOPROD, "Burr-Brown Japan", + NULL, }, { - USB_VENDOR_2WIRE, + USB_VENDOR_2WIRE, 0, + USB_KNOWNDEV_NOPROD, "2Wire, Inc", + NULL, }, { - USB_VENDOR_AIPTEK, + USB_VENDOR_AIPTEK, 0, + USB_KNOWNDEV_NOPROD, "AIPTEK International", + NULL, }, { - USB_VENDOR_SMARTBRIDGES, + USB_VENDOR_SMARTBRIDGES, 0, + USB_KNOWNDEV_NOPROD, "SmartBridges", + NULL, }, { - USB_VENDOR_BILLIONTON, + USB_VENDOR_BILLIONTON, 0, + USB_KNOWNDEV_NOPROD, "Billionton Systems", + NULL, }, { - USB_VENDOR_EXTENDED, + USB_VENDOR_EXTENDED, 0, + USB_KNOWNDEV_NOPROD, "Extended Systems", + NULL, + }, + { + USB_VENDOR_MSYSTEMS, 0, + USB_KNOWNDEV_NOPROD, + "M-Systems", + NULL, }, { - USB_VENDOR_AUTHENTEC, + USB_VENDOR_AUTHENTEC, 0, + USB_KNOWNDEV_NOPROD, "AuthenTec", + NULL, }, { - USB_VENDOR_ALATION, + USB_VENDOR_ALATION, 0, + USB_KNOWNDEV_NOPROD, "Alation Systems", + NULL, }, { - USB_VENDOR_BIOMETRIC, + USB_VENDOR_BIOMETRIC, 0, + USB_KNOWNDEV_NOPROD, "American Biometric Company", + NULL, }, { - USB_VENDOR_YANO, + USB_VENDOR_YANO, 0, + USB_KNOWNDEV_NOPROD, "Yano", + NULL, }, { - USB_VENDOR_KINGSTON, + USB_VENDOR_KINGSTON, 0, + USB_KNOWNDEV_NOPROD, "Kingston Technology", + NULL, }, { - USB_VENDOR_BLUEWATER, + USB_VENDOR_BLUEWATER, 0, + USB_KNOWNDEV_NOPROD, "BlueWater Systems", + NULL, }, { - USB_VENDOR_AGILENT, + USB_VENDOR_AGILENT, 0, + USB_KNOWNDEV_NOPROD, "Agilent Technologies", + NULL, + }, + { + USB_VENDOR_PORTSMITH, 0, + USB_KNOWNDEV_NOPROD, + "Portsmith", + NULL, }, { - USB_VENDOR_ADIRONDACK, + USB_VENDOR_ADIRONDACK, 0, + USB_KNOWNDEV_NOPROD, "Adirondack Wire & Cable", + NULL, }, { - USB_VENDOR_BECKHOFF, + USB_VENDOR_BECKHOFF, 0, + USB_KNOWNDEV_NOPROD, "Beckhoff", + NULL, }, { - USB_VENDOR_ALTIUS, + USB_VENDOR_ALTIUS, 0, + USB_KNOWNDEV_NOPROD, "Altius Solutions", + NULL, }, { - USB_VENDOR_ARRIS, + USB_VENDOR_ARRIS, 0, + USB_KNOWNDEV_NOPROD, "Arris Interactive", + NULL, }, { - USB_VENDOR_ACTIVCARD, + USB_VENDOR_ACTIVCARD, 0, + USB_KNOWNDEV_NOPROD, "ACTIVCARD", + NULL, }, { - USB_VENDOR_ACTISYS, + USB_VENDOR_ACTISYS, 0, + USB_KNOWNDEV_NOPROD, "ACTiSYS", + NULL, }, { - USB_VENDOR_AFOURTECH, + USB_VENDOR_AFOURTECH, 0, + USB_KNOWNDEV_NOPROD, "A-FOUR TECH", + NULL, }, { - USB_VENDOR_AIMEX, + USB_VENDOR_AIMEX, 0, + USB_KNOWNDEV_NOPROD, "AIMEX", + NULL, }, { - USB_VENDOR_ADDONICS, + USB_VENDOR_ADDONICS, 0, + USB_KNOWNDEV_NOPROD, "Addonics Technologies", + NULL, }, { - USB_VENDOR_AKAI, + USB_VENDOR_AKAI, 0, + USB_KNOWNDEV_NOPROD, "AKAI professional M.I.", + NULL, }, { - USB_VENDOR_ARESCOM, + USB_VENDOR_ARESCOM, 0, + USB_KNOWNDEV_NOPROD, "ARESCOM", + NULL, }, { - USB_VENDOR_BAY, + USB_VENDOR_BAY, 0, + USB_KNOWNDEV_NOPROD, "Bay Associates", + NULL, }, { - USB_VENDOR_ALTERA, + USB_VENDOR_ALTERA, 0, + USB_KNOWNDEV_NOPROD, "Altera", + NULL, }, { - USB_VENDOR_TREK, + USB_VENDOR_TREK, 0, + USB_KNOWNDEV_NOPROD, "Trek Technology", + NULL, }, { - USB_VENDOR_ASAHIOPTICAL, + USB_VENDOR_ASAHIOPTICAL, 0, + USB_KNOWNDEV_NOPROD, "Asahi Optical", + NULL, }, { - USB_VENDOR_BOCASYSTEMS, + USB_VENDOR_BOCASYSTEMS, 0, + USB_KNOWNDEV_NOPROD, "Boca Systems", + NULL, }, { - USB_VENDOR_BROADCOM, + USB_VENDOR_BROADCOM, 0, + USB_KNOWNDEV_NOPROD, "Broadcom", + NULL, }, { - USB_VENDOR_GEOCAST, + USB_VENDOR_GREENHOUSE, 0, + USB_KNOWNDEV_NOPROD, + "GREENHOUSE", + NULL, + }, + { + USB_VENDOR_GEOCAST, 0, + USB_KNOWNDEV_NOPROD, "Geocast Network Systems", + NULL, }, { - USB_VENDOR_TODOS, + USB_VENDOR_TODOS, 0, + USB_KNOWNDEV_NOPROD, "Todos Data System", + NULL, }, { - USB_VENDOR_MOTOROLA, + USB_VENDOR_AGATE, 0, + USB_KNOWNDEV_NOPROD, + "Agate Technologies", + NULL, + }, + { + USB_VENDOR_MOTOROLA, 0, + USB_KNOWNDEV_NOPROD, "Motorola", + NULL, }, { - USB_VENDOR_PLX, + USB_VENDOR_PLX, 0, + USB_KNOWNDEV_NOPROD, "PLX", + NULL, + }, + { + USB_VENDOR_ASANTE, 0, + USB_KNOWNDEV_NOPROD, + "Asante", + NULL, }, { - USB_VENDOR_BELKIN2, + USB_VENDOR_BELKIN2, 0, + USB_KNOWNDEV_NOPROD, "Belkin Components", + NULL, + }, + { + USB_VENDOR_MOBILITY, 0, + USB_KNOWNDEV_NOPROD, + "Mobility", + NULL, + }, + { + USB_VENDOR_SHARK, 0, + USB_KNOWNDEV_NOPROD, + "Shark", + NULL, }, { - USB_VENDOR_SILICONPORTALS, + USB_VENDOR_SILICONPORTALS, 0, + USB_KNOWNDEV_NOPROD, "Silicon Portals", + NULL, }, { - USB_VENDOR_SOHOWARE, + USB_VENDOR_SOHOWARE, 0, + USB_KNOWNDEV_NOPROD, "SOHOware", + NULL, }, { - USB_VENDOR_UMAX, + USB_VENDOR_UMAX, 0, + USB_KNOWNDEV_NOPROD, "UMAX Data Systems", + NULL, }, { - USB_VENDOR_INSIDEOUT, + USB_VENDOR_INSIDEOUT, 0, + USB_KNOWNDEV_NOPROD, "Inside Out Networks", + NULL, }, { - USB_VENDOR_ENTREGA, + USB_VENDOR_ENTREGA, 0, + USB_KNOWNDEV_NOPROD, "Entrega", + NULL, }, { - USB_VENDOR_ACTIONTEC, + USB_VENDOR_ACTIONTEC, 0, + USB_KNOWNDEV_NOPROD, "Actiontec Electronics", + NULL, }, { - USB_VENDOR_DLINK, + USB_VENDOR_DLINK, 0, + USB_KNOWNDEV_NOPROD, "D-Link", + NULL, }, { - USB_VENDOR_INTEL, + USB_VENDOR_INTEL, 0, + USB_KNOWNDEV_NOPROD, "Intel", + NULL, }, { - USB_VENDOR_HP2, + USB_VENDOR_HP2, 0, + USB_KNOWNDEV_NOPROD, "Hewlett Packard", + NULL, }, - { 0, NULL } + { 0, 0, 0, NULL, NULL, } }; diff --git a/sys/dev/usb/usbdi.h b/sys/dev/usb/usbdi.h index 9d28cff2e8b..c4e2382736f 100644 --- a/sys/dev/usb/usbdi.h +++ b/sys/dev/usb/usbdi.h @@ -1,5 +1,5 @@ -/* $OpenBSD: usbdi.h,v 1.12 2001/05/03 02:20:34 aaron Exp $ */ -/* $NetBSD: usbdi.h,v 1.52 2001/05/01 16:43:44 lukem Exp $ */ +/* $OpenBSD: usbdi.h,v 1.13 2001/10/31 04:24:45 nate Exp $ */ +/* $NetBSD: usbdi.h,v 1.53 2001/08/15 00:04:59 augustss Exp $ */ /* $FreeBSD: src/sys/dev/usb/usbdi.h,v 1.18 1999/11/17 22:33:49 n_hibma Exp $ */ /* @@ -203,6 +203,7 @@ struct usb_attach_arg { int vendor; int product; int release; + int matchlvl; usbd_device_handle device; /* current device */ usbd_interface_handle iface; /* current interface */ int usegeneric; diff --git a/sys/dev/usb/usbdi_util.c b/sys/dev/usb/usbdi_util.c index 433ef577664..3109bde4fac 100644 --- a/sys/dev/usb/usbdi_util.c +++ b/sys/dev/usb/usbdi_util.c @@ -1,5 +1,5 @@ -/* $OpenBSD: usbdi_util.c,v 1.10 2000/11/08 18:10:39 aaron Exp $ */ -/* $NetBSD: usbdi_util.c,v 1.33 2000/06/01 15:51:27 augustss Exp $ */ +/* $OpenBSD: usbdi_util.c,v 1.11 2001/10/31 04:24:45 nate Exp $ */ +/* $NetBSD: usbdi_util.c,v 1.35 2001/10/26 17:58:21 augustss Exp $ */ /* $FreeBSD: src/sys/dev/usb/usbdi_util.c,v 1.14 1999/11/17 22:33:50 n_hibma Exp $ */ /* @@ -336,14 +336,14 @@ usbd_set_idle(usbd_interface_handle iface, int duration, int id) } usbd_status -usbd_get_report_descriptor(usbd_device_handle dev, int ifcno, int repid, +usbd_get_report_descriptor(usbd_device_handle dev, int ifcno, int size, void *d) { usb_device_request_t req; req.bmRequestType = UT_READ_INTERFACE; req.bRequest = UR_GET_DESCRIPTOR; - USETW2(req.wValue, UDESC_REPORT, repid); + USETW2(req.wValue, UDESC_REPORT, 0); /* report id should be 0 */ USETW(req.wIndex, ifcno); USETW(req.wLength, size); return (usbd_do_request(dev, &req, d)); @@ -380,7 +380,7 @@ usbd_get_hid_descriptor(usbd_interface_handle ifc) } usbd_status -usbd_alloc_report_desc(usbd_interface_handle ifc, void **descp, int *sizep, +usbd_read_report_desc(usbd_interface_handle ifc, void **descp, int *sizep, usb_malloc_type mem) { usb_interface_descriptor_t *id; @@ -401,11 +401,11 @@ usbd_alloc_report_desc(usbd_interface_handle ifc, void **descp, int *sizep, *descp = malloc(*sizep, mem, M_NOWAIT); if (*descp == NULL) return (USBD_NOMEM); - /* XXX should not use 0 Report ID */ - err = usbd_get_report_descriptor(dev, id->bInterfaceNumber, 0, - *sizep, *descp); + err = usbd_get_report_descriptor(dev, id->bInterfaceNumber, + *sizep, *descp); if (err) { free(*descp, mem); + *descp = NULL; return (err); } return (USBD_NORMAL_COMPLETION); diff --git a/sys/dev/usb/usbdi_util.h b/sys/dev/usb/usbdi_util.h index b2be4000ae6..224cb714787 100644 --- a/sys/dev/usb/usbdi_util.h +++ b/sys/dev/usb/usbdi_util.h @@ -1,5 +1,5 @@ -/* $OpenBSD: usbdi_util.h,v 1.7 2000/11/08 18:10:39 aaron Exp $ */ -/* $NetBSD: usbdi_util.h,v 1.22 2000/06/01 14:37:52 augustss Exp $ */ +/* $OpenBSD: usbdi_util.h,v 1.8 2001/10/31 04:24:45 nate Exp $ */ +/* $NetBSD: usbdi_util.h,v 1.23 2001/10/26 17:58:22 augustss Exp $ */ /* $FreeBSD: src/sys/dev/usb/usbdi_util.h,v 1.9 1999/11/17 22:33:50 n_hibma Exp $ */ /* @@ -57,7 +57,7 @@ usbd_status usbd_get_device_status(usbd_device_handle,usb_status_t*); usbd_status usbd_get_hub_status(usbd_device_handle, usb_hub_status_t *); usbd_status usbd_set_protocol(usbd_interface_handle dev, int report); usbd_status usbd_get_report_descriptor(usbd_device_handle dev, int ifcno, - int repid, int size, void *d); + int size, void *d); struct usb_hid_descriptor *usbd_get_hid_descriptor(usbd_interface_handle ifc); usbd_status usbd_set_report(usbd_interface_handle iface, int type, int id, void *data,int len); @@ -66,7 +66,7 @@ usbd_status usbd_set_report_async(usbd_interface_handle iface, int type, usbd_status usbd_get_report(usbd_interface_handle iface, int type, int id, void *data, int len); usbd_status usbd_set_idle(usbd_interface_handle iface, int duration,int id); -usbd_status usbd_alloc_report_desc(usbd_interface_handle ifc, void **descp, +usbd_status usbd_read_report_desc(usbd_interface_handle ifc, void **descp, int *sizep, usb_malloc_type mem); usbd_status usbd_get_config(usbd_device_handle dev, u_int8_t *conf); usbd_status usbd_get_string_desc(usbd_device_handle dev, int sindex, diff --git a/sys/dev/usb/usbdivar.h b/sys/dev/usb/usbdivar.h index dcd3a6bc1df..9d81200a6ff 100644 --- a/sys/dev/usb/usbdivar.h +++ b/sys/dev/usb/usbdivar.h @@ -1,4 +1,4 @@ -/* $OpenBSD: usbdivar.h,v 1.13 2001/05/03 02:20:34 aaron Exp $ */ +/* $OpenBSD: usbdivar.h,v 1.14 2001/10/31 04:24:45 nate Exp $ */ /* $NetBSD: usbdivar.h,v 1.63 2001/01/21 19:00:06 augustss Exp $ */ /* $FreeBSD: src/sys/dev/usb/usbdivar.h,v 1.11 1999/11/17 22:33:51 n_hibma Exp $ */ @@ -56,7 +56,7 @@ struct usbd_endpoint { struct usbd_bus_methods { usbd_status (*open_pipe)(struct usbd_pipe *pipe); - void (*soft_intr)(struct usbd_bus *); + void (*soft_intr)(void *); void (*do_poll)(struct usbd_bus *); usbd_status (*allocm)(struct usbd_bus *, usb_dma_t *, u_int32_t bufsize); @@ -115,7 +115,17 @@ struct usbd_bus { #define USBREV_1_0 2 #define USBREV_1_1 3 #define USBREV_2_0 4 -#define USBREV_STR { "unknown", "pre 1.0", "1.0", "1.1" } +#define USBREV_STR { "unknown", "pre 1.0", "1.0", "1.1", "2.0" } + +#if 0 +#ifdef USB_USE_SOFTINTR +#ifdef __HAVE_GENERIC_SOFT_INTERRUPTS + void *soft; /* soft interrupt cookie */ +#else + struct callout softi; +#endif +#endif +#endif #if defined(__NetBSD__) || defined(__OpenBSD__) bus_dma_tag_t dmatag; /* DMA tag */ diff --git a/sys/dev/usb/uscanner.c b/sys/dev/usb/uscanner.c index d79802aba41..aeb5b2febc6 100644 --- a/sys/dev/usb/uscanner.c +++ b/sys/dev/usb/uscanner.c @@ -1,5 +1,5 @@ -/* $OpenBSD: uscanner.c,v 1.3 2001/05/03 02:20:34 aaron Exp $ */ -/* $NetBSD: uscanner.c,v 1.12 2001/01/23 14:04:14 augustss Exp $ */ +/* $OpenBSD: uscanner.c,v 1.4 2001/10/31 04:24:45 nate Exp $ */ +/* $NetBSD: uscanner.c,v 1.18 2001/10/11 12:05:10 augustss Exp $ */ /* $FreeBSD$ */ /* @@ -98,6 +98,7 @@ static const struct scanner_id { /* HP */ { USB_VENDOR_HP, USB_PRODUCT_HP_3300C }, + { USB_VENDOR_HP, USB_PRODUCT_HP_3400CSE }, { USB_VENDOR_HP, USB_PRODUCT_HP_4100C }, { USB_VENDOR_HP, USB_PRODUCT_HP_4200C }, { USB_VENDOR_HP, USB_PRODUCT_HP_S20 }, @@ -148,14 +149,18 @@ static const struct scanner_id { { USB_VENDOR_EPSON, USB_PRODUCT_EPSON_636 }, { USB_VENDOR_EPSON, USB_PRODUCT_EPSON_610 }, { USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1200 }, + { USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1240 }, { USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1600 }, { USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1640 }, + { USB_VENDOR_EPSON, USB_PRODUCT_EPSON_640U }, + { USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1650 }, /* UMAX */ { USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA1220U }, { USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA1236U }, { USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA2000U }, { USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA2200U }, + { USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA3400 }, /* Visioneer */ { USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_5300 }, @@ -165,6 +170,9 @@ static const struct scanner_id { { USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_8100 }, { USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_8600 }, + /* Canon */ + { USB_VENDOR_CANON, USB_PRODUCT_CANON_N656U }, + { 0, 0 } }; diff --git a/sys/dev/usb/uyap.c b/sys/dev/usb/uyap.c index 695febe8d77..6c580d89994 100644 --- a/sys/dev/usb/uyap.c +++ b/sys/dev/usb/uyap.c @@ -1,5 +1,5 @@ -/* $OpenBSD: uyap.c,v 1.1 2001/01/29 00:43:40 aaron Exp $ */ -/* $NetBSD: uyap.c,v 1.2 2001/01/02 23:08:54 augustss Exp $ */ +/* $OpenBSD: uyap.c,v 1.2 2001/10/31 04:24:45 nate Exp $ */ +/* $NetBSD: uyap.c,v 1.4 2001/07/11 04:53:18 augustss Exp $ */ /* * Copyright (c) 2000 The NetBSD Foundation, Inc. @@ -69,8 +69,8 @@ USB_MATCH(uyap) return (UMATCH_NONE); /* Match the boot device. */ - if ((uaa->vendor == USB_VENDOR_SILICONPORTALS && - (uaa->product == USB_PRODUCT_SILICONPORTALS_YAPPH_NF))) + if (uaa->vendor == USB_VENDOR_SILICONPORTALS && + uaa->product == USB_PRODUCT_SILICONPORTALS_YAPPH_NF) return (UMATCH_VENDOR_PRODUCT); return (UMATCH_NONE); diff --git a/sys/dev/usb/uyap_firmware.h b/sys/dev/usb/uyap_firmware.h index 740778dc700..354d026f4d9 100644 --- a/sys/dev/usb/uyap_firmware.h +++ b/sys/dev/usb/uyap_firmware.h @@ -1,5 +1,5 @@ -/* $OpenBSD: uyap_firmware.h,v 1.1 2001/01/29 00:43:40 aaron Exp $ */ -/* $NetBSD: $ */ +/* $OpenBSD: uyap_firmware.h,v 1.2 2001/10/31 04:24:45 nate Exp $ */ +/* $NetBSD: uyap_firmware.h,v 1.2 2001/01/16 03:10:09 augustss Exp $ */ /* * Copyright (c) 2000 The NetBSD Foundation, Inc. |