Index: ehci.c =================================================================== RCS file: /dump/FreeBSD-CVS/src/sys/dev/usb/ehci.c,v retrieving revision 1.14.2.10 diff -u -r1.14.2.10 ehci.c --- ehci.c 29 Jan 2006 00:02:54 -0000 1.14.2.10 +++ ehci.c 29 Jan 2006 17:40:56 -0000 @@ -945,6 +945,8 @@ if (rv != 0) return (rv); +#else + sc->sc_dying = 1; #endif EOWRITE4(sc, EHCI_USBINTR, sc->sc_eintrs); @@ -2197,7 +2199,6 @@ void ehci_root_ctrl_done(usbd_xfer_handle xfer) { - xfer->hcpriv = NULL; } /************************/ @@ -2711,11 +2712,11 @@ } /* - * Some EHCI chips from VIA seem to trigger interrupts before writing back the - * qTD status, or miss signalling occasionally under heavy load. If the host - * machine is too fast, we we can miss transaction completion - when we scan - * the active list the transaction still seems to be active. This generally - * exhibits itself as a umass stall that never recovers. + * Some EHCI chips from VIA / ATI seem to trigger interrupts before writing + * back the qTD status, or miss signalling occasionally under heavy load. + * If the host machine is too fast, we can miss transaction completion - when + * we scan the active list the transaction still seems to be active. This + * generally exhibits itself as a umass stall that never recovers. * * We work around this behaviour by setting up this callback after any softintr * that completes with transactions still pending, giving us another chance to Index: ehci_pci.c =================================================================== RCS file: /dump/FreeBSD-CVS/src/sys/dev/usb/ehci_pci.c,v retrieving revision 1.14.2.3 diff -u -r1.14.2.3 ehci_pci.c --- ehci_pci.c 29 Jan 2006 00:02:54 -0000 1.14.2.3 +++ ehci_pci.c 29 Jan 2006 17:40:56 -0000 @@ -79,24 +79,66 @@ #define PCI_EHCI_VENDORID_ACERLABS 0x10b9 #define PCI_EHCI_VENDORID_AMD 0x1022 #define PCI_EHCI_VENDORID_APPLE 0x106b +#define PCI_EHCI_VENDORID_ATI 0x1002 #define PCI_EHCI_VENDORID_CMDTECH 0x1095 #define PCI_EHCI_VENDORID_INTEL 0x8086 #define PCI_EHCI_VENDORID_NEC 0x1033 #define PCI_EHCI_VENDORID_OPTI 0x1045 +#define PCI_EHCI_VENDORID_PHILIPS 0x1131 #define PCI_EHCI_VENDORID_SIS 0x1039 #define PCI_EHCI_VENDORID_NVIDIA 0x12D2 #define PCI_EHCI_VENDORID_NVIDIA2 0x10DE #define PCI_EHCI_VENDORID_VIA 0x1106 +/* AcerLabs/ALi */ +#define PCI_EHCI_DEVICEID_M5239 0x523910b9 +static const char *ehci_device_m5239 = "ALi M5239 USB 2.0 controller"; + +/* AMD */ +#define PCI_EHCI_DEVICEID_8111 0x10227463 +static const char *ehci_device_8111 = "AMD 8111 USB 2.0 controller"; + +/* ATI */ +#define PCI_EHCI_DEVICEID_SB200 0x43451002 +static const char *ehci_device_sb200 = "ATI SB200 USB 2.0 controller"; +#define PCI_EHCI_DEVICEID_SB400 0x43731002 +static const char *ehci_device_sb400 = "ATI SB400 USB 2.0 controller"; + +/* Intel */ +#define PCI_EHCI_DEVICEID_6300 0x25ad8086 +static const char *ehci_device_6300 = "Intel 6300ESB USB 2.0 controller"; +#define PCI_EHCI_DEVICEID_ICH4 0x24cd8086 +static const char *ehci_device_ich4 = "Intel 82801DB/L/M (ICH4) USB 2.0 controller"; +#define PCI_EHCI_DEVICEID_ICH5 0x24dd8086 +static const char *ehci_device_ich5 = "Intel 82801EB/R (ICH5) USB 2.0 controller"; +#define PCI_EHCI_DEVICEID_ICH6 0x265c8086 +static const char *ehci_device_ich6 = "Intel 82801FB (ICH6) USB 2.0 controller"; +#define PCI_EHCI_DEVICEID_ICH7 0x27cc8086 +static const char *ehci_device_ich7 = "Intel 82801GB/R (ICH7) USB 2.0 controller"; + +/* NEC */ #define PCI_EHCI_DEVICEID_NEC 0x00e01033 static const char *ehci_device_nec = "NEC uPD 720100 USB 2.0 controller"; +/* NVIDIA */ +#define PCI_EHCI_DEVICEID_NF2 0x006810de +static const char *ehci_device_nf2 = "NVIDIA nForce2 USB 2.0 controller"; +#define PCI_EHCI_DEVICEID_NF2_400 0x008810de +static const char *ehci_device_nf2_400 = "NVIDIA nForce2 Ultra 400 USB 2.0 controller"; +#define PCI_EHCI_DEVICEID_NF3 0x00d810de +static const char *ehci_device_nf3 = "NVIDIA nForce3 USB 2.0 controller"; +#define PCI_EHCI_DEVICEID_NF3_250 0x00e810de +static const char *ehci_device_nf3_250 = "NVIDIA nForce3 250 USB 2.0 controller"; +#define PCI_EHCI_DEVICEID_NF4 0x005b10de +static const char *ehci_device_nf4 = "NVIDIA nForce4 USB 2.0 controller"; + +/* Philips */ +#define PCI_EHCI_DEVICEID_ISP156X 0x15621131 +static const char *ehci_device_isp156x = "Philips ISP156x USB 2.0 controller"; + #define PCI_EHCI_DEVICEID_VIA 0x31041106 static const char *ehci_device_via = "VIA VT6202 USB 2.0 controller"; -#define PCI_EHCI_DEVICEID_ICH4 0x24cd8086 -static const char *ehci_device_ich4 = "Intel 82801DB/DBL/DBM (ICH4) USB 2.0 controller"; - static const char *ehci_device_generic = "EHCI (generic) USB 2.0 controller"; #define PCI_EHCI_BASE_REG 0x10 @@ -164,12 +206,40 @@ u_int32_t device_id = pci_get_devid(self); switch (device_id) { + case PCI_EHCI_DEVICEID_M5239: + return (ehci_device_m5239); + case PCI_EHCI_DEVICEID_8111: + return (ehci_device_8111); + case PCI_EHCI_DEVICEID_SB200: + return (ehci_device_sb200); + case PCI_EHCI_DEVICEID_SB400: + return (ehci_device_sb400); + case PCI_EHCI_DEVICEID_6300: + return (ehci_device_6300); + case PCI_EHCI_DEVICEID_ICH4: + return (ehci_device_ich4); + case PCI_EHCI_DEVICEID_ICH5: + return (ehci_device_ich5); + case PCI_EHCI_DEVICEID_ICH6: + return (ehci_device_ich6); + case PCI_EHCI_DEVICEID_ICH7: + return (ehci_device_ich7); case PCI_EHCI_DEVICEID_NEC: return (ehci_device_nec); + case PCI_EHCI_DEVICEID_NF2: + return (ehci_device_nf2); + case PCI_EHCI_DEVICEID_NF2_400: + return (ehci_device_nf2_400); + case PCI_EHCI_DEVICEID_NF3: + return (ehci_device_nf3); + case PCI_EHCI_DEVICEID_NF3_250: + return (ehci_device_nf3_250); + case PCI_EHCI_DEVICEID_NF4: + return (ehci_device_nf4); + case PCI_EHCI_DEVICEID_ISP156X: + return (ehci_device_isp156x); case PCI_EHCI_DEVICEID_VIA: return (ehci_device_via); - case PCI_EHCI_DEVICEID_ICH4: - return (ehci_device_ich4); default: if (pci_get_class(self) == PCIC_SERIALBUS && pci_get_subclass(self) == PCIS_SERIALBUS_USB @@ -265,6 +335,9 @@ case PCI_EHCI_VENDORID_APPLE: sprintf(sc->sc_vendor, "Apple"); break; + case PCI_EHCI_VENDORID_ATI: + sprintf(sc->sc_vendor, "ATI"); + break; case PCI_EHCI_VENDORID_CMDTECH: sprintf(sc->sc_vendor, "CMDTECH"); break; @@ -304,8 +377,17 @@ } /* Enable workaround for dropped interrupts as required */ - if (pci_get_vendor(self) == PCI_EHCI_VENDORID_VIA) + switch (pci_get_vendor(self)) { + case PCI_EHCI_VENDORID_ATI: + case PCI_EHCI_VENDORID_VIA: sc->sc_flags |= EHCI_SCFLG_LOSTINTRBUG; + if (bootverbose) + device_printf(self, + "Dropped interrupts workaround enabled\n"); + break; + default: + break; + } /* * Find companion controllers. According to the spec they always Index: ehcireg.h =================================================================== RCS file: /dump/FreeBSD-CVS/src/sys/dev/usb/ehcireg.h,v retrieving revision 1.5.2.2 diff -u -r1.5.2.2 ehcireg.h --- ehcireg.h 30 Jan 2005 01:00:09 -0000 1.5.2.2 +++ ehcireg.h 29 Jan 2006 17:40:56 -0000 @@ -1,4 +1,4 @@ -/* $NetBSD: ehcireg.h,v 1.17 2004/06/23 06:45:56 mycroft Exp $ */ +/* $NetBSD: ehcireg.h,v 1.18 2004/10/22 10:38:17 augustss Exp $ */ /* $FreeBSD: src/sys/dev/usb/ehcireg.h,v 1.5.2.2 2005/01/30 01:00:09 imp Exp $ */ /*- Index: ehcivar.h =================================================================== RCS file: /dump/FreeBSD-CVS/src/sys/dev/usb/ehcivar.h,v retrieving revision 1.4.2.5 diff -u -r1.4.2.5 ehcivar.h --- ehcivar.h 29 Jan 2006 00:02:54 -0000 1.4.2.5 +++ ehcivar.h 29 Jan 2006 17:40:56 -0000 @@ -1,4 +1,4 @@ -/* $NetBSD: ehcivar.h,v 1.12 2001/12/31 12:16:57 augustss Exp $ */ +/* $NetBSD: ehcivar.h,v 1.19 2005/04/29 15:04:29 augustss Exp $ */ /* $FreeBSD: src/sys/dev/usb/ehcivar.h,v 1.4.2.5 2006/01/29 00:02:54 iedowse Exp $ */ /*- @@ -85,6 +85,7 @@ #define EHCI_FRAMELIST_MAXCOUNT 1024 #define EHCI_IPOLLRATES 8 /* Poll rates (1ms, 2, 4, 8 ... 128) */ #define EHCI_INTRQHS ((1 << EHCI_IPOLLRATES) - 1) +#define EHCI_MAX_POLLRATE (1 << (EHCI_IPOLLRATES - 1)) #define EHCI_IQHIDX(lev, pos) \ ((((pos) & ((1 << (lev)) - 1)) | (1 << (lev))) - 1) #define EHCI_ILEV_IVAL(lev) (1 << (lev)) @@ -93,7 +94,7 @@ #define EHCI_COMPANION_MAX 8 #define EHCI_SCFLG_DONEINIT 0x0001 /* ehci_init() has been called. */ -#define EHCI_SCFLG_LOSTINTRBUG 0x0002 /* workaround for VIA chipsets */ +#define EHCI_SCFLG_LOSTINTRBUG 0x0002 /* workaround for VIA / ATI chipsets */ typedef struct ehci_softc { struct usbd_bus sc_bus; /* base device */ @@ -109,7 +110,7 @@ #endif u_int sc_offs; /* offset to operational regs */ - char sc_vendor[16]; /* vendor string for root hub */ + char sc_vendor[32]; /* vendor string for root hub */ int sc_id_vendor; /* vendor ID for root hub */ u_int32_t sc_cmd; /* shadow of cmd reg during suspend */ @@ -125,6 +126,9 @@ usb_dma_t sc_fldma; ehci_link_t *sc_flist; u_int sc_flsize; +#ifndef __FreeBSD__ + u_int sc_rand; /* XXX need proper intr scheduling */ +#endif struct ehci_soft_islot sc_islots[EHCI_INTRQHS]; @@ -152,9 +156,13 @@ usb_callout_t sc_tmo_pcd; usb_callout_t sc_tmo_intrlist; +#if defined(__NetBSD__) || defined(__OpenBSD__) device_ptr_t sc_child; /* /dev/usb# device */ - +#endif char sc_dying; +#if defined(__NetBSD__) + struct usb_dma_reserve sc_dma_reserve; +#endif } ehci_softc_t; #define EREAD1(sc, a) bus_space_read_1((sc)->iot, (sc)->ioh, (a)) Index: hid.c =================================================================== RCS file: /dump/FreeBSD-CVS/src/sys/dev/usb/hid.c,v retrieving revision 1.23.4.1 diff -u -r1.23.4.1 hid.c --- hid.c 30 Jan 2005 01:00:09 -0000 1.23.4.1 +++ hid.c 29 Jan 2006 17:40:56 -0000 @@ -375,7 +375,7 @@ id = 0; for (d = hid_start_parse(buf, len, 1<sc_dying = 1; #endif usb_uncallout(sc->sc_tmo_rhsc, ohci_rhsc_enable, sc); @@ -526,7 +528,7 @@ tdflags = htole32( (rd ? OHCI_TD_IN : OHCI_TD_OUT) | (flags & USBD_SHORT_XFER_OK ? OHCI_TD_R : 0) | - OHCI_TD_NOCC | OHCI_TD_TOGGLE_CARRY | OHCI_TD_NOINTR); + OHCI_TD_NOCC | OHCI_TD_TOGGLE_CARRY | OHCI_TD_SET_DI(6)); for (;;) { next = ohci_alloc_std(sc); @@ -549,33 +551,31 @@ * * If/when dma has multiple segments, this will need to * properly handle fragmenting TD's. - * - * We can describe the above using maxsegsz = 4k and nsegs = 2 - * in the future. + * + * Note that if we are gathering data from multiple SMALL + * segments, e.g. mbufs, we need to do special gymnastics, + * e.g. bounce buffering or data aggregation, + * BEFORE WE GET HERE because a bulk USB transfer must + * consist of maximally sized packets right up to the end. + * A shorter than maximal packet means that it is the end + * of the transfer. If the data transfer length is a + * multiple of the packet size, then a 0 byte + * packet will be the signal of the end of transfer. + * Since packets can't cross TDs this means that + * each TD except the last one must cover an exact multiple + * of the maximal packet length. */ - if (OHCI_PAGE(dataphys) == OHCI_PAGE(DMAADDR(dma, offset + - len - 1)) || len - (OHCI_PAGE_SIZE - - OHCI_PAGE_OFFSET(dataphys)) <= OHCI_PAGE_SIZE) { - /* we can handle it in this TD */ + if (OHCI_PAGE_OFFSET(dataphys) + len <= (2 * OHCI_PAGE_SIZE)) { + /* We can handle all that remains in this TD */ curlen = len; } else { - /* XXX The calculation below is wrong and could - * result in a packet that is not a multiple of the - * MaxPacketSize in the case where the buffer does not - * start on an appropriate address (like for example in - * the case of an mbuf cluster). You'll get an early - * short packet. - */ /* must use multiple TDs, fill as much as possible. */ curlen = 2 * OHCI_PAGE_SIZE - OHCI_PAGE_OFFSET(dataphys); /* the length must be a multiple of the max size */ curlen -= curlen % UGETW(opipe->pipe.endpoint->edesc->wMaxPacketSize); -#ifdef DIAGNOSTIC - if (curlen == 0) - panic("ohci_alloc_std: curlen == 0"); -#endif + KASSERT((curlen != 0), ("ohci_alloc_std: curlen == 0")); } DPRINTFN(4,("ohci_alloc_std_chain: dataphys=0x%08x " "len=%d curlen=%d\n", @@ -1359,7 +1359,7 @@ { ohci_softc_t *sc = v; ohci_soft_itd_t *sitd, *sidone, *sitdnext; - ohci_soft_td_t *std, *sdone, *stdnext; + ohci_soft_td_t *std, *sdone, *stdnext, *p, *n; usbd_xfer_handle xfer; struct ohci_pipe *opipe; int len, cc, s; @@ -1390,14 +1390,11 @@ stdnext = std->dnext; DPRINTFN(10, ("ohci_process_done: std=%p xfer=%p hcpriv=%p\n", std, xfer, (xfer ? xfer->hcpriv : NULL))); - if (xfer == NULL || (std->flags & OHCI_TD_HANDLED)) { + if (xfer == NULL) { /* * xfer == NULL: There seems to be no xfer associated * with this TD. It is tailp that happened to end up on * the done queue. - * flags & OHCI_TD_HANDLED: The TD has already been - * handled by process_done and should not be done again. - * Shouldn't happen, but some chips are broken(?). */ continue; } @@ -1408,9 +1405,6 @@ /* Handled by abort routine. */ continue; } - usb_uncallout(xfer->timeout_handle, ohci_timeout, xfer); - usb_rem_task(OXFER(xfer)->xfer.pipe->device, - &OXFER(xfer)->abort_task); len = std->len; if (std->td.td_cbp != 0) @@ -1422,38 +1416,32 @@ xfer->actlen += len; cc = OHCI_TD_GET_CC(le32toh(std->td.td_flags)); - if (cc == OHCI_CC_NO_ERROR) { - if (std->flags & OHCI_CALL_DONE) { - xfer->status = USBD_NORMAL_COMPLETION; - s = splusb(); - usb_transfer_complete(xfer); - splx(s); - } - ohci_free_std(sc, std); - } else { + if (cc != OHCI_CC_NO_ERROR) { /* * Endpoint is halted. First unlink all the TDs * belonging to the failed transfer, and then restart * the endpoint. */ - ohci_soft_td_t *p, *n; opipe = (struct ohci_pipe *)xfer->pipe; DPRINTFN(15,("ohci_process_done: error cc=%d (%s)\n", OHCI_TD_GET_CC(le32toh(std->td.td_flags)), ohci_cc_strs[OHCI_TD_GET_CC(le32toh(std->td.td_flags))])); - - - /* Mark all the TDs in the done queue for the current - * xfer as handled - */ - for (p = stdnext; p; p = p->dnext) { - if (p->xfer == xfer) - p->flags |= OHCI_TD_HANDLED; + usb_uncallout(xfer->timeout_handle, ohci_timeout, xfer); + usb_rem_task(OXFER(xfer)->xfer.pipe->device, + &OXFER(xfer)->abort_task); + + /* Remove all this xfer's TDs from the done queue. */ + for (p = std; p->dnext != NULL; p = p->dnext) { + if (p->dnext->xfer != xfer) + continue; + p->dnext = p->dnext->dnext; } + /* The next TD may have been removed. */ + stdnext = std->dnext; - /* remove TDs */ - for (p = std; p->xfer == xfer; p = n) { + /* Remove all TDs belonging to this xfer. */ + for (p = xfer->hcpriv; p->xfer == xfer; p = n) { n = p->nexttd; ohci_free_std(sc, p); } @@ -1469,7 +1457,27 @@ s = splusb(); usb_transfer_complete(xfer); splx(s); + continue; + } + /* + * Skip intermediate TDs. They remain linked from + * xfer->hcpriv and we free them when the transfer completes. + */ + if ((std->flags & OHCI_CALL_DONE) == 0) + continue; + + /* Normal transfer completion */ + usb_uncallout(xfer->timeout_handle, ohci_timeout, xfer); + usb_rem_task(OXFER(xfer)->xfer.pipe->device, + &OXFER(xfer)->abort_task); + for (p = xfer->hcpriv; p->xfer == xfer; p = n) { + n = p->nexttd; + ohci_free_std(sc, p); } + xfer->status = USBD_NORMAL_COMPLETION; + s = splusb(); + usb_transfer_complete(xfer); + splx(s); } #ifdef USB_DEBUG @@ -1783,7 +1791,7 @@ memcpy(KERNADDR(&opipe->u.ctl.reqdma, 0), req, sizeof *req); setup->td.td_flags = htole32(OHCI_TD_SETUP | OHCI_TD_NOCC | - OHCI_TD_TOGGLE_0 | OHCI_TD_NOINTR); + OHCI_TD_TOGGLE_0 | OHCI_TD_SET_DI(6)); setup->td.td_cbp = htole32(DMAADDR(&opipe->u.ctl.reqdma, 0)); setup->nexttd = next; setup->td.td_nexttd = htole32(next->physaddr); Index: ohci_pci.c =================================================================== RCS file: /dump/FreeBSD-CVS/src/sys/dev/usb/ohci_pci.c,v retrieving revision 1.40.2.1 diff -u -r1.40.2.1 ohci_pci.c --- ohci_pci.c 3 Mar 2005 05:02:15 -0000 1.40.2.1 +++ ohci_pci.c 29 Jan 2006 17:40:56 -0000 @@ -75,12 +75,14 @@ #define PCI_OHCI_VENDORID_ACERLABS 0x10b9 #define PCI_OHCI_VENDORID_AMD 0x1022 #define PCI_OHCI_VENDORID_APPLE 0x106b +#define PCI_OHCI_VENDORID_ATI 0x1002 #define PCI_OHCI_VENDORID_CMDTECH 0x1095 #define PCI_OHCI_VENDORID_NEC 0x1033 #define PCI_OHCI_VENDORID_NVIDIA 0x12D2 #define PCI_OHCI_VENDORID_NVIDIA2 0x10DE #define PCI_OHCI_VENDORID_OPTI 0x1045 #define PCI_OHCI_VENDORID_SIS 0x1039 +#define PCI_OHCI_VENDORID_SUN 0x108e #define PCI_OHCI_DEVICEID_ALADDIN_V 0x523710b9 static const char *ohci_device_aladdin_v = "AcerLabs M5237 (Aladdin-V) USB controller"; @@ -91,6 +93,10 @@ #define PCI_OHCI_DEVICEID_AMD766 0x74141022 static const char *ohci_device_amd766 = "AMD-766 USB Controller"; +#define PCI_OHCI_DEVICEID_SB400_1 0x43741002 +#define PCI_OHCI_DEVICEID_SB400_2 0x43751002 +static const char *ohci_device_sb400 = "ATI SB400 USB Controller"; + #define PCI_OHCI_DEVICEID_FIRELINK 0xc8611045 static const char *ohci_device_firelink = "OPTi 82C861 (FireLink) USB controller"; @@ -112,6 +118,9 @@ #define PCI_OHCI_DEVICEID_KEYLARGO 0x0019106b static const char *ohci_device_keylargo = "Apple KeyLargo USB controller"; +#define PCI_OHCI_DEVICEID_PCIO2USB 0x1103108e +static const char *ohci_device_pcio2usb = "Sun PCIO-2 USB controller"; + static const char *ohci_device_generic = "OHCI (generic) USB controller"; #define PCI_OHCI_BASE_REG 0x10 @@ -170,6 +179,9 @@ return (ohci_device_amd756); case PCI_OHCI_DEVICEID_AMD766: return (ohci_device_amd766); + case PCI_OHCI_DEVICEID_SB400_1: + case PCI_OHCI_DEVICEID_SB400_2: + return (ohci_device_sb400); case PCI_OHCI_DEVICEID_USB0670: return (ohci_device_usb0670); case PCI_OHCI_DEVICEID_USB0673: @@ -184,6 +196,8 @@ return (ohci_device_sis5571); case PCI_OHCI_DEVICEID_KEYLARGO: return (ohci_device_keylargo); + case PCI_OHCI_DEVICEID_PCIO2USB: + return (ohci_device_pcio2usb); default: if (pci_get_class(self) == PCIC_SERIALBUS && pci_get_subclass(self) == PCIS_SERIALBUS_USB @@ -220,6 +234,14 @@ pci_enable_busmaster(self); + /* + * Some Sun PCIO-2 USB controllers have their intpin register + * bogusly set to 0, although it should be 4. Correct that. + */ + if (pci_get_devid(self) == PCI_OHCI_DEVICEID_PCIO2USB && + pci_get_intpin(self) == 0) + pci_set_intpin(self, 4); + rid = PCI_CBMEM; sc->io_res = bus_alloc_resource_any(self, SYS_RES_MEMORY, &rid, RF_ACTIVE); @@ -258,6 +280,9 @@ case PCI_OHCI_VENDORID_APPLE: sprintf(sc->sc_vendor, "Apple"); break; + case PCI_OHCI_VENDORID_ATI: + sprintf(sc->sc_vendor, "ATI"); + break; case PCI_OHCI_VENDORID_CMDTECH: sprintf(sc->sc_vendor, "CMDTECH"); break; Index: ohcivar.h =================================================================== RCS file: /dump/FreeBSD-CVS/src/sys/dev/usb/ohcivar.h,v retrieving revision 1.37.2.2 diff -u -r1.37.2.2 ohcivar.h --- ohcivar.h 22 Mar 2005 00:56:54 -0000 1.37.2.2 +++ ohcivar.h 29 Jan 2006 17:40:56 -0000 @@ -57,7 +57,6 @@ u_int16_t flags; #define OHCI_CALL_DONE 0x0001 #define OHCI_ADD_LEN 0x0002 -#define OHCI_TD_HANDLED 0x0004 /* signal process_done has seen it */ } ohci_soft_td_t; #define OHCI_STD_SIZE ((sizeof (struct ohci_soft_td) + OHCI_TD_ALIGN - 1) / OHCI_TD_ALIGN * OHCI_TD_ALIGN) #define OHCI_STD_CHUNK (PAGE_SIZE / OHCI_STD_SIZE) @@ -147,7 +146,9 @@ usb_callout_t sc_tmo_rhsc; +#if defined(__NetBSD__) || defined(__OpenBSD__) device_ptr_t sc_child; +#endif char sc_dying; } ohci_softc_t; Index: uhcivar.h =================================================================== RCS file: /dump/FreeBSD-CVS/src/sys/dev/usb/uhcivar.h,v retrieving revision 1.37.2.2 diff -u -r1.37.2.2 uhcivar.h --- uhcivar.h 22 Mar 2005 00:56:54 -0000 1.37.2.2 +++ uhcivar.h 29 Jan 2006 17:40:56 -0000 @@ -197,7 +197,9 @@ void *sc_shutdownhook; /* cookie from shutdown hook */ #endif +#if defined(__NetBSD__) || defined(__OpenBSD__) device_ptr_t sc_child; /* /dev/usb# device */ +#endif } uhci_softc_t; usbd_status uhci_init(uhci_softc_t *); Index: ulpt.c =================================================================== RCS file: /dump/FreeBSD-CVS/src/sys/dev/usb/ulpt.c,v retrieving revision 1.65.2.1 diff -u -r1.65.2.1 ulpt.c --- ulpt.c 30 Jan 2005 01:00:10 -0000 1.65.2.1 +++ ulpt.c 29 Jan 2006 17:40:56 -0000 @@ -600,7 +600,7 @@ } /* If it's not opened for read the set up a reader. */ - if (!(flags & FREAD)) { + if (!(flag & FREAD)) { DPRINTF(("ulpt_open: start read callout\n")); usb_callout_init(sc->sc_read_callout); usb_callout(sc->sc_read_callout, hz/5, ulpt_tick, sc); Index: umass.c =================================================================== RCS file: /dump/FreeBSD-CVS/src/sys/dev/usb/umass.c,v retrieving revision 1.112.2.8 diff -u -r1.112.2.8 umass.c --- umass.c 27 Dec 2005 00:35:38 -0000 1.112.2.8 +++ umass.c 29 Jan 2006 17:40:56 -0000 @@ -315,6 +315,8 @@ # define NO_INQUIRY 0x0400 /* Device cannot handle INQUIRY EVPD, return CHECK CONDITION */ # define NO_INQUIRY_EVPD 0x0800 + /* Pad all RBC requests to 12 bytes. */ +# define RBC_PAD_TO_12 0x1000 }; Static struct umass_devdescr_t umass_devdescrs[] = { @@ -384,6 +386,10 @@ UMASS_PROTO_SCSI | UMASS_PROTO_CBI, NO_TEST_UNIT_READY | NO_START_STOP }, + { USB_VENDOR_MOTOROLA2, USB_PRODUCT_MOTOROLA2_E398, RID_WILDCARD, + UMASS_PROTO_SCSI | UMASS_PROTO_BBB, + FORCE_SHORT_INQUIRY | NO_INQUIRY_EVPD | NO_GETMAXLUN + }, { USB_VENDOR_MSYSTEMS, USB_PRODUCT_MSYSTEMS_DISKONKEY, RID_WILDCARD, UMASS_PROTO_SCSI | UMASS_PROTO_BBB, IGNORE_RESIDUE | NO_GETMAXLUN | RS_NO_CLEAR_UA @@ -440,6 +446,10 @@ UMASS_PROTO_SCSI | UMASS_PROTO_BBB, IGNORE_RESIDUE }, + { USB_VENDOR_SONY, USB_PRODUCT_SONY_DSC, 0x0500, + UMASS_PROTO_RBC | UMASS_PROTO_CBI, + RBC_PAD_TO_12 + }, { USB_VENDOR_SONY, USB_PRODUCT_SONY_DSC, RID_WILDCARD, UMASS_PROTO_RBC | UMASS_PROTO_CBI, NO_QUIRKS @@ -2256,8 +2266,10 @@ return; if (xpt_create_path(&path, xpt_periph, cam_sim_path(sc->umass_sim), CAM_TARGET_WILDCARD, CAM_LUN_WILDCARD) - != CAM_REQ_CMP) + != CAM_REQ_CMP) { + free(ccb, M_USBDEV); return; + } xpt_setup_ccb(&ccb->ccb_h, path, 5/*priority (low)*/); ccb->ccb_h.func_code = XPT_SCAN_BUS; @@ -2913,8 +2925,14 @@ * appears to support those as well */ case REQUEST_SENSE: case PREVENT_ALLOW: - *rcmd = cmd; /* We don't need to copy it */ - *rcmdlen = cmdlen; + if ((sc->quirks & RBC_PAD_TO_12) && cmdlen < 12) { + *rcmdlen = 12; + bcopy(cmd, *rcmd, cmdlen); + bzero(*rcmd + cmdlen, 12 - cmdlen); + } else { + *rcmd = cmd; /* We don't need to copy it */ + *rcmdlen = cmdlen; + } return 1; /* All other commands are not legal in RBC */ default: Index: usb_quirks.c =================================================================== RCS file: /dump/FreeBSD-CVS/src/sys/dev/usb/usb_quirks.c,v retrieving revision 1.38.2.5 diff -u -r1.38.2.5 usb_quirks.c --- usb_quirks.c 5 Jan 2006 16:43:15 -0000 1.38.2.5 +++ usb_quirks.c 29 Jan 2006 17:40:56 -0000 @@ -100,7 +100,7 @@ ANY, { UQ_ASSUME_CM_OVER_DATA }}, { USB_VENDOR_QUALCOMM, USB_PRODUCT_QUALCOMM_CDMA_MSM, ANY, { UQ_ASSUME_CM_OVER_DATA }}, - { USB_VENDOR_QUALCOMM2, USB_PRODUCT_QUALCOMM_CDMA_MSM, + { USB_VENDOR_QUALCOMM2, USB_PRODUCT_QUALCOMM2_CDMA_MSM, ANY, { UQ_ASSUME_CM_OVER_DATA }}, { USB_VENDOR_SUNTAC, USB_PRODUCT_SUNTAC_AS64LX, 0x100, { UQ_ASSUME_CM_OVER_DATA }}, Index: usb_subr.c =================================================================== RCS file: /dump/FreeBSD-CVS/src/sys/dev/usb/usb_subr.c,v retrieving revision 1.69.2.6 diff -u -r1.69.2.6 usb_subr.c --- usb_subr.c 14 Dec 2005 01:27:45 -0000 1.69.2.6 +++ usb_subr.c 29 Jan 2006 17:40:56 -0000 @@ -7,6 +7,7 @@ * $NetBSD: usb_subr.c,v 1.114 2004/06/23 02:30:52 mycroft Exp $ * $NetBSD: usb_subr.c,v 1.115 2004/06/23 05:23:19 mycroft Exp $ * $NetBSD: usb_subr.c,v 1.116 2004/06/23 06:27:54 mycroft Exp $ + * $NetBSD: usb_subr.c,v 1.119 2004/10/23 13:26:33 augustss Exp $ */ #include @@ -49,6 +50,8 @@ * POSSIBILITY OF SUCH DAMAGE. */ +#include "opt_usb.h" + #include #include #include Index: usbdevs =================================================================== RCS file: /dump/FreeBSD-CVS/src/sys/dev/usb/usbdevs,v retrieving revision 1.195.2.19 diff -u -r1.195.2.19 usbdevs --- usbdevs 11 Jan 2006 00:29:16 -0000 1.195.2.19 +++ usbdevs 29 Jan 2006 17:40:56 -0000 @@ -41,16 +41,17 @@ /* * List of known USB vendors * - * Adding an ID and its string description for a device to the usbdevs - * file, enables the USB stack to print a useful description of the - * device that was connected. + * USB.org publishes a VID list of USB-IF member companies at + * http://www.usb.org/developers/tools + * Note that it does not show companies that have obtained a Vendor ID + * without becoming full members. * - * Please note that these IDs do not do anything. Adding an ID here - * 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. + * 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: @@ -61,202 +62,306 @@ * make the device recognised by the appropriate device driver. */ +vendor EGALAX2 0x0123 eGalax +vendor LTS 0x0386 LTS vendor AOX 0x03e8 AOX +vendor THESYS 0x03e9 Thesys +vendor DATABROADCAST 0x03ea Data Broadcasting vendor ATMEL 0x03eb Atmel +vendor IWATSU 0x03ec Iwatsu America +vendor MITEL 0x03ee Mitel vendor MITSUMI 0x03ee Mitsumi vendor HP 0x03f0 Hewlett Packard +vendor GENOA 0x03f1 Genoa +vendor OAK 0x03f2 Oak vendor ADAPTEC 0x03f3 Adaptec +vendor DIEBOLD 0x03f4 Diebold +vendor SIEMENSELECTRO 0x03f5 Siemens Electromechanical +vendor EPSONIMAGING 0x03f8 Epson Imaging +vendor KEYTRONIC 0x03f9 KeyTronic +vendor OPTI 0x03fb OPTi +vendor ELITEGROUP 0x03fc Elitegroup +vendor XILINX 0x03fd Xilinx +vendor FARALLON 0x03fe Farallon Communications vendor NATIONAL 0x0400 National Semiconductor +vendor NATIONALREG 0x0401 National Registry vendor ACERLABS 0x0402 Acer Labs vendor FTDI 0x0403 Future Technology Devices +vendor NCR 0x0404 NCR +vendor SYNOPSYS2 0x0405 Synopsys +vendor FUJITSUICL 0x0406 Fujitsu-ICL +vendor FUJITSU2 0x0407 Fujitsu Personal Systems +vendor QUANTA 0x0408 Quanta vendor NEC 0x0409 NEC vendor KODAK 0x040a Eastman Kodak +vendor WELTREND 0x040b Weltrend +vendor VIA 0x040d VIA +vendor MCCI 0x040e MCCI vendor MELCO 0x0411 Melco +vendor WINBOND 0x0416 Winbond +vendor PHOENIX 0x041a Phoenix vendor CREATIVE 0x041e Creative -vendor ADI 0x0422 ADI Systems +vendor NOKIA 0x0421 Nokia +vendor ADI 0x0422 ADI vendor CATC 0x0423 Computer Access Technology -vendor SMC2 0x0424 Standard Microsystems +vendor SMC2 0x0424 SMC +vendor MOTOROLA_HK 0x0425 Motorola HK vendor GRAVIS 0x0428 Advanced Gravis Computer Tech. -vendor SUN 0x0430 Sun Microsystems -vendor TAUGA 0x0436 Taugagreining HF -vendor AMD 0x0438 Advanced Micro Devices -vendor LEXMARK 0x043d Lexmark International +vendor CIRRUSLOGIC 0x0429 Cirrus Logic +vendor INNOVATIVE 0x042c Innovative Semiconductors +vendor MOLEX 0x042f Molex +vendor SUN2 0x0430 Sun Microsystems (unofficial) +vendor UNISYS 0x0432 Unisys +vendor TAUGA 0x0436 Taugagreining HF +vendor AMD 0x0438 ADM +vendor LEXMARK 0x043d Lexmark +vendor LG 0x043e LG Electronics vendor NANAO 0x0440 NANAO -vendor ALPS 0x044e Alps Electric +vendor GATEWAY 0x0443 Gateway 2000 +vendor NMB 0x0446 NMB +vendor ALPS 0x044e Alps vendor THRUST 0x044f Thrustmaster vendor TI 0x0451 Texas Instruments vendor ANALOGDEVICES 0x0456 Analog Devices -vendor KYE 0x0458 KYE Systems +vendor SIS 0x0457 SIS +vendor KYE 0x0458 KYE vendor DIAMOND2 0x045a Diamond (Supra) +vendor RENESAS 0x045b Renesas vendor MICROSOFT 0x045e Microsoft -vendor PRIMAX 0x0461 Primax Electronics +vendor PRIMAX 0x0461 Primax vendor MGE 0x0463 MGE vendor AMP 0x0464 AMP -vendor CHERRY 0x046a Cherry Mikroschalter +vendor CHERRY 0x046a Cherry vendor MEGATRENDS 0x046b American Megatrends vendor LOGITECH 0x046d Logitech -vendor BTC 0x046e Behavior Tech. Computer +vendor BTC 0x046e BTC vendor PHILIPS 0x0471 Philips -vendor SANYO 0x0474 Sanyo Electric +vendor SUN 0x0472 Sun Microsystems (offical) +vendor SANYO 0x0474 Sanyo +vendor SEAGATE 0x0477 Seagate vendor CONNECTIX 0x0478 Connectix +vendor SEMTECH 0x047a Semtech vendor KENSINGTON 0x047d Kensington vendor LUCENT 0x047e Lucent -vendor KYOCERA 0x0482 Kyocera Corp. +vendor PLANTRONICS 0x047f Plantronics +vendor KYOCERA 0x0482 Kyocera vendor STMICRO 0x0483 STMicroelectronics +vendor FOXCONN 0x0489 Foxconn vendor YAMAHA 0x0499 YAMAHA -vendor COMPAQ 0x049f Compaq Computers -vendor HITACHI 0x04a4 Hitachi, Ltd. +vendor COMPAQ 0x049f Compaq +vendor HITACHI 0x04a4 Hitachi vendor ACERP 0x04a5 Acer Peripherals vendor VISIONEER 0x04a7 Visioneer vendor CANON 0x04a9 Canon vendor NIKON 0x04b0 Nikon -vendor IBM 0x04b3 IBM Corporation -vendor CYPRESS 0x04b4 Cypress Semiconductor +vendor PAN 0x04b1 Pan International +vendor IBM 0x04b3 IBM +vendor CYPRESS 0x04b4 Cypress +vendor ROHM 0x04b5 ROHM +vendor COMPAL 0x04b7 Compal vendor EPSON 0x04b8 Seiko Epson -vendor RAINBOW 0x04b9 Rainbow Technologies -vendor IODATA 0x04bb I/O Data +vendor RAINBOW 0x04b9 Rainbow +vendor IODATA 0x04bb I-O Data vendor TDK 0x04bf TDK vendor 3COMUSR 0x04c1 U.S. Robotics -vendor METHODE 0x04c2 Methode Electronics Far East +vendor METHODE 0x04c2 Methode vendor MAXISWITCH 0x04c3 Maxi Switch vendor LOCKHEEDMER 0x04c4 Lockheed Martin Energy Research vendor FUJITSU 0x04c5 Fujitsu -vendor TOSHIBAAM 0x04c6 Toshiba America Electronic Components -vendor MICROMACRO 0x04c7 Micro Macro Technologies +vendor TOSHIBAAM 0x04c6 Toshiba +vendor MICROMACRO 0x04c7 Micro Macro vendor KONICA 0x04c8 Konica -vendor LITEON 0x04ca Lite-On Technology -vendor FUJIPHOTO 0x04cb Fuji Photo Film -vendor PHILIPSSEMI 0x04cc Philips Semiconductors -vendor TATUNG 0x04cd Tatung Co. Of America +vendor LITEON 0x04ca Lite-On +vendor FUJIPHOTO 0x04cb Fuji Photo +vendor PHILIPSSEMI 0x04cc Philips +vendor TATUNG 0x04cd Tatung vendor SCANLOGIC 0x04ce ScanLogic -vendor MYSON 0x04cf Myson Technology -vendor DIGI2 0x04d0 Digi International +vendor MYSON 0x04cf Myson +vendor DIGI2 0x04d0 Digi vendor ITTCANON 0x04d1 ITT Canon -vendor ALTEC 0x04d2 Altec Lansing Technologies +vendor ALTEC 0x04d2 Altec Lansing +vendor LSI 0x04d4 LSI +vendor MENTORGRAPHICS 0x04d6 Mentor Graphics +vendor HOLTEK 0x04d9 Holtek vendor PANASONIC 0x04da Panasonic (Matsushita) +vendor HUANHSIN 0x04dc Huan Hsin vendor SHARP 0x04dd Sharp vendor IIYAMA 0x04e1 Iiyama -vendor SHUTTLE 0x04e6 Shuttle Technology -vendor SAMSUNG 0x04e8 Samsung Electronics +vendor SHUTTLE 0x04e6 Shuttle +vendor ELO 0x04e7 Elo TouchSystems +vendor SAMSUNG 0x04e8 Samsung +vendor NORTHSTAR 0x04eb Northstar +vendor TOKYOELECTRON 0x04ec Tokyo Electron vendor ANNABOOKS 0x04ed Annabooks vendor JVC 0x04f1 JVC -vendor CHICONY 0x04f2 Chicony Electronics -vendor BROTHER 0x04f9 Brother Industries +vendor CHICONY 0x04f2 Chicony +vendor ELAN 0x04f3 Elan +vendor NEWNEX 0x04f7 Newnex +vendor BROTHER 0x04f9 Brother vendor DALLAS 0x04fa Dallas Semiconductor +vendor SUNPLUS 0x04fc Sunplus +vendor PFU 0x04fe PFU +vendor FUJIKURA 0x0501 Fujikura/DDK vendor ACER 0x0502 Acer vendor 3COM 0x0506 3Com -vendor AZTECH 0x0509 Aztech Systems -vendor BELKIN 0x050d Belkin Components -vendor KAWATSU 0x050f Kawatsu Semiconductor +vendor HOSIDEN 0x0507 Hosiden +vendor AZTECH 0x0509 Aztech +vendor BELKIN 0x050d Belkin +vendor KAWATSU 0x050f Kawatsu +vendor FCI 0x0514 FCI +vendor LONGWELL 0x0516 Longwell +vendor COMPOSITE 0x0518 Composite +vendor STAR 0x0519 Star Micronics vendor APC 0x051d American Power Conversion -vendor CONNECTEK 0x0522 Advanced Connectek USA -vendor NETCHIP 0x0525 NetChip Technology +vendor SCIATLANTA 0x051e Scientific Atlanta +vendor TSM 0x0520 TSM +vendor CONNECTEK 0x0522 Connectek +vendor NETCHIP 0x0525 NetChip vendor ALTRA 0x0527 ALTRA -vendor ATI 0x0528 ATI Technologies -vendor AKS 0x0529 Aladdin Knowledge Systems +vendor ATI 0x0528 ATI +vendor AKS 0x0529 AKS +vendor TEKOM 0x052b Tekom +vendor CANONDEV 0x052c Canon +vendor WACOMTECH 0x0531 Wacom +vendor INVENTEC 0x0537 Inventec +vendor SHYHSHIUN 0x0539 Shyh Shiun Terminals +vendor PREHWERKE 0x053a Preh Werke Gmbh & Co. KG +vendor SYNOPSYS 0x053f Synopsys vendor UNIACCESS 0x0540 Universal Access +vendor VIEWSONIC 0x0543 ViewSonic vendor XIRLINK 0x0545 Xirlink -vendor ANCHOR 0x0547 Anchor Chips +vendor ANCHOR 0x0547 Anchor vendor SONY 0x054c Sony +vendor FUJIXEROX 0x0550 Fuji Xerox vendor VISION 0x0553 VLSI Vision -vendor ASAHIKASEI 0x0556 Asahi Kasei Microsystems -vendor ATEN 0x0557 ATEN International -vendor MUSTEK 0x055f Mustek Systems -vendor TELEX 0x0562 Telex Communications +vendor ASAHIKASEI 0x0556 Asahi Kasei +vendor ATEN 0x0557 ATEN +vendor MUSTEK 0x055f Mustek +vendor TELEX 0x0562 Telex +vendor CHINON 0x0564 Chinon vendor PERACOM 0x0565 Peracom Networks vendor ALCOR2 0x0566 Alcor Micro +vendor XYRATEX 0x0567 Xyratex vendor WACOM 0x056a WACOM -vendor ETEK 0x056c e-TEK Labs +vendor ETEK 0x056c e-TEK vendor EIZO 0x056d EIZO vendor ELECOM 0x056e Elecom -vendor HAUPPAUGE 0x0573 Hauppauge Computer Works -vendor BAFO 0x0576 BAFO/Quality Computer Accessories +vendor CONEXANT 0x0572 Conexant +vendor HAUPPAUGE 0x0573 Hauppauge +vendor BAFO 0x0576 BAFO vendor YEDATA 0x057b Y-E Data -vendor AVM 0x057c AVM GmbH +vendor AVM 0x057c AVM vendor QUICKSHOT 0x057f Quickshot vendor ROLAND 0x0582 Roland vendor ROCKFIRE 0x0583 Rockfire -vendor RATOC 0x0584 RATOC Systems, Inc. -vendor ZYXEL 0x0586 ZyXEL Communication -vendor ALCOR 0x058f Alcor Micro +vendor RATOC 0x0584 RATOC +vendor ZYXEL 0x0586 ZyXEL +vendor INFINEON 0x058b Infineon +vendor MICREL 0x058d Micrel +vendor ALCOR 0x058f Alcor +vendor OMRON 0x0590 OMRON +vendor NIIGATA 0x0598 Niigata vendor IOMEGA 0x059b Iomega -vendor ATREND 0x059c A-Trend Technology -vendor AID 0x059d Advanced Input Devices +vendor ATREND 0x059c A-Trend +vendor AID 0x059d AID vendor LACIE 0x059f LaCie +vendor FUJIFILM 0x05a2 Fuji Film +vendor ARC 0x05a3 ARC +vendor ORTEK 0x05a4 Ortek +vendor BOSE 0x05a7 Bose vendor OMNIVISION 0x05a9 OmniVision -vendor INSYSTEM 0x05ab In-System Design +vendor INSYSTEM 0x05ab In-System vendor APPLE 0x05ac Apple Computer -vendor DIGI 0x05c5 Digi International +vendor YCCABLE 0x05ad Y.C. Cable +vendor DIGITALPERSONA 0x05ba DigitalPersona +vendor RAFI 0x05bd RAFI +vendor TYCO 0x05be Tyco +vendor KAWASAKI 0x05c1 Kawasaki +vendor DIGI 0x05c5 Digi vendor QUALCOMM 0x05c6 Qualcomm vendor QTRONIX 0x05c7 Qtronix +vendor FOXLINK 0x05c8 Foxlink +vendor RICOH 0x05ca Ricoh vendor ELSA 0x05cc ELSA -vendor BRAINBOXES 0x05d1 Brainboxes Limited +vendor SCIWORX 0x05ce sci-worx +vendor BRAINBOXES 0x05d1 Brainboxes vendor ULTIMA 0x05d8 Ultima -vendor AXIOHM 0x05d9 Axiohm Transaction Solutions +vendor AXIOHM 0x05d9 Axiohm vendor MICROTEK 0x05da Microtek vendor SUNTAC 0x05db SUN Corporation vendor LEXAR 0x05dc Lexar Media -vendor SYMBOL 0x05e0 Symbol Technologies -vendor GENESYS 0x05e3 Genesys Logic -vendor FUJI 0x05e5 Fuji Electric -vendor KEITHLEY 0x05e6 Keithley Instruments +vendor DELTA 0x05dd Delta +vendor SYMBOL 0x05e0 Symbol +vendor SYNTEK 0x05e1 Syntek +vendor GENESYS 0x05e3 Genesys +vendor FUJI 0x05e5 Fuji +vendor KEITHLEY 0x05e6 Keithley vendor EIZONANAO 0x05e7 EIZO Nanao vendor KLSI 0x05e9 Kawasaki LSI vendor FFC 0x05eb FFC -vendor ANKO 0x05ef Anko Electronic +vendor ANKO 0x05ef Anko vendor PIENGINEERING 0x05f3 P.I. Engineering -vendor AOC 0x05f6 AOC International -vendor CHIC 0x05fe Chic Technology -vendor BARCO 0x0600 Barco Display Systems -vendor BRIDGE 0x0607 Bridge Information +vendor AOC 0x05f6 AOC +vendor CHIC 0x05fe Chic +vendor BARCO 0x0600 Barco +vendor BRIDGE 0x0607 Bridge vendor SOLIDYEAR 0x060b Solid Year -vendor BIORAD 0x0614 Bio-Rad Laboratories +vendor BIORAD 0x0614 Bio-Rad vendor MACALLY 0x0618 Macally vendor ACTLABS 0x061c Act Labs vendor ALARIS 0x0620 Alaris vendor APEX 0x0624 Apex +vendor VIVITAR 0x0636 Vivitar vendor AVISION 0x0638 Avision vendor TEAC 0x0644 TEAC +vendor SGI 0x065e Silicon Graphics +vendor SANWASUPPLY 0x0663 Sanwa Supply vendor LINKSYS 0x066b Linksys -vendor ACERSA 0x066e Acer Semiconductor America +vendor ACERSA 0x066e Acer vendor SIGMATEL 0x066f Sigmatel vendor AIWA 0x0677 Aiwa -vendor ACARD 0x0678 ACARD Technology -vendor PROLIFIC 0x067b Prolific Technology +vendor ACARD 0x0678 ACARD +vendor PROLIFIC 0x067b Prolific vendor SIEMENS 0x067c Siemens -vendor ADVANCELOGIC 0x0680 Avance Logic -vendor HAGIWARA 0x0693 Hagiwara Sys-Com +vendor AVANCELOGIC 0x0680 Avance Logic vendor MINOLTA 0x0686 Minolta +vendor CHPRODUCTS 0x068e CH Products +vendor HAGIWARA 0x0693 Hagiwara Sys-Com vendor CTX 0x0698 Chuntex -vendor ASKEY 0x069a Askey Computer +vendor ASKEY 0x069a Askey vendor SAITEK 0x06a3 Saitek -vendor ALCATELT 0x06b9 Alcatel Telecom +vendor ALCATELT 0x06b9 Alcatel vendor AGFA 0x06bd AGFA-Gevaert vendor ASIAMD 0x06be Asia Microelectronic Development -vendor BIZLINK 0x06c4 Bizlink International +vendor BIZLINK 0x06c4 Bizlink vendor KEYSPAN 0x06cd Keyspan -vendor AASHIMA 0x06d6 Aashima Technology +vendor AASHIMA 0x06d6 Aashima vendor MULTITECH 0x06e0 MultiTech -vendor ADS 0x06e1 ADS Technologies -vendor ALCATELM 0x06e4 Alcatel Microelectronics -vendor SIRIUS 0x06ea Sirius Technologies +vendor ADS 0x06e1 ADS +vendor ALCATELM 0x06e4 Alcatel +vendor SIRIUS 0x06ea Sirius +vendor GUILLEMOT 0x06f8 Guillemot vendor BOSTON 0x06fd Boston Acoustics -vendor SMC 0x0707 Standard Microsystems +vendor SMC 0x0707 SCM vendor PUTERCOM 0x0708 Putercom vendor MCT 0x0711 MCT +vendor IMATION 0x0718 Imation vendor SONYERICSSON 0x0731 Sony Ericsson +vendor EICON 0x0734 Eicon Networks vendor DIGITALSTREAM 0x074e Digital Stream -vendor AUREAL 0x0755 Aureal Semiconductor +vendor AUREAL 0x0755 Aureal vendor MIDIMAN 0x0763 Midiman vendor LINKSYS2 0x077b Linksys -vendor GRIFFIN 0x077d Griffin Technology -vendor SANDISK 0x0781 SanDisk Corp -vendor LOGITEC 0x0789 Logitec Corp +vendor GRIFFIN 0x077d Griffin +vendor SANDISK 0x0781 SanDisk +vendor JENOPTIK 0x0784 Jenoptik +vendor LOGITEC 0x0789 Logitec vendor BRIMAX 0x078e Brimax -vendor AXIS 0x0792 Axis Communications -vendor ABL 0x0794 ABL Electronics -vendor ALFADATA 0x079d Alfadata Computer -vendor NATIONALTECH 0x07a2 National Technical Systems +vendor AXIS 0x0792 Axis +vendor ABL 0x0794 ABL +vendor SUNCOMM 0x079c Sun Communications +vendor ALFADATA 0x079d Alfadata +vendor NATIONALTECH 0x07a2 National Technical vendor ONNTO 0x07a3 Onnto vendor BE 0x07a4 Be vendor ADMTEK 0x07a6 ADMtek @@ -265,59 +370,66 @@ vendor MICROTECH 0x07af Microtech vendor GENERALINSTMNTS 0x07b2 General Instruments (Motorola) vendor OLYMPUS 0x07b4 Olympus -vendor ABOCOM 0x07b8 AboCom Systems +vendor ABOCOM 0x07b8 AboCom vendor KEISOKUGIKEN 0x07c1 Keisokugiken -vendor ONSPEC 0x07c4 OnSpec Electronic -vendor APG 0x07c5 APG Cash Drawer -vendor BUG 0x07c8 B.U.G. -vendor ALLIEDTELESYN 0x07c9 Allied Telesyn International -vendor AVERMEDIA 0x07ca AVerMedia Technologies +vendor ONSPEC 0x07c4 OnSpec +vendor APG 0x07c5 APG +vendor BUG 0x07c8 BUG +vendor ALLIEDTELESYN 0x07c9 Allied Telesyn +vendor AVERMEDIA 0x07ca AVerMedia vendor SIIG 0x07cc SIIG vendor CASIO 0x07cf CASIO -vendor APTIO 0x07d2 Aptio Products -vendor ARASAN 0x07da Arasan Chip Systems +vendor APTIO 0x07d2 Aptio +vendor ARASAN 0x07da Arasan vendor ALLIEDCABLE 0x07e6 Allied Cable vendor STSN 0x07ef STSN -vendor ZOOM 0x0803 Zoom Telephonics +vendor ZOOM 0x0803 Zoom vendor BROADLOGIC 0x0827 BroadLogic vendor HANDSPRING 0x082d Handspring -vendor ACTIONSTAR 0x0835 Action Star Enterprise -vendor PALM 0x0830 Palm Computing +vendor PALM 0x0830 Palm vendor SOURCENEXT 0x0833 SOURCENEXT -vendor ACCTON 0x083a Accton Technology +vendor ACTIONSTAR 0x0835 Action Star +vendor SAMSUNG_TECHWIN 0x0839 Samsung Techwin +vendor ACCTON 0x083a Accton vendor DIAMOND 0x0841 Diamond vendor NETGEAR 0x0846 BayNETGEAR vendor ACTIVEWIRE 0x0854 ActiveWire +vendor BBELECTRONICS 0x0856 B&B Electronics vendor PORTGEAR 0x085a PortGear -vendor SYSTEMTALKS 0x086e System TALKS, Inc. +vendor SYSTEMTALKS 0x086e System Talks vendor METRICOM 0x0870 Metricom -vendor ADESSOKBTEK 0x087c ADESSO/Kbtek America +vendor ADESSOKBTEK 0x087c ADESSO vendor JATON 0x087d Jaton -vendor APT 0x0880 APT Technologies +vendor APT 0x0880 APT vendor BOCARESEARCH 0x0885 Boca Research -vendor ANDREA 0x08a8 Andrea Electronics +vendor ANDREA 0x08a8 Andrea vendor BURRBROWN 0x08bb Burr-Brown Japan vendor 2WIRE 0x08c8 2Wire -vendor AIPTEK 0x08ca AIPTEK International +vendor AIPTEK 0x08ca AIPTEK vendor SMARTBRIDGES 0x08d1 SmartBridges -vendor BILLIONTON 0x08dd Billionton Systems -vendor EXTENDED 0x08e9 Extended Systems +vendor BILLIONTON 0x08dd Billionton +vendor EXTENDED 0x08e9 Extended vendor MSYSTEMS 0x08ec M-Systems vendor AUTHENTEC 0x08ff AuthenTec -vendor TRUMPION 0x090a Trumpion Microelectronics -vendor ALATION 0x0910 Alation Systems +vendor AUDIOTECHNICA 0x0909 Audio-Technica +vendor TRUMPION 0x090a Trumpion +vendor ALATION 0x0910 Alation +vendor CONCORDCAMERA 0x0919 Concord Camera vendor GOHUBS 0x0921 GoHubs -vendor BIOMETRIC 0x0929 American Biometric Company -vendor TOSHIBA 0x0930 Toshiba Corporation -vendor PLEXTOR 0x093b Plextor Corp. -vendor INTREPIDCS 0x093c Intrepid Control Systems +vendor BIOMETRIC 0x0929 American Biometric +vendor TOSHIBA 0x0930 Toshiba +vendor PLEXTOR 0x093b Plextor +vendor INTREPIDCS 0x093c Intrepid vendor YANO 0x094f Yano -vendor KINGSTON 0x0951 Kingston Technology -vendor BLUEWATER 0x0956 BlueWater Systems -vendor AGILENT 0x0957 Agilent Technologies +vendor KINGSTON 0x0951 Kingston +vendor BLUEWATER 0x0956 BlueWater +vendor AGILENT 0x0957 Agilent vendor PORTSMITH 0x095a Portsmith +vendor ACERW 0x0967 Acer vendor ADIRONDACK 0x0976 Adirondack Wire & Cable vendor BECKHOFF 0x0978 Beckhoff +vendor MINDSATWORK 0x097a Minds At Work +vendor POINTCHIPS 0x09a6 PointChips vendor INTERSIL 0x09aa Intersil vendor ALTIUS 0x09b3 Altius Solutions vendor ARRIS 0x09c1 Arris Interactive @@ -325,60 +437,103 @@ vendor ACTISYS 0x09c4 ACTiSYS vendor AFOURTECH 0x09da A-FOUR TECH vendor AIMEX 0x09dc AIMEX -vendor ADDONICS 0x09df Addonics Technologies -vendor AKAI 0x09e8 AKAI professional M.I. +vendor ADDONICS 0x09df Addonics +vendor AKAI 0x09e8 AKAI vendor ARESCOM 0x09f5 ARESCOM vendor BAY 0x09f9 Bay Associates vendor ALTERA 0x09fb Altera -vendor CSR 0x0a12 Cambridge Silicon Radio Ltd. -vendor TREK 0x0a16 Trek Technology +vendor CSR 0x0a12 Cambridge Silicon Radio +vendor TREK 0x0a16 Trek vendor ASAHIOPTICAL 0x0a17 Asahi Optical vendor BOCASYSTEMS 0x0a43 Boca Systems +vendor MEDIAGEAR 0x0a48 MediaGear vendor BROADCOM 0x0a5c Broadcom vendor GREENHOUSE 0x0a6b GREENHOUSE -vendor GEOCAST 0x0a79 Geocast Network Systems -vendor NEODIO 0x0aec Neodio +vendor GEOCAST 0x0a79 Geocast +vendor NEODIO 0x0aec Neodio +vendor VODAFONE 0x0af0 Vodafone +vendor ASUS 0x0b05 ASUS vendor TODOS 0x0b0c Todos Data System vendor SIIG2 0x0b39 SIIG -vendor HAL 0x0b41 HAL Corporation -vendor EMS 0x0b43 EMS Production Ltd. +vendor TEKRAM 0x0b3b Tekram +vendor HAL 0x0b41 HAL +vendor EMS 0x0b43 EMS vendor NEC2 0x0b62 NEC vendor ATI2 0x0b6f ATI -vendor ASIX 0x0b95 ASIX Electronics +vendor ZEEVO 0x0b7a Zeevo +vendor KURUSUGAWA 0x0b7e Kurusugawa +vendor ASIX 0x0b95 ASIX +vendor USR 0x0baf U.S. Robotics vendor REALTEK 0x0bda RealTek -vendor AGATE 0x0c08 Agate Technologies +vendor ADDONICS2 0x0bf6 Addonics +vendor AGATE 0x0c08 Agate vendor DMI 0x0c0b DMI +vendor CHICONY2 0x0c45 Chicony +vendor SEALEVEL 0x0c52 Sealevel vendor LUWEN 0x0c76 Luwen -vendor SMC3 0x0d5c Standard Microsystems +vendor ZCOM 0x0cde Z-Com +vendor TANGTOP 0x0d3d Tangtop +vendor SMC3 0x0d5c SMC vendor PNY 0x0d7d PNY +vendor ACDC 0x0d7e ACDC +vendor ABC 0x0d8c ABC vendor MSI 0x0db0 Micro Star International -vendor HAWKING 0x0e66 Hawking Technologies +vendor HAWKING 0x0e66 Hawking vendor GMATE 0x0e7e G.Mate, Inc -vendor MICROTUNE 0x0f4d Microtune, Inc. +vendor OTI 0x0ea0 Ours +vendor PILOTECH 0x0eaf Pilotech +vendor EGALAX 0x0eef eGalax +vendor MICROTUNE 0x0f4d Microtune +vendor VTECH 0x0f88 VTech vendor QUALCOMM2 0x1004 Qualcomm +vendor GIGABYTE 0x1044 GIGABYTE vendor WESTERN 0x1058 Western Digital vendor MOTOROLA 0x1063 Motorola +vendor CCYU 0x1065 CCYU vendor PLX 0x10b5 PLX vendor ASANTE 0x10bd Asante -vendor JRC 0x1145 Japan Radio Company -vendor DELORME 0x1163 Delorme Publishing -vendor ACERCM 0x1189 Acer Communications & Multimedia Inc. +vendor JRC 0x1145 JRC +vendor DELORME 0x1163 DeLorme +vendor SERVERWORKS 0x1166 ServerWorks +vendor ACERCM 0x1189 Acer Communications & Multimedia vendor TWINMOS 0x126f TwinMOS -vendor BELKIN2 0x1293 Belkin Components +vendor TSUNAMI 0x1241 Tsunami +vendor CREATIVE2 0x1292 Creative Labs +vendor BELKIN2 0x1293 Belkin +vendor AINCOMM 0x12fd Aincomm vendor MOBILITY 0x1342 Mobility +vendor LINKSYS4 0x13b1 Linksys vendor SHARK 0x13d2 Shark +vendor SILICOM 0x1485 Silicom +vendor RALINK 0x148f Ralink Technology vendor IMAGINATION 0x149a Imagination Technologies +vendor CONCEPTRONIC 0x14b2 Conceptronic vendor SILICONPORTALS 0x1527 Silicon Portals vendor SOHOWARE 0x15e8 SOHOware -vendor UMAX 0x1606 UMAX Data Systems +vendor UMAX 0x1606 UMAX vendor INSIDEOUT 0x1608 Inside Out Networks vendor ENTREGA 0x1645 Entrega -vendor ACTIONTEC 0x1668 Actiontec Electronics +vendor ACTIONTEC 0x1668 Actiontec vendor LINKSYS3 0x1915 Linksys vendor DLINK 0x2001 D-Link -vendor VIDZMEDIA 0x3275 VidzMedia Pte Ltd -vendor DAISY 0x3579 Daisy Technology +vendor ERICSSON 0x2282 Ericsson +vendor MOTOROLA2 0x22b8 Motorola +vendor TRIPPLITE 0x2478 Tripp-Lite +vendor HIROSE 0x2631 Hirose +vendor NHJ 0x2770 NHJ +vendor PLANEX 0x2c02 Planex +vendor VIDZMEDIA 0x3275 VidzMedia +vendor AEI 0x3334 AEI +vendor PQI 0x3538 PQI +vendor DAISY 0x3579 Daisy +vendor NI 0x3923 National Instruments +vendor MICRONET 0x3980 Micronet +vendor IODATA2 0x40bb I-O Data +vendor IRIVER 0x4102 iRiver vendor DELL 0x413c Dell +vendor AVERATEC 0x50c2 Averatec +vendor ONSPEC2 0x55aa OnSpec +vendor ZINWELL 0x5a57 Zinwell vendor SITECOM 0x6189 Sitecom vendor INTEL 0x8086 Intel vendor HP2 0xf003 Hewlett Packard @@ -388,9 +543,10 @@ */ /* 3Com products */ -product 3COM HOMECONN 0x009d HomeConnect USB Camera -product 3COM 3CREB96 0x00a0 Bluetooth USB dongle -product 3COM 3C19250 0x03E8 3C19250 Ethernet adapter +product 3COM HOMECONN 0x009d HomeConnect Camera +product 3COM 3CREB96 0x00a0 Bluetooth dongle +product 3COM 3C19250 0x03E8 3C19250 Ethernet +product 3COM 3CRSHEW696 0x0a01 3CRSHEW696 Wireless adapter product 3COM USR56K 0x3021 U.S.Robotics 56000 Voice Faxmodem Pro product 3COM 3C460 0x11f8 HomeConnect 3C460 product 3COM 3C460B 0x4601 HomeConnect 3C460B @@ -403,9 +559,9 @@ /* AboCom products */ product ABOCOM XX1 0x110c XX1 product ABOCOM XX2 0x200c XX2 -product ABOCOM URE450 0x4000 URE450 Ethernet Adapter -product ABOCOM UFE1000 0x4002 UFE1000 Fast Ethernet Adapter -product ABOCOM DSB650TX_PNA 0x4003 1/10/100 ethernet adapter +product ABOCOM URE450 0x4000 URE450 Ethernet +product ABOCOM UFE1000 0x4002 UFE1000 Fast Ethernet +product ABOCOM DSB650TX_PNA 0x4003 1/10/100 ethernet product ABOCOM XX4 0x4004 XX4 product ABOCOM XX5 0x4007 XX5 product ABOCOM XX6 0x400b XX6 @@ -415,8 +571,8 @@ product ABOCOM XX10 0xabc1 XX10 /* Accton products */ -product ACCTON USB320_EC 0x1046 USB320-EC Ethernet Adapter -product ACCTON SS1001 0x5046 SpeedStream Ethernet Adapter +product ACCTON USB320_EC 0x1046 USB320-EC Ethernet +product ACCTON SS1001 0x5046 SpeedStream Ethernet /* Acer Peripherals, Inc. products */ product ACERP ACERSCAN_C310U 0x12a6 Acerscan C310U @@ -432,15 +588,15 @@ product ACTIVEWIRE IOBOARD_FW1 0x0101 I/O Board, rev. 1 firmware /* Actiontec, Inc. products */ -product ACTIONTEC UAT1 0x7605 UAT1 Wireless Ethernet adapter +product ACTIONTEC UAT1 0x7605 UAT1 Wireless Ethernet /* ADMtek products */ -product ADMTEK PEGASUS 0x0986 AN986 USB Ethernet adapter -product ADMTEK PEGASUSII 0x8511 AN8511 USB Ethernet adapter -product ADMTEK PEGASUSII_2 0x8513 AN8513 USB Ethernet adapter +product ADMTEK PEGASUS 0x0986 AN986 Ethernet +product ADMTEK PEGASUSII 0x8511 AN8511 Ethernet +product ADMTEK PEGASUSII_2 0x8513 AN8513 Ethernet /* ADS products */ -product ADS UBS10BT 0x0008 UBS-10BT Ethernet adapter +product ADS UBS10BT 0x0008 UBS-10BT Ethernet /* Agate Technologies products */ product AGATE QDRIVE 0x0378 Q-Drive @@ -457,6 +613,9 @@ product AGFA SNAPSCANE26 0x2097 SnapScan e26 product AGFA SNAPSCANE52 0x20fd SnapScan e52 +/* Ain Communication Technology products */ +product AINCOMM AWU2000B 0x1001 AWU2000B Wireless adapter + /* AKS products */ product AKS USBHASP 0x0001 USB-HASP 0.06 @@ -480,7 +639,7 @@ product ANCHOR EZLINK 0x2720 EZLINK /* AOX, Inc. products */ -product AOX USB101 0x0008 USB ethernet controller engine +product AOX USB101 0x0008 Ethernet /* Apple Computer products */ product APPLE OPTMOUSE 0x0302 Optical mouse @@ -491,72 +650,80 @@ /* Asahi Optical products */ product ASAHIOPTICAL OPTIO230 0x0004 Digital camera -product ASAHIOPTICAL OPTIO330 0x0006 Digital camera +product ASAHIOPTICAL OPTIO330 0x0006 Digital camera /* ASIX Electronics products */ -product ASIX AX88172 0x1720 USB 2.0 10/100 ethernet controller +product ASIX AX88172 0x1720 10/100 ethernet + +/* ASUS products */ +product ASUS WL167G 0x1707 WL-167g wireless adapter /* ATen products */ -product ATEN UC1284 0x2001 Parallel printer adapter -product ATEN UC10T 0x2002 10Mbps ethernet adapter -product ATEN UC232A 0x2008 Serial adapter +product ATEN UC1284 0x2001 Parallel printer +product ATEN UC10T 0x2002 10Mbps ethernet +product ATEN UC232A 0x2008 Serial /* Atmel Comp. products */ product ATMEL UHB124 0x3301 UHB124 hub product ATMEL DWL120 0x7603 DWL-120 Wireless adapter product ATMEL BW002 0x7605 BW002 Wireless adapter +product ATMEL WL1130USB 0x7613 WL-1130 USB product ATMEL AT76C505A 0x7614 AT76c505a Wireless adapter /* Avision products */ product AVISION 1200U 0x0268 1200U scanner +/* B&B Electronics products */ +product BBELECTRONICS USOTL4 0xAC01 RS-422/485 + /* Belkin products */ -/*product BELKIN F5U111 0x???? F5U111 Ethernet adapter*/ -product BELKIN2 F5U002 0x0002 F5U002 Parallel printer adapter -product BELKIN USB2LAN 0x0121 USB to LAN Converter -product BELKIN F5U103 0x0103 F5U103 Serial adapter -product BELKIN F5U109 0x0109 F5U109 Serial adapter +/*product BELKIN F5U111 0x???? F5U111 Ethernet*/ +product BELKIN2 F5U002 0x0002 F5U002 Parallel printer +product BELKIN USB2LAN 0x0121 USB to LAN +product BELKIN F5U103 0x0103 F5U103 Serial +product BELKIN F5U109 0x0109 F5U109 Serial product BELKIN F5U208 0x0208 F5U208 VideoBus II -product BELKIN F5U409 0x0409 F5U409 Serial adapter +product BELKIN F5U409 0x0409 F5U409 Serial product BELKIN F5U120 0x1203 F5U120-PC Hub +product BELKIN F5D7050 0x7050 F5D7050 wireless adapter /* Billionton products */ -product BILLIONTON USB100 0x0986 USB100N 10/100 FastEthernet Adapter +product BILLIONTON USB100 0x0986 USB100N 10/100 FastEthernet product BILLIONTON USBLP100 0x0987 USB100LP product BILLIONTON USBEL100 0x0988 USB100EL product BILLIONTON USBE100 0x8511 USBE100 +/* Broadcom products */ +product BROADCOM BCM2033 0x2033 BCM2033 Bluetooth USB dongle + /* Brother Industries products */ product BROTHER HL1050 0x0002 HL-1050 laser printer /* Behavior Technology Computer products */ product BTC BTC7932 0x6782 Keyboard with mouse port -/* Broadcom products */ -product BROADCOM BCM2033 0x2033 BCM2033 Bluetooth USB dongle - /* Canon, Inc. products */ product CANON N656U 0x2206 CanoScan N656U -product CANON N1220U 0x2207 CanoScan N1220U -product CANON N676U 0x220d CanoScan N676U +product CANON N1220U 0x2207 CanoScan N1220U +product CANON N676U 0x220d CanoScan N676U product CANON N1240U 0x220e CanoScan N1240U product CANON S10 0x3041 PowerShot S10 product CANON S100 0x3045 PowerShot S100 product CANON S200 0x3065 PowerShot S200 /* CATC products */ -product CATC NETMATE 0x000a Netmate ethernet adapter -product CATC NETMATE2 0x000c Netmate2 ethernet adapter +product CATC NETMATE 0x000a Netmate ethernet +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 +product CASIO NAMELAND 0x4001 CASIO Nameland EZ-USB /* Cherry products */ product CHERRY MY3000KBD 0x0001 My3000 keyboard product CHERRY MY3000HUB 0x0003 My3000 hub -product CHERRY CYBOARD 0x0004 CyBoard Keyboard +product CHERRY CYBOARD 0x0004 CyBoard Keyboard /* Chic Technology products */ product CHIC MOUSE1 0x0001 mouse @@ -589,7 +756,10 @@ /* Cambridge Silicon Radio Ltd. products */ product CSR BT_DONGLE 0x0001 Bluetooth USB dongle -product CSR CSRDFU 0xffff USB Bluetooth Device in DFU State +product CSR CSRDFU 0xffff USB Bluetooth Device in DFU State + +/* Conceptronic products */ +product CONCEPTRONIC C54U 0x3c02 C54U wireless adapter /* CTX products */ product CTX EX1300 0x9999 Ex1300 hub @@ -622,16 +792,17 @@ product DIGI ACCELEPORT8 0x0008 AccelePort USB 8 /* D-Link products */ -/*product DLINK DSBS25 0x0100 DSB-S25 serial adapter*/ -product DLINK DUBE100 0x1a00 10/100 ethernet adapter -product DLINK DSB650TX4 0x200c 10/100 ethernet adapter -product DLINK DSB650C 0x4000 10Mbps ethernet adapter -product DLINK DSB650TX1 0x4001 10/100 ethernet adapter -product DLINK DSB650TX 0x4002 10/100 ethernet adapter -product DLINK DSB650TX_PNA 0x4003 1/10/100 ethernet adapter -product DLINK DSB650TX3 0x400b 10/100 ethernet adapter -product DLINK DSB650TX2 0x4102 10/100 ethernet adapter -product DLINK DSB650 0xabc1 10/100 ethernet adapter +/*product DLINK DSBS25 0x0100 DSB-S25 serial*/ +product DLINK DUBE100 0x1a00 10/100 ethernet +product DLINK DSB650TX4 0x200c 10/100 ethernet +product DLINK DWLG122 0x3c00 DWL-G122 b1 wireless adapter +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 DSB650TX3 0x400b 10/100 ethernet +product DLINK DSB650TX2 0x4102 10/100 ethernet +product DLINK DSB650 0xabc1 10/100 ethernet /* EIZO products */ product EIZO HUB 0x0000 hub @@ -652,20 +823,20 @@ product ELSA USB2ETHERNET 0x3000 Microlink USB2Ethernet /* EMS products */ -product EMS DUAL_SHOOTER 0x0003 PSX gun controller converter +product EMS DUAL_SHOOTER 0x0003 PSX gun controller converter /* Entrega products */ -product ENTREGA 1S 0x0001 1S serial connector -product ENTREGA 2S 0x0002 2S serial connector -product ENTREGA 1S25 0x0003 1S25 serial connector -product ENTREGA 4S 0x0004 4S serial connector -product ENTREGA E45 0x0005 E45 Ethernet adapter -product ENTREGA CENTRONICS 0x0006 Centronics connector -product ENTREGA 1S9 0x0093 1S9 serial connector +product ENTREGA 1S 0x0001 1S serial +product ENTREGA 2S 0x0002 2S serial +product ENTREGA 1S25 0x0003 1S25 serial +product ENTREGA 4S 0x0004 4S serial +product ENTREGA E45 0x0005 E45 Ethernet +product ENTREGA CENTRONICS 0x0006 Parallel Port +product ENTREGA 1S9 0x0093 1S9 serial product ENTREGA EZUSB 0x8000 EZ-USB -/*product ENTREGA SERIAL 0x8001 DB25 Serial connector*/ -product ENTREGA 2U4S 0x8004 2U4S serial connector/usb hub -/*product ENTREGA SERIAL_DB9 0x8093 DB9 Serial connector*/ +/*product ENTREGA SERIAL 0x8001 DB25 Serial*/ +product ENTREGA 2U4S 0x8004 2U4S serial/usb hub +/*product ENTREGA SERIAL_DB9 0x8093 DB9 Serial*/ /* Epson products */ product EPSON PRINTER1 0x0001 USB Printer @@ -683,31 +854,31 @@ product EPSON 1650 0x0110 Perfection 1650 scanner product EPSON GT9700F 0x0112 GT-9700F scanner product EPSON GT9300UF 0x011b GT-9300UF scanner -product EPSON 3200 0x011c Perfection 3200 scanner +product EPSON 3200 0x011c Perfection 3200 scanner product EPSON 1260 0x011d Perfection 1260 scanner product EPSON 1660 0x011e Perfection 1660 scanner product EPSON 1670 0x011f Perfection 1670 scanner /* e-TEK Labs products */ -product ETEK 1COM 0x8007 Serial port +product ETEK 1COM 0x8007 Serial /* Extended Systems products */ product EXTENDED XTNDACCESS 0x0100 XTNDAccess IrDA /* GoHubs products */ -product GOHUBS GOCOM232 0x1001 GoCOM232 Serial converter +product GOHUBS GOCOM232 0x1001 GoCOM232 Serial /* Gravis products */ product GRAVIS GAMEPADPRO 0x4001 GamePad Pro /* GREENHOUSE products */ -product GREENHOUSE KANA21 0x0001 CF-writer with Portable MP3 Player +product GREENHOUSE KANA21 0x0001 CF-writer with MP3 /* Griffin Technology */ product GRIFFIN IMATE 0x0405 iMate, ADB adapter /* Freecom products */ -product FREECOM DVD 0xfc01 Connector for DVD drive +product FREECOM DVD 0xfc01 DVD drive /* Future Technology Devices products */ product FTDI SERIAL_8U100AX 0x8372 8U100AX Serial @@ -718,42 +889,47 @@ product FUJIPHOTO MASS0100 0x0100 Mass Storage /* Fujitsu protducts */ -product FUJITSU AH_F401U 0x105b AH-F401U Air H device - -/* Qualcomm products */ -product QUALCOMM CDMA_MSM 0x3196 CDMA Technologies MSM modem -product QUALCOMM2 CDMA_MSM 0x6000 CDMA Technologies MSM phone +product FUJITSU AH_F401U 0x105b AH-F401U Air H device /* General Instruments (Motorola) products */ product GENERALINSTMNTS SB5100 0x5100 SURFboard SB5100 Cable modem /* Genesys Logic products */ -product GENESYS GL650 0x0604 GL650 Hub -product GENESYS GL641USB 0x0700 GL641USB CompactFlash Card Reader -product GENESYS GL641USB2IDE_2 0x0701 GL641USB USB-IDE Bridge No 2 -product GENESYS GL641USB2IDE 0x0702 GL641USB USB-IDE Bridge +product GENESYS GL650 0x0604 GL650 Hub +product GENESYS GL641USB 0x0700 GL641USB CompactFlash Card Reader +product GENESYS GL641USB2IDE_2 0x0701 GL641USB USB-IDE Bridge No 2 +product GENESYS GL641USB2IDE 0x0702 GL641USB USB-IDE Bridge + +/* GIGABYTE products */ +product GIGABYTE GNBR402W 0x8002 GN-BR402W +product GIGABYTE GNWLBM101 0x8003 GN-WLBM101 +product GIGABYTE GNWBKG 0x8007 GN-WBKG /* G.Mate, Inc products */ product GMATE YP3X00 0x1001 YP3X00 PDA +/* Guillemot Corporation */ +product GUILLEMOT DALEADER 0xa300 DA Leader +product GUILLEMOT HWGUSB254 0xe000 HWGUSB2-54 WLAN + /* HAL Corporation products */ product HAL IMR001 0x0011 Crossam2+USB IR commander /* Hagiwara products */ -product HAGIWARA FGSM 0x0002 FlashGate SmartMedia Card Reader -product HAGIWARA FGCF 0x0003 FlashGate CompactFlash Card Reader -product HAGIWARA FG 0x0005 FlashGate +product HAGIWARA FGSM 0x0002 FlashGate SmartMedia Card Reader +product HAGIWARA FGCF 0x0003 FlashGate CompactFlash Card Reader +product HAGIWARA FG 0x0005 FlashGate /* Handspring, Inc. */ product HANDSPRING VISOR 0x0100 Handspring Visor product HANDSPRING TREO 0x0200 Handspring Treo -product HANDSPRING TREO600 0x0300 Handspring Treo 600 +product HANDSPRING TREO600 0x0300 Handspring Treo 600 /* Hauppauge Computer Works */ product HAUPPAUGE WINTV_USB_FM 0x4d12 WinTV USB FM /* Hawking Technologies products */ -product HAWKING UF100 0x400c 10/100 USB Ethernet +product HAWKING UF100 0x400c 10/100 USB Ethernet /* Hitachi, Ltd. products */ product HITACHI DVDCAM_USB 0x001e DVDCAM USB HS Interface @@ -766,11 +942,15 @@ product HP 4200C 0x0105 ScanJet 4200C product HP CDWRITERPLUS 0x0107 CD-Writer Plus product HP KBDHUB 0x010c Multimedia Keyboard Hub +product HP G55XI 0x0111 OfficeJet G55xi +product HP HN210W 0x011c HN210W 802.11b WLAN +product HP 49GPLUS 0x0121 49g+ graphing calculator 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 MMKEYB 0x020c Multimedia keyboard product HP 1220C 0x0212 DeskJet 1220C product HP 810C 0x0304 DeskJet 810C/812C product HP 4300C 0x0305 Scanjet 4300C @@ -807,7 +987,7 @@ product INSIDEOUT EDGEPORT4 0x0001 EdgePort/4 serial ports /* In-System products */ -product INSYSTEM F5U002 0x0002 Parallel printer adapter +product INSYSTEM F5U002 0x0002 Parallel printer product INSYSTEM ATAPI 0x0031 ATAPI adapter product INSYSTEM ISD110 0x0200 IDE adapter ISD110 product INSYSTEM ISD105 0x0202 IDE adapter ISD105 @@ -825,26 +1005,27 @@ product INTREPIDCS NEOVI 0x0701 NeoVI Blue vehicle bus interface /* I/O DATA products */ +product IODATA IU_CD2 0x0204 DVD Multi-plus unit iU-CD2 +product IODATA DVR_UEH8 0x0206 DVD Multi-plus unit DVR-UEH8 product IODATA USBETT 0x0901 USB ETT product IODATA USBETTX 0x0904 USB ETTX product IODATA USBETTXS 0x0913 USB ETTX -product IODATA USBRSAQ 0x0a03 USB serial adapter USB-RSAQ1 -product IODATA IU_CD2 0x0204 DVD Multi-plus unit iU-CD2 -product IODATA DVR_UEH8 0x0206 DVD Multi-plus unit DVR-UEH8 +product IODATA USBRSAQ 0x0a03 Serial USB-RSAQ1 /* Iomega products */ product IOMEGA ZIP100 0x0001 Zip 100 product IOMEGA ZIP250 0x0030 Zip 250 /* JVC products */ -product JVC GR_DX95 0x000a GR-DX95 +product JVC GR_DX95 0x000a GR-DX95 +product JVC MP_PRX1 0x3008 MP-PRX1 Ethernet /* JRC products */ product JRC AH_J3001V_J3002V 0x0001 AirH\" PHONE AH-J3001V/J3002V /* Kawasaki products */ -product KLSI DUH3E10BT 0x0008 USB ethernet controller engine -product KLSI DUH3E10BTN 0x0009 USB ethernet controller engine +product KLSI DUH3E10BT 0x0008 USB ethernet +product KLSI DUH3E10BTN 0x0009 USB ethernet /* Kawatsu products */ product KAWATSU MH4000P 0x0003 MiniHub 4000P @@ -853,20 +1034,20 @@ product KEISOKUGIKEN USBDAQ 0x0068 HKS-0200 USBDAQ /* Kawasaki products */ -product KLSI DUH3E10BT 0x0008 10BT Ethernet adapter, in the DU-H3E +product KLSI DUH3E10BT 0x0008 DU-H3E 10BT Ethernet /* Kensington products */ product KENSINGTON ORBIT 0x1003 Orbit USB/PS2 trackball product KENSINGTON TURBOBALL 0x1005 TurboBall /* 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 USA19QW 0x0118 USA-19QW serial adapter +product KEYSPAN USA28 0x0101 USA-28 serial +product KEYSPAN USA28X 0x0102 USA-28X serial +product KEYSPAN USA19 0x0103 USA-19 serial +product KEYSPAN USA18X 0x0105 USA-18X serial +product KEYSPAN USA19W 0x0106 USA-19W serial +product KEYSPAN USA49W 0x0109 USA-49W serial +product KEYSPAN USA19QW 0x0118 USA-19QW serial /* Kingston products */ product KINGSTON KNU101TX 0x000a KNU101TX USB Ethernet @@ -910,8 +1091,11 @@ product LINKSYS USB10TA 0x2206 USB10TA Ethernet product LINKSYS USB10TX2 0x400b USB10TX product LINKSYS2 WUSB11 0x2219 WUSB11 Wireless adapter -product LINKSYS2 USB200M 0x2226 USB 2.0 10/100 ethernet controller +product LINKSYS2 USB200M 0x2226 USB 2.0 10/100 ethernet product LINKSYS3 WUSB11v28 0x2233 WUSB11 v2.8 wireless adapter +product LINKSYS4 WUSB54G 0x000d WUSB54G wireless adapter +product LINKSYS4 WUSB54GP 0x0011 WUSB54GP wireless adapter +product LINKSYS4 HU200TS 0x001a HU200TS wireless adapter /* Logitech products */ product LOGITECH M2452 0x0203 M2452 keyboard @@ -937,8 +1121,8 @@ product LOGITECH QUICKCAMPRO2 0xd001 QuickCam Pro /* Logitec Corp. products */ -product LOGITEC LDR_H443SU2 0x0033 DVD Multi-plus unit LDR-H443SU2 -product LOGITEC LDR_H443U2 0x00b3 DVD Multi-plus unit LDR-H443U2 +product LOGITEC LDR_H443SU2 0x0033 DVD Multi-plus unit LDR-H443SU2 +product LOGITEC LDR_H443U2 0x00b3 DVD Multi-plus unit LDR-H443U2 /* Lucent products */ product LUCENT EVALKIT 0x1001 USS-720 evaluation kit @@ -967,8 +1151,12 @@ product MELCO LUATX5 0x0005 LUA-TX Ethernet product MELCO LUA2TX5 0x0009 LUA2-TX Ethernet product MELCO LUAKTX 0x0012 LUA-KTX Ethernet -product MELCO DUBPXXG 0x001c USB-IDE Bridge: DUB-PxxG -product MELCO LUAU2KTX 0x003d LUA-U2-KTX Ethernet +product MELCO DUBPXXG 0x001c USB-IDE Bridge: DUB-PxxG +product MELCO LUAU2KTX 0x003d LUA-U2-KTX Ethernet +product MELCO KG54YB 0x005e WLI-U2-KG54-YB WLAN +product MELCO KG54 0x0066 WLI-U2-KG54 WLAN +product MELCO KG54AI 0x0067 WLI-U2-KG54-AI WLAN +product MELCO NINWIFI 0x008b Nintendo Wi-Fi /* Metricom products */ product METRICOM RICOCHET_GS 0x0001 Ricochet GS @@ -977,6 +1165,12 @@ product MGE UPS1 0x0001 MGE UPS SYSTEMS PROTECTIONCENTER 1 product MGE UPS2 0xffff MGE UPS SYSTEMS PROTECTIONCENTER 2 +/* Micro Star International products */ +product MSI BT_DONGLE 0x1967 Bluetooth USB dongle +product MSI RT2570 0x6861 RT2570 +product MSI RT2570_2 0x6865 RT2570 +product MSI RT2570_3 0x6869 RT2570 + /* Microsoft products */ product MICROSOFT SIDEPREC 0x0008 SideWinder Precision Pro product MICROSOFT INTELLIMOUSE 0x0009 IntelliMouse @@ -1003,6 +1197,9 @@ product MICROTEK V6USL2 0x80a3 ScanMaker V6USL product MICROTEK V6UL 0x80ac ScanMaker V6UL +/* Microtune, Inc. products */ +product MICROTUNE BT_DONGLE 0x1000 Bluetooth USB dongle + /* Midiman products */ product MIDIMAN MIDISPORT2X2 0x1001 Midisport 2x2 @@ -1012,12 +1209,6 @@ product MINOLTA X 0x4009 Dimage X product MINOLTA 5400 0x400e Dimage 5400 -/* Micro Star International products */ -product MSI BT_DONGLE 0x1967 Bluetooth USB dongle - -/* Microtune, Inc. products */ -product MICROTUNE BT_DONGLE 0x1000 Bluetooth USB dongle - /* Mitsumi products */ product MITSUMI CDRRW 0x0000 CD-R/RW Drive product MITSUMI BT_DONGLE 0x641f Bluetooth USB dongle @@ -1025,6 +1216,7 @@ /* Motorola products */ product MOTOROLA MC141555 0x1555 MC141555 hub controller product MOTOROLA SB4100 0x4100 SB4100 USB Cable Modem +product MOTOROLA2 E398 0x4810 E398 Mobile Phone /* MultiTech products */ product MULTITECH ATLAS 0xf101 MT5634ZBA-USB modem @@ -1043,7 +1235,7 @@ /* M-Systems products */ product MSYSTEMS DISKONKEY 0x0010 DiskOnKey -product MSYSTEMS DISKONKEY2 0x0011 DiskOnKey +product MSYSTEMS DISKONKEY2 0x0011 DiskOnKey /* National Semiconductor */ product NATIONAL BEARPAW1200 0x1000 BearPaw 1200 @@ -1062,8 +1254,8 @@ product NETCHIP ETHERNETGADGET 0xa4a2 Linux Ethernet/RNDIS gadget on pxa210/25x/26x /* Netgear products */ -product NETGEAR EA101 0x1001 Ethernet adapter -product NETGEAR FA120 0x1040 USB 2.0 Ethernet adapter +product NETGEAR EA101 0x1001 Ethernet +product NETGEAR FA120 0x1040 USB 2.0 Ethernet /* Nikon products */ product NIKON E990 0x0102 Digital Camera E990 @@ -1081,7 +1273,7 @@ product ONSPEC UCF100 0xa400 FlashLink UCF-100 CompactFlash Reader /* Palm Computing, Inc. product */ -product PALM SERIAL 0x0080 USB Serial Adaptor +product PALM SERIAL 0x0080 USB Serial product PALM M500 0x0001 Palm m500 product PALM M505 0x0002 Palm m505 product PALM M515 0x0003 Palm m515 @@ -1094,16 +1286,16 @@ product PALM ZIRE 0x0070 Palm Zire /* Panasonic products */ -product PANASONIC KXLRW32AN 0x0d09 CD-R Drive KXL-RW32AN -product PANASONIC KXLCB20AN 0x0d0a CD-R Drive KXL-CB20AN -product PANASONIC KXLCB35AN 0x0d0e DVD-ROM & CD-R/RW -product PANASONIC SDCAAE 0x1b00 MultiMediaCard Adapter +product PANASONIC KXLRW32AN 0x0d09 CD-R Drive KXL-RW32AN +product PANASONIC KXLCB20AN 0x0d0a CD-R Drive KXL-CB20AN +product PANASONIC KXLCB35AN 0x0d0e DVD-ROM & CD-R/RW +product PANASONIC SDCAAE 0x1b00 MultiMediaCard /* Peracom products */ -product PERACOM SERIAL1 0x0001 Serial Converter -product PERACOM ENET 0x0002 Ethernet adapter -product PERACOM ENET3 0x0003 At Home Ethernet Adapter -product PERACOM ENET2 0x0005 Ethernet adapter +product PERACOM SERIAL1 0x0001 Serial +product PERACOM ENET 0x0002 Ethernet +product PERACOM ENET3 0x0003 At Home Ethernet +product PERACOM ENET2 0x0005 Ethernet /* Philips products */ product PHILIPS DSS350 0x0101 DSS 350 Digital Speaker System @@ -1122,7 +1314,7 @@ product PIENGINEERING PS2USB 0x020b PS2 to Mac USB Adapter /* Plextor Corp. */ -product PLEXTOR 40_12_40U 0x0011 PlexWriter 40/12/40U +product PLEXTOR 40_12_40U 0x0011 PlexWriter 40/12/40U /* PLX products */ product PLX TESTBOARD 0x9060 test board @@ -1151,16 +1343,20 @@ /* 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 ATAPI4 0x2307 ATAPI-4 Bridge Controller +product PROLIFIC RSAQ2 0x04bb PL2303 Serial (IODATA USB-RSAQ2) +product PROLIFIC PL2303 0x2303 PL2303 Serial (ATEN/IOGEAR UC232A) +product PROLIFIC PL2305 0x2305 Parallel printer +product PROLIFIC ATAPI4 0x2307 ATAPI-4 Controller product PROLIFIC PL2501 0x2501 PL2501 Host-Host interface product PROLIFIC RSAQ3 0xaaa2 PL2303 Serial adapter (IODATA USB-RSAQ3) /* Putercom products */ product PUTERCOM UPA100 0x047e USB-1284 BRIDGE +/* Qualcomm products */ +product QUALCOMM CDMA_MSM 0x3196 CDMA Technologies MSM modem +product QUALCOMM2 CDMA_MSM 0x6000 CDMA Technologies MSM phone + /* Qtronix products */ product QTRONIX 980N 0x2011 Scorpion-980N keyboard @@ -1168,21 +1364,25 @@ product QUICKSHOT STRIKEPAD 0x6238 USB StrikePad /* Rainbow Technologies products */ -product RAINBOW IKEY2000 0x1200 i-Key 2000 +product RAINBOW IKEY2000 0x1200 i-Key 2000 + +/* Ralink Technology products */ +product RALINK RT2570 0x1706 RT2500USB wireless adapter +product RALINK RT2570_2 0x2570 RT2500USB wireless adapter /* ReakTek products */ product REALTEK USBKR100 0x8150 USBKR100 USB Ethernet (GREEN HOUSE) /* 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) +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 /* RATOC Systems products */ -product RATOC REXUSB60 0xb000 USB serial adapter REX-USB60 +product RATOC REXUSB60 0xb000 REX-USB60 /* Samsung products */ product SAMSUNG ML6060 0x3008 ML-6060 laser printer @@ -1232,7 +1432,7 @@ /* SIIG products */ product SIIG DIGIFILMREADER 0x0004 DigiFilm-Combo Reader product SIIG WINTERREADER 0x0330 WINTERREADER Reader -product SIIG2 US2308 0x0421 USB to Serial +product SIIG2 US2308 0x0421 Serial /* Silicon Portals Inc. */ product SILICONPORTALS YAPPH_NF 0x0200 YAP Phone (no firmware) @@ -1246,18 +1446,19 @@ product SITECOM SERIAL 0x2068 USB to serial cable (v2) /* SmartBridges products */ -product SMARTBRIDGES SMARTLINK 0x0001 SmartLink USB ethernet adapter -product SMARTBRIDGES SMARTNIC 0x0003 smartNIC 2 PnP Adapter +product SMARTBRIDGES SMARTLINK 0x0001 SmartLink USB ethernet +product SMARTBRIDGES SMARTNIC 0x0003 smartNIC 2 PnP ethernet /* SMC products */ -product SMC 2102USB 0x0100 10Mbps ethernet adapter -product SMC 2202USB 0x0200 10/100 ethernet adapter -product SMC 2206USB 0x0201 EZ Connect USB Ethernet Adapter +product SMC 2102USB 0x0100 10Mbps ethernet +product SMC 2202USB 0x0200 10/100 ethernet +product SMC 2206USB 0x0201 EZ Connect USB Ethernet +product SMC 2862WG 0xee13 EZ Connect wireless adapter product SMC2 2020HUB 0x2020 USB Hub -product SMC3 2662WUSB 0xa002 2662W-AR Wireless Adapter +product SMC3 2662WUSB 0xa002 2662W-AR Wireless /* SOHOware products */ -product SOHOWARE NUB100 0x9100 10/100 USB Ethernet +product SOHOWARE NUB100 0x9100 10/100 USB Ethernet /* SOLID YEAR products */ product SOLIDYEAR KEYBOARD 0x2101 Solid Year USB keyboard @@ -1274,9 +1475,10 @@ product SONY CLIE_41_MS 0x0099 Sony Clie v4.1 Memory Stick slot product SONY CLIE_41 0x009a Sony Clie v4.1 product SONY CLIE_NX60 0x00da Sony Clie nx60 +product SONY CLIE_TJ37 0x0169 Sony Clie tj37 /* Sony Ericsson products */ -product SONYERICSSON DCU10 0x0528 USB Cable +product SONYERICSSON DCU10 0x0528 USB Cable /* SOURCENEXT products */ product SOURCENEXT KEIKAI8 0x039f KeikaiDenwa 8 @@ -1289,20 +1491,17 @@ product STSN STSN0001 0x0001 Internet Access Device /* SUN Corporation products */ -product SUNTAC DS96L 0x0003 SUNTAC U-Cable type D2 +product SUNTAC DS96L 0x0003 SUNTAC U-Cable type D2 product SUNTAC PS64P1 0x0005 SUNTAC U-Cable type P1 product SUNTAC VS10U 0x0009 SUNTAC Slipper U -product SUNTAC IS96U 0x000a SUNTAC Ir-Trinity -product SUNTAC AS64LX 0x000b SUNTAC U-Cable type A3 +product SUNTAC IS96U 0x000a SUNTAC Ir-Trinity +product SUNTAC AS64LX 0x000b SUNTAC U-Cable type A3 product SUNTAC AS144L4 0x0011 SUNTAC U-Cable type A4 /* Sun Microsystems products */ -product SUN KEYBOARD 0x0005 Type 6 USB keyboard +product SUN2 KEYBOARD 0x0005 Type 6 USB keyboard /* XXX The above is a North American PC style keyboard possibly */ -product SUN MOUSE 0x0100 Type 6 USB mouse - -/* System TALKS, Inc. */ -product SYSTEMTALKS SGCX2UL 0x1920 SGC-X2UL +product SUN2 MOUSE 0x0100 Type 6 USB mouse /* Supra products */ product DIAMOND2 SUPRAEXPRESS56K 0x07da Supra Express 56K modem @@ -1310,6 +1509,9 @@ product DIAMOND2 RIO600USB 0x5001 Rio 600 USB product DIAMOND2 RIO800USB 0x5002 Rio 800 USB +/* System TALKS, Inc. */ +product SYSTEMTALKS SGCX2UL 0x1920 SGC-X2UL + /* Taugagreining products */ product TAUGA CAMERAMATE 0x0005 CameraMate (DPCM_USB) @@ -1334,7 +1536,7 @@ product THRUST FUSION_PAD 0xa0a3 Fusion Digital Gamepad /* Toshiba Corporation products */ -product TOSHIBA POCKETPC_E740 0x0706 PocketPC e740 +product TOSHIBA POCKETPC_E740 0x0706 PocketPC e740 /* Trek Technology products */ product TREK THUMBDRIVE 0x1111 ThumbDrive @@ -1375,9 +1577,16 @@ product VISIONEER 8100 0x0321 OneTouch 8100 product VISIONEER 8600 0x0331 OneTouch 8600 +/* Vodafone products */ +product VODAFONE MC3G 0x5000 Mobile Connect 3G datacard + +/* VTech products */ +product VTECH RT2570 0x3012 RT2570 + /* Wacom products */ product WACOM CT0405U 0x0000 CT-0405-U Tablet product WACOM GRAPHIRE 0x0010 Graphire +product WACOM GRAPHIRE3_4X5 0x0013 Graphire 3 4x5 product WACOM INTUOSA5 0x0021 Intuos A5 product WACOM GD0912U 0x0022 Intuos 9x12 Graphics Tablet @@ -1385,6 +1594,9 @@ product WESTERN EXTHDD 0x0400 External HDD product WESTERN HUB 0x0500 USB HUB +/* Windbond Electronics */ +product WINBOND UH104 0x5518 4-port USB Hub + /* Xirlink products */ product XIRLINK PCCAM 0x8080 IBM PC Camera @@ -1393,15 +1605,18 @@ /* Yamaha products */ product YAMAHA UX256 0x1000 UX256 MIDI I/F -product YAMAHA UX96 0x1008 UX96 MIDI I/F -product YAMAHA RTA54I 0x4000 NetVolante RTA54i Broadband&ISDN Router -product YAMAHA RTA55I 0x4004 NetVolante RTA55i Broadband VoIP Router -product YAMAHA RTW65B 0x4001 NetVolante RTW65b Broadband Wireless Router -product YAMAHA RTW65I 0x4002 NetVolante RTW65i Broadband&ISDN Wireless Router +product YAMAHA UX96 0x1008 UX96 MIDI I/F +product YAMAHA RTA54I 0x4000 NetVolante RTA54i Broadband&ISDN Router +product YAMAHA RTA55I 0x4004 NetVolante RTA55i Broadband VoIP Router +product YAMAHA RTW65B 0x4001 NetVolante RTW65b Broadband Wireless Router +product YAMAHA RTW65I 0x4002 NetVolante RTW65i Broadband&ISDN Wireless Router /* Yano products */ product YANO U640MO 0x0101 U640MO-03 +/* Zinwell products */ +product ZINWELL RT2570 0x0260 RT2570 + /* Zoom Telephonics, Inc. products */ product ZOOM 2986L 0x9700 2986L Fax modem Index: usbdi.c =================================================================== RCS file: /dump/FreeBSD-CVS/src/sys/dev/usb/usbdi.c,v retrieving revision 1.86.2.4 diff -u -r1.86.2.4 usbdi.c --- usbdi.c 3 Mar 2005 01:54:58 -0000 1.86.2.4 +++ usbdi.c 29 Jan 2006 17:40:56 -0000 @@ -1,4 +1,4 @@ -/* $NetBSD: usbdi.c,v 1.104 2004/07/17 20:16:13 mycroft Exp $ */ +/* $NetBSD: usbdi.c,v 1.106 2004/10/24 12:52:40 augustss Exp $ */ #include __FBSDID("$FreeBSD: src/sys/dev/usb/usbdi.c,v 1.86.2.4 2005/03/03 01:54:58 iedowse Exp $"); @@ -847,17 +847,21 @@ xfer->status = USBD_SHORT_XFER; } - if (xfer->callback) - xfer->callback(xfer, xfer->priv, xfer->status); - -#ifdef DIAGNOSTIC - if (pipe->methods->done != NULL) + /* + * For repeat operations, call the callback first, as the xfer + * will not go away and the "done" method may modify it. Otherwise + * reverse the order in case the callback wants to free or reuse + * the xfer. + */ + if (repeat) { + if (xfer->callback) + xfer->callback(xfer, xfer->priv, xfer->status); pipe->methods->done(xfer); - else - printf("usb_transfer_complete: pipe->methods->done == NULL\n"); -#else - pipe->methods->done(xfer); -#endif + } else { + pipe->methods->done(xfer); + if (xfer->callback) + xfer->callback(xfer, xfer->priv, xfer->status); + } if (sync && !polling) wakeup(xfer); Index: usbdi.h =================================================================== RCS file: /dump/FreeBSD-CVS/src/sys/dev/usb/usbdi.h,v retrieving revision 1.50.2.6 diff -u -r1.50.2.6 usbdi.h --- usbdi.h 1 Apr 2005 12:46:26 -0000 1.50.2.6 +++ usbdi.h 29 Jan 2006 17:40:56 -0000 @@ -275,6 +275,21 @@ #if defined(__FreeBSD__) int usbd_driver_load(module_t mod, int what, void *arg); + +static inline int +usb_get_port(device_t dev) +{ + struct usb_attach_arg *uap = device_get_ivars(dev); + return (uap->port); +} + +static inline struct usbd_interface * +usb_get_iface(device_t dev) +{ + struct usb_attach_arg *uap = device_get_ivars(dev); + return (uap->iface); +} + #endif /* XXX Perhaps USB should have its own levels? */ Index: usbdi_util.c =================================================================== RCS file: /dump/FreeBSD-CVS/src/sys/dev/usb/usbdi_util.c,v retrieving revision 1.32.2.2 diff -u -r1.32.2.2 usbdi_util.c --- usbdi_util.c 2 Mar 2005 10:56:52 -0000 1.32.2.2 +++ usbdi_util.c 29 Jan 2006 17:40:56 -0000 @@ -1,4 +1,4 @@ -/* $NetBSD: usbdi_util.c,v 1.36 2001/11/13 06:24:57 lukem Exp $ */ +/* $NetBSD: usbdi_util.c,v 1.42 2004/12/03 08:53:40 augustss Exp $ */ /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. Index: usbdi_util.h =================================================================== RCS file: /dump/FreeBSD-CVS/src/sys/dev/usb/usbdi_util.h,v retrieving revision 1.17.2.2 diff -u -r1.17.2.2 usbdi_util.h --- usbdi_util.h 2 Mar 2005 10:56:52 -0000 1.17.2.2 +++ usbdi_util.h 29 Jan 2006 17:40:56 -0000 @@ -1,4 +1,4 @@ -/* $NetBSD: usbdi_util.h,v 1.29 2004/06/23 02:30:52 mycroft Exp $ */ +/* $NetBSD: usbdi_util.h,v 1.31 2004/12/03 08:53:40 augustss Exp $ */ /* $FreeBSD: src/sys/dev/usb/usbdi_util.h,v 1.17.2.2 2005/03/02 10:56:52 sobomax Exp $ */ /*-