Kill usage of USB_VENDOR_FOO and USB_PRODUCT_BAR defines mostly using two
authorHasso Tepper <hasso@dragonflybsd.org>
Mon, 5 Nov 2007 13:32:28 +0000 (13:32 +0000)
committerHasso Tepper <hasso@dragonflybsd.org>
Mon, 5 Nov 2007 13:32:28 +0000 (13:32 +0000)
methods:

  - USB_DEVICE(vendor_id, product_id) macro.
  - Using C99 structure initialisers.

While at it, kill all custom "vendor and product id pair" structures and
custom walkthrough methods for these structures.

29 files changed:
sys/bus/usb/rio500_usb.h
sys/bus/usb/usb_quirks.c
sys/bus/usb/usbdi.h
sys/dev/netif/aue/if_aue.c
sys/dev/netif/axe/if_axe.c
sys/dev/netif/axe/if_axereg.h
sys/dev/netif/cue/if_cue.c
sys/dev/netif/cue/if_cuereg.h
sys/dev/netif/kue/if_kue.c
sys/dev/netif/kue/if_kuereg.h
sys/dev/netif/rue/if_rue.c
sys/dev/netif/rue/if_ruereg.h
sys/dev/netif/rum/if_rum.c
sys/dev/netif/ural/if_ural.c
sys/dev/usbmisc/uark/uark.c
sys/dev/usbmisc/ubsa/ubsa.c
sys/dev/usbmisc/udbp/udbp.c
sys/dev/usbmisc/ufm/ufm.c
sys/dev/usbmisc/uftdi/uftdi.c
sys/dev/usbmisc/uhid/uhid.c
sys/dev/usbmisc/umass/umass.c
sys/dev/usbmisc/umct/umct.c
sys/dev/usbmisc/umsm/umsm.c
sys/dev/usbmisc/uplcom/uplcom.c
sys/dev/usbmisc/urio/urio.c
sys/dev/usbmisc/uscanner/uscanner.c
sys/dev/usbmisc/uslcom/uslcom.c
sys/dev/usbmisc/uvisor/uvisor.c
sys/dev/usbmisc/uvscom/uvscom.c

index b425d17..2ba7918 100644 (file)
 
 /*
  * $FreeBSD: src/sys/dev/usb/rio500_usb.h,v 1.1 2000/04/08 17:02:13 n_hibma Exp $
- * $DragonFly: src/sys/bus/usb/rio500_usb.h,v 1.5 2007/06/27 12:27:59 hasso Exp $
+ * $DragonFly: src/sys/bus/usb/rio500_usb.h,v 1.6 2007/11/05 13:32:27 hasso Exp $
  */
 
 #include <sys/ioccom.h>
-#ifndef USB_VENDOR_DIAMOND
-#define USB_VENDOR_DIAMOND 0x841
-#endif
-#ifndef USB_PRODUCT_DIAMOND_RIO500USB
-#define USB_PRODUCT_DIAMOND_RIO500USB 0x1
-#endif
 
 struct RioCommand
 {
index 54aa0e0..c999594 100644 (file)
@@ -1,6 +1,6 @@
 /*     $NetBSD: usb_quirks.c,v 1.50 2004/06/23 02:30:52 mycroft Exp $  */
 /*     $FreeBSD: src/sys/dev/usb/usb_quirks.c,v 1.41.2.4 2006/02/15 22:51:08 iedowse Exp $     */
-/*     $DragonFly: src/sys/bus/usb/usb_quirks.c,v 1.7 2007/06/28 13:55:12 hasso Exp $  */
+/*     $DragonFly: src/sys/bus/usb/usb_quirks.c,v 1.8 2007/11/05 13:32:27 hasso Exp $  */
 
 /*
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -59,56 +59,112 @@ static const struct usbd_quirk_entry {
        u_int16_t bcdDevice;
        struct usbd_quirks quirks;
 } usb_quirks[] = {
- { USB_VENDOR_KYE, USB_PRODUCT_KYE_NICHE,          0x100, { UQ_NO_SET_PROTO}},
- { USB_VENDOR_INSIDEOUT, USB_PRODUCT_INSIDEOUT_EDGEPORT4,
-                                                   0x094, { UQ_SWAP_UNICODE}},
- { USB_VENDOR_DALLAS, USB_PRODUCT_DALLAS_J6502,            0x0a2, { UQ_BAD_ADC }},
- { USB_VENDOR_DALLAS, USB_PRODUCT_DALLAS_J6502,            0x0a2, { UQ_AU_NO_XU }},
- { USB_VENDOR_ALTEC, USB_PRODUCT_ALTEC_ADA70,      0x103, { UQ_BAD_ADC }},
- { USB_VENDOR_ALTEC, USB_PRODUCT_ALTEC_ASC495,      0x000, { UQ_BAD_AUDIO }},
- { USB_VENDOR_QTRONIX, USB_PRODUCT_QTRONIX_980N,    0x110, { UQ_SPUR_BUT_UP }},
- { 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_METRICOM, USB_PRODUCT_METRICOM_RICOCHET_GS,
-       0x100, { UQ_ASSUME_CM_OVER_DATA }},
- { USB_VENDOR_SANYO, USB_PRODUCT_SANYO_SCP4900,
-       0x000, { UQ_ASSUME_CM_OVER_DATA }},
- { USB_VENDOR_TI, USB_PRODUCT_TI_UTUSB41,          0x110, { UQ_POWER_CLAIM }},
- { USB_VENDOR_TELEX, USB_PRODUCT_TELEX_MIC1,       0x009, { UQ_AU_NO_FRAC }},
- { 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. */
- { 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 }},
- { USB_VENDOR_HP, USB_PRODUCT_HP_1220C,                    ANY,   { UQ_BROKEN_BIDIR }},
- /* YAMAHA router's ucdDevice is the version of farmware and often changes. */
- { USB_VENDOR_YAMAHA, USB_PRODUCT_YAMAHA_RTA54I,
-       ANY, { UQ_ASSUME_CM_OVER_DATA }},
- { USB_VENDOR_YAMAHA, USB_PRODUCT_YAMAHA_RTA55I,
-       ANY, { UQ_ASSUME_CM_OVER_DATA }},
- { USB_VENDOR_YAMAHA, USB_PRODUCT_YAMAHA_RTW65B,
-       ANY, { UQ_ASSUME_CM_OVER_DATA }},
- { USB_VENDOR_YAMAHA, USB_PRODUCT_YAMAHA_RTW65I,
-       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_QUALCOMM2_CDMA_MSM,
-       ANY, { UQ_ASSUME_CM_OVER_DATA }},
- { USB_VENDOR_SUNTAC, USB_PRODUCT_SUNTAC_AS64LX,
-       0x100, { UQ_ASSUME_CM_OVER_DATA }},
+ /* KYE Niche mouse */
+ { .idVendor = 0x0458, .idProduct = 0x0001, .bcdDevice = 0x100,
+   .quirks   = { UQ_NO_SET_PROTO}},
+ /* Inside Out Networks EdgePort/4 RS232 */
+ { .idVendor = 0x1608, .idProduct = 0x0001, .bcdDevice = 0x094,
+   .quirks   = { UQ_SWAP_UNICODE}},
+ /* Dallas Semiconductor J-6502 speakers */
+ { .idVendor = 0x04fa, .idProduct = 0x4201, .bcdDevice = 0x0a2,
+   .quirks   = { UQ_BAD_ADC | UQ_AU_NO_XU }},
+ /* Altec Lansing ADA70 speakers */
+ { .idVendor = 0x04d2, .idProduct = 0x0070, .bcdDevice = 0x103,
+   .quirks   = { UQ_BAD_ADC }},
+ /* Altec Lansing ASC495 speakers */
+ { .idVendor = 0x04d2, .idProduct = 0xff05, .bcdDevice = 0x000,
+   .quirks   = { UQ_BAD_AUDIO }},
+ /* Qtronix Scorpion-980N keyboard */
+ { .idVendor = 0x05c7, .idProduct = 0x2011, .bcdDevice = 0x110,
+   .quirks   = { UQ_SPUR_BUT_UP }},
+ /* Alcor Micro, Inc. kbd hub */
+ { .idVendor = 0x0566, .idProduct = 0x2802, .bcdDevice = 0x001,
+   .quirks   = { UQ_SPUR_BUT_UP }},
+ /* MCT Corp. hub */
+ { .idVendor = 0x0711, .idProduct = 0x0100, .bcdDevice = 0x102,
+   .quirks   = { UQ_BUS_POWERED }},
+ /* MCT Corp. USB-232 interface */
+ { .idVendor = 0x0711, .idProduct = 0x0210, .bcdDevice = 0x102,
+   .quirks   = { UQ_BUS_POWERED }},
+ /* Metricom Ricochet GS */
+ { .idVendor = 0x0870, .idProduct = 0x0001, .bcdDevice = 0x100,
+   .quirks   = { UQ_ASSUME_CM_OVER_DATA }},
+ /* Sanyo SCP-4900 USB Phone */
+ { .idVendor = 0x0474, .idProduct = 0x0701, .bcdDevice = 0x000,
+   .quirks   = { UQ_ASSUME_CM_OVER_DATA }},
+ /* Texas Instruments UT-USB41 hub */
+ { .idVendor = 0x0451, .idProduct = 0x1446, .bcdDevice = 0x110,
+   .quirks   = { UQ_POWER_CLAIM }},
+ /* Telex Communications Enhanced USB Microphone */
+ { .idVendor = 0x0562, .idProduct = 0x0001, .bcdDevice = 0x009,
+   .quirks   = { UQ_AU_NO_FRAC }},
+ /* Silicon Portals Inc. YAP Phone */
+ { .idVendor = 0x1527, .idProduct = 0x0201, .bcdDevice = 0x100,
+   .quirks   = { UQ_AU_INP_ASYNC }},
+
+ /*
+  * XXX All these HP devices should have a revision number,
+  * but I don't know what they are.
+  */
+ /* HP DeskJet 895C */
+ { .idVendor = 0x03f0, .idProduct = 0x0004, .bcdDevice = ANY,
+   .quirks   = { UQ_BROKEN_BIDIR }},
+ /* HP DeskJet 880C */
+ { .idVendor = 0x03f0, .idProduct = 0x0104, .bcdDevice = ANY,
+   .quirks   = { UQ_BROKEN_BIDIR }},
+ /* HP DeskJet 815C */
+ { .idVendor = 0x03f0, .idProduct = 0x0204, .bcdDevice = ANY,
+   .quirks   = { UQ_BROKEN_BIDIR }},
+ /* HP DeskJet 810C/812C */
+ { .idVendor = 0x03f0, .idProduct = 0x0304, .bcdDevice = ANY,
+   .quirks   = { UQ_BROKEN_BIDIR }},
+ /* HP DeskJet 830C */
+ { .idVendor = 0x03f0, .idProduct = 0x0404, .bcdDevice = ANY,
+   .quirks   = { UQ_BROKEN_BIDIR }},
+ /* HP DeskJet 1220C */
+ { .idVendor = 0x03f0, .idProduct = 0x0212, .bcdDevice = ANY,
+   .quirks   = { UQ_BROKEN_BIDIR }},
+ /*
+  * YAMAHA router's ucdDevice is the version of firmware and
+  * often changes.
+  */
+ /* YAMAHA NetVolante RTA54i Broadband&ISDN Router */
+ { .idVendor = 0x0499, .idProduct = 0x4000, .bcdDevice = ANY,
+   .quirks   = { UQ_ASSUME_CM_OVER_DATA }},
+ /* YAMAHA NetVolante RTA55i Broadband VoIP Router */
+ { .idVendor = 0x0499, .idProduct = 0x4004, .bcdDevice = ANY,
+   .quirks   = { UQ_ASSUME_CM_OVER_DATA }},
+ /* YAMAHA NetVolante RTW65b Broadband Wireless Router */
+ { .idVendor = 0x0499, .idProduct = 0x4001, .bcdDevice = ANY,
+   .quirks   = { UQ_ASSUME_CM_OVER_DATA }},
+ /* YAMAHA NetVolante RTW65i Broadband&ISDN Wireless Router */
+ { .idVendor = 0x0499, .idProduct = 0x4002, .bcdDevice = ANY,
+   .quirks   = { UQ_ASSUME_CM_OVER_DATA }},
+
+ /* Qualcomm CDMA Technologies MSM modem */
+ { .idVendor = 0x05c6, .idProduct = 0x3196, .bcdDevice = ANY,
+   .quirks   = { UQ_ASSUME_CM_OVER_DATA }},
+ /* Qualcomm CDMA Technologies MSM phone */
+ { .idVendor = 0x1004, .idProduct = 0x6000, .bcdDevice = ANY,
+   .quirks   = { UQ_ASSUME_CM_OVER_DATA }},
+ /* SUNTAC U-Cable type A3 */
+ { .idVendor = 0x05db, .idProduct = 0x000b, .bcdDevice = 0x100,
+   .quirks   = { UQ_ASSUME_CM_OVER_DATA }},
+
  /* Devices which should be ignored by uhid */
- { USB_VENDOR_APC, USB_PRODUCT_APC_UPSPRO500,
-       ANY, { UQ_HID_IGNORE }},
- { USB_VENDOR_DELORME, USB_PRODUCT_DELORME_EARTHMATE,
-       ANY, { UQ_HID_IGNORE }},
- { USB_VENDOR_MGE, USB_PRODUCT_MGE_UPS1,
-       ANY, { UQ_HID_IGNORE }},
- { USB_VENDOR_MGE, USB_PRODUCT_MGE_UPS2,
-       ANY, { UQ_HID_IGNORE }},
+ /* APC Back-UPS Pro 500 */
+ { .idVendor = 0x051d, .idProduct = 0x0002, .bcdDevice = ANY,
+   .quirks   = { UQ_HID_IGNORE }},
+ /* Delorme Publishing Earthmate GPS */
+ { .idVendor = 0x1163, .idProduct = 0x0100, .bcdDevice = ANY,
+   .quirks   = { UQ_HID_IGNORE }},
+ /* MGE UPS Systems ProtectionCenter */
+ { .idVendor = 0x0463, .idProduct = 0x0001, .bcdDevice = ANY,
+   .quirks   = { UQ_HID_IGNORE }},
+ /* MGE UPS Systems ProtectionCenter */
+ { .idVendor = 0x0463, .idProduct = 0xffff, .bcdDevice = ANY,
+   .quirks   = { UQ_HID_IGNORE }},
  { 0, 0, 0, { 0 } }
 };
 
index 53d3f2e..8a2ff5d 100644 (file)
@@ -1,6 +1,6 @@
 /*     $NetBSD: usbdi.h,v 1.64 2004/10/23 13:26:34 augustss Exp $      */
 /*     $FreeBSD: src/sys/dev/usb/usbdi.h,v 1.59 2005/05/16 06:58:43 imp Exp $  */
-/*     $DragonFly: src/sys/bus/usb/usbdi.h,v 1.9 2007/06/28 06:32:31 hasso Exp $       */
+/*     $DragonFly: src/sys/bus/usb/usbdi.h,v 1.10 2007/11/05 13:32:27 hasso Exp $      */
 
 /*
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -212,6 +212,8 @@ struct usb_devno {
        u_int16_t ud_vendor;
        u_int16_t ud_product;
 };
+#define USB_DEVICE(vid, pid) \
+       .ud_vendor = (vid), .ud_product = (pid)
 const struct usb_devno *usb_match_device(const struct usb_devno *,
        u_int, u_int, u_int16_t, u_int16_t);
 #define usb_lookup(tbl, vendor, product) \
index f2f128b..e5483c5 100644 (file)
@@ -30,7 +30,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/usb/if_aue.c,v 1.78 2003/12/17 14:23:07 sanpei Exp $
- * $DragonFly: src/sys/dev/netif/aue/if_aue.c,v 1.33 2007/07/01 21:24:02 hasso Exp $
+ * $DragonFly: src/sys/dev/netif/aue/if_aue.c,v 1.34 2007/11/05 13:32:27 hasso Exp $
  */
 
 /*
@@ -106,63 +106,63 @@ struct aue_type {
 };
 
 static const struct aue_type aue_devs[] = {
- {{ USB_VENDOR_3COM,           USB_PRODUCT_3COM_3C460B},         PII },
- {{ USB_VENDOR_ABOCOM,         USB_PRODUCT_ABOCOM_XX1},          PNA|PII },
- {{ USB_VENDOR_ABOCOM,         USB_PRODUCT_ABOCOM_XX2},          PII },
- {{ USB_VENDOR_ABOCOM,         USB_PRODUCT_ABOCOM_UFE1000},      LSYS },
- {{ 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_ACCTON,         USB_PRODUCT_ACCTON_SS1001},       PII },
- {{ USB_VENDOR_ADMTEK,         USB_PRODUCT_ADMTEK_PEGASUS},      PNA },
- {{ USB_VENDOR_ADMTEK,         USB_PRODUCT_ADMTEK_PEGASUSII},    PII },
- {{ USB_VENDOR_ADMTEK,         USB_PRODUCT_ADMTEK_PEGASUSII_2},  PII },
- {{ USB_VENDOR_BELKIN,         USB_PRODUCT_BELKIN_USB2LAN},      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_COREGA,         USB_PRODUCT_COREGA_FETHER_USB_TXS},PII },
- {{ 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},        LSYS },
- {{ USB_VENDOR_ELECOM,         USB_PRODUCT_ELECOM_LDUSBTX0},     0 },
- {{ USB_VENDOR_ELECOM,         USB_PRODUCT_ELECOM_LDUSBTX1},     LSYS },
- {{ USB_VENDOR_ELECOM,         USB_PRODUCT_ELECOM_LDUSBTX2},     0 },
- {{ USB_VENDOR_ELECOM,         USB_PRODUCT_ELECOM_LDUSBTX3},     LSYS },
- {{ USB_VENDOR_ELECOM,         USB_PRODUCT_ELECOM_LDUSBLTX},     PII },
- {{ USB_VENDOR_ELSA,           USB_PRODUCT_ELSA_USB2ETHERNET},   0 },
- {{ USB_VENDOR_HAWKING,                USB_PRODUCT_HAWKING_UF100},       PII },
- {{ USB_VENDOR_HP,             USB_PRODUCT_HP_HN210E},           PII },
- {{ 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_MICROSOFT,      USB_PRODUCT_MICROSOFT_MN110},     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_SIEMENS,                USB_PRODUCT_SIEMENS_SPEEDSTREAM}, PII },
- {{ USB_VENDOR_SMARTBRIDGES,   USB_PRODUCT_SMARTBRIDGES_SMARTNIC},PII },
- {{ USB_VENDOR_SMC,            USB_PRODUCT_SMC_2202USB},         0 },
- {{ USB_VENDOR_SMC,            USB_PRODUCT_SMC_2206USB},         PII },
- {{ USB_VENDOR_SOHOWARE,       USB_PRODUCT_SOHOWARE_NUB100},     0 },
+ {{ USB_DEVICE(0x03f0, 0x811c) }, PII },  /* HP HN210E */
+ {{ USB_DEVICE(0x0411, 0x0001) }, 0 },    /* Melco LUA-TX */
+ {{ USB_DEVICE(0x0411, 0x0005) }, 0 },    /* Melco LUA-TX */
+ {{ USB_DEVICE(0x0411, 0x0009) }, PII },  /* Melco LUA2-TX */
+ {{ USB_DEVICE(0x045e, 0x007a) }, PII },  /* Microsoft MN110 */
+ {{ USB_DEVICE(0x04bb, 0x0904) }, 0 },    /* I-O DATA USB ETTX */
+ {{ USB_DEVICE(0x04bb, 0x0913) }, PII },  /* I-O DATA USB ETTX */
+ {{ USB_DEVICE(0x0506, 0x4601) }, PII },  /* 3com HomeConnect 3C460B */
+ {{ USB_DEVICE(0x050d, 0x0121) }, PII },  /* Belkin USB to LAN Converter */
+ {{ USB_DEVICE(0x056e, 0x200c) }, 0 },    /* Elecom LD-USB/TX */
+ {{ USB_DEVICE(0x056e, 0x4002) }, LSYS }, /* Elecom LD-USB/TX */
+ {{ USB_DEVICE(0x056e, 0x4005) }, PII },  /* Elecom LD-USBL/TX */
+ {{ USB_DEVICE(0x056e, 0x400b) }, 0 },    /* Elecom LD-USB/TX */
+ {{ USB_DEVICE(0x056e, 0xabc1) }, LSYS }, /* Elecom LD-USB/TX */
+ {{ USB_DEVICE(0x05cc, 0x3000) }, 0 },    /* Elsa Microlink USB2Ethernet */
+ {{ USB_DEVICE(0x066b, 0x200c) }, LSYS|PII }, /* Linksys USB10TX */
+ {{ USB_DEVICE(0x066b, 0x2202) }, LSYS }, /* Linksys USB10T */
+ {{ USB_DEVICE(0x066b, 0x2203) }, LSYS }, /* Linksys USB100TX */
+ {{ USB_DEVICE(0x066b, 0x2204) }, LSYS|PNA }, /* Linksys USB100H1 */
+ {{ USB_DEVICE(0x066b, 0x2206) }, LSYS }, /* Linksys USB10TA */
+ {{ USB_DEVICE(0x066b, 0x400b) }, LSYS|PII }, /* Linksys USB10TX */
+ {{ USB_DEVICE(0x067c, 0x1001) }, PII },  /* Siemens SpeedStream USB */
+ {{ USB_DEVICE(0x0707, 0x0200) }, 0 },    /* SMC 2202USB */
+ {{ USB_DEVICE(0x0707, 0x0201) }, PII },  /* SMC 2206USB */
+ {{ USB_DEVICE(0x07a6, 0x0986) }, PNA },  /* ADMtek AN986 */
+ {{ USB_DEVICE(0x07a6, 0x8511) }, PII },  /* ADMtek AN8511 */
+ {{ USB_DEVICE(0x07a6, 0x8513) }, PII },  /* ADMtek AN8513 */
+ {{ USB_DEVICE(0x07aa, 0x0004) }, 0 },    /* Corega FEther USB-TX */
+ {{ USB_DEVICE(0x07aa, 0x000d) }, PII },  /* Corega FEther USB-TXS */
+ {{ USB_DEVICE(0x07b8, 0x110c) }, PNA|PII }, /* AboCom XX1 */
+ {{ USB_DEVICE(0x07b8, 0x200c) }, PII },  /* AboCom XX2 */
+ {{ USB_DEVICE(0x07b8, 0x4002) }, LSYS }, /* AboCom UFE1000 */
+ {{ USB_DEVICE(0x07b8, 0x4003) }, 0 },    /* AboCom DSB650TX_PNA */
+ {{ USB_DEVICE(0x07b8, 0x4004) }, PNA },  /* AboCom XX4 */
+ {{ USB_DEVICE(0x07b8, 0x4007) }, PNA },  /* AboCom XX5 */
+ {{ USB_DEVICE(0x07b8, 0x400b) }, PII },  /* AboCom XX6 */
+ {{ USB_DEVICE(0x07b8, 0x400c) }, PII },  /* AboCom XX7 */
+ {{ USB_DEVICE(0x07b8, 0x4102) }, PII },  /* AboCom XX8 */
+ {{ USB_DEVICE(0x07b8, 0x4104) }, PNA },  /* AboCom XX9 */
+ {{ USB_DEVICE(0x07b8, 0xabc1) }, 0 },    /* AboCom XX10 */
+ {{ USB_DEVICE(0x083a, 0x1046) }, 0 },    /* Accton USB320-EC */
+ {{ USB_DEVICE(0x083a, 0x5046) }, PII },  /* Accton SpeedStream 1001 */
+ {{ USB_DEVICE(0x08d1, 0x0003) }, PII },  /* SmartBridges smartNIC 2 PnP */
+ {{ USB_DEVICE(0x08dd, 0x0986) }, 0 },    /* Billionton USB100N */
+ {{ USB_DEVICE(0x08dd, 0x0987) }, PNA },  /* Billionton USB100LP */
+ {{ USB_DEVICE(0x08dd, 0x0988) }, 0 },    /* Billionton USB100EL */
+ {{ USB_DEVICE(0x08dd, 0x8511) }, PII },  /* Billionton USBE100 */
+ {{ USB_DEVICE(0x0951, 0x000a) }, 0 },    /* Kingston KNU101TX */
+ {{ USB_DEVICE(0x0e66, 0x400c) }, PII },  /* Hawking UF100 */
+ {{ USB_DEVICE(0x15e8, 0x9100) }, 0 },    /* SOHOware NUB100 */
+ {{ USB_DEVICE(0x2001, 0x200c) }, LSYS|PII },/* D-Link DSB650TX4 */
+ {{ USB_DEVICE(0x2001, 0x4001) }, LSYS }, /* D-Link DSB650TX1 */
+ {{ USB_DEVICE(0x2001, 0x4002) }, LSYS }, /* D-Link DSB650TX */
+ {{ USB_DEVICE(0x2001, 0x4003) }, PNA },  /* D-Link DSB650TX_PNA */
+ {{ USB_DEVICE(0x2001, 0x400b) }, LSYS|PII }, /* D-Link DSB650TX3 */
+ {{ USB_DEVICE(0x2001, 0x4102) }, LSYS|PII }, /* D-Link DSB650TX2 */
+ {{ USB_DEVICE(0x2001, 0xabc1) }, LSYS }, /* D-Link DSB650 */
 };
 #define aue_lookup(v, p) ((const struct aue_type *)usb_lookup(aue_devs, v, p))
 
@@ -420,8 +420,7 @@ aue_miibus_readreg(device_t dev, int phy, int reg)
         * happens to be configured for MII address 3,
         * so we filter that out.
         */
-       if (sc->aue_vendor == USB_VENDOR_ADMTEK &&
-           sc->aue_product == USB_PRODUCT_ADMTEK_PEGASUS) {
+       if (sc->aue_vendor == 0x07a6 && sc->aue_product == 0x0986) {
                if (phy == 3)
                        return (0);
 #ifdef notdef
index dd00111..2e75738 100644 (file)
@@ -30,7 +30,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/usb/if_axe.c,v 1.10 2003/12/08 07:54:14 obrien Exp $
- * $DragonFly: src/sys/dev/netif/axe/if_axe.c,v 1.23 2007/07/01 21:24:02 hasso Exp $
+ * $DragonFly: src/sys/dev/netif/axe/if_axe.c,v 1.24 2007/11/05 13:32:27 hasso Exp $
  */
 /*
  * ASIX Electronics AX88172 USB 2.0 ethernet driver. Used in the
 /*
  * Various supported device vendors/products.
  */
-static struct axe_type axe_devs[] = {
-       { USB_VENDOR_ASIX, USB_PRODUCT_ASIX_AX88172 },
-       { USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DUBE100 },
-       { USB_VENDOR_JVC, USB_PRODUCT_JVC_MP_PRX1 },
-       { USB_VENDOR_LINKSYS2, USB_PRODUCT_LINKSYS2_USB200M },
-       { USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUAU2KTX },
-       { USB_VENDOR_NETGEAR, USB_PRODUCT_NETGEAR_FA120 },
-       { USB_VENDOR_SYSTEMTALKS, USB_PRODUCT_SYSTEMTALKS_SGCX2UL },
-       { USB_VENDOR_SITECOM, USB_PRODUCT_SITECOM_LN029 },
-       { 0, 0 }
+static struct usb_devno axe_devs[] = {
+       { USB_DEVICE(0x0411, 0x003d) }, /* Melco LUA-U2-KTX */
+       { USB_DEVICE(0x04f1, 0x3008) }, /* JVC MP-PRX1 */
+       { USB_DEVICE(0x077b, 0x2226) }, /* Linksys USB200M */
+       { USB_DEVICE(0x0846, 0x1040) }, /* BayNETGEAR FA120 */
+       { USB_DEVICE(0x086e, 0x1920) }, /* System Talks SGC-X2UL */
+       { USB_DEVICE(0x0b95, 0x1720) }, /* ASIX Electronics AX88172 */
+       { USB_DEVICE(0x2001, 0x1a00) }, /* D-Link DUBE100 */
+       { USB_DEVICE(0x6189, 0x182d) }, /* Sitecom LN029 */
 };
 
 static int axe_match(device_t);
@@ -372,21 +371,12 @@ static int
 axe_match(device_t self)
 {
        struct usb_attach_arg *uaa = device_get_ivars(self);
-       struct axe_type                 *t;
 
        if (!uaa->iface)
                return(UMATCH_NONE);
 
-       t = axe_devs;
-       while(t->axe_vid) {
-               if (uaa->vendor == t->axe_vid &&
-                   uaa->product == t->axe_did) {
-                       return(UMATCH_VENDOR_PRODUCT);
-               }
-               t++;
-       }
-
-       return(UMATCH_NONE);
+       return (usb_lookup(axe_devs, uaa->vendor, uaa->product) != NULL ?
+           UMATCH_VENDOR_PRODUCT : UMATCH_NONE);
 }
 
 /*
index 86628e0..251ae6a 100644 (file)
@@ -30,7 +30,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/usb/if_axereg.h,v 1.2 2003/06/15 21:45:43 wpaul Exp $
- * $DragonFly: src/sys/dev/netif/axe/if_axereg.h,v 1.4 2005/05/25 11:38:59 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/axe/if_axereg.h,v 1.5 2007/11/05 13:32:27 hasso Exp $
  */
 
 /*
 #define AXE_ENDPT_INTR         0x2
 #define AXE_ENDPT_MAX          0x3
 
-struct axe_type {
-       u_int16_t               axe_vid;
-       u_int16_t               axe_did;
-};
-
 struct axe_softc;
 
 struct axe_chain {
index 3fe8170..705e8ff 100644 (file)
@@ -30,7 +30,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/usb/if_cue.c,v 1.45 2003/12/08 07:54:14 obrien Exp $
- * $DragonFly: src/sys/dev/netif/cue/if_cue.c,v 1.28 2007/07/01 21:24:02 hasso Exp $
+ * $DragonFly: src/sys/dev/netif/cue/if_cue.c,v 1.29 2007/11/05 13:32:27 hasso Exp $
  */
 
 /*
 /*
  * Various supported device vendors/products.
  */
-static struct cue_type cue_devs[] = {
-       { USB_VENDOR_CATC, USB_PRODUCT_CATC_NETMATE },
-       { USB_VENDOR_CATC, USB_PRODUCT_CATC_NETMATE2 },
-       { USB_VENDOR_SMARTBRIDGES, USB_PRODUCT_SMARTBRIDGES_SMARTLINK },
-       { 0, 0 }
+static struct usb_devno cue_devs[] = {
+       { USB_DEVICE(0x0423, 0x000a) }, /* CATC Netmate */
+       { USB_DEVICE(0x0423, 0x000c) }, /* CATC Netmate2 */
+       { USB_DEVICE(0x08d1, 0x0001) }, /* SmartBridges SmartLink */
 };
 
 static int cue_match(device_t);
@@ -396,21 +395,12 @@ static int
 cue_match(device_t self)
 {
        struct usb_attach_arg *uaa = device_get_ivars(self);
-       struct cue_type                 *t;
 
-       if (!uaa->iface)
+       if (uaa->iface == NULL)
                return(UMATCH_NONE);
 
-       t = cue_devs;
-       while(t->cue_vid) {
-               if (uaa->vendor == t->cue_vid &&
-                   uaa->product == t->cue_did) {
-                       return(UMATCH_VENDOR_PRODUCT);
-               }
-               t++;
-       }
-
-       return(UMATCH_NONE);
+       return (usb_lookup(cue_devs, uaa->vendor, uaa->product) != NULL) ?
+           UMATCH_VENDOR_PRODUCT : UMATCH_NONE;
 }
 
 /*
index ad772a3..df8cfbb 100644 (file)
@@ -30,7 +30,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/usb/if_cuereg.h,v 1.12 2003/10/04 21:41:01 joe Exp $
- * $DragonFly: src/sys/dev/netif/cue/if_cuereg.h,v 1.7 2005/05/25 11:59:14 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/cue/if_cuereg.h,v 1.8 2007/11/05 13:32:27 hasso Exp $
  */
 
 /*
 #define CUE_ENDPT_INTR         0x2
 #define CUE_ENDPT_MAX          0x3
 
-struct cue_type {
-       u_int16_t               cue_vid;
-       u_int16_t               cue_did;
-};
-
 struct cue_softc;
 
 struct cue_chain {
index 1cf2a0e..8e20c10 100644 (file)
@@ -30,7 +30,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/usb/if_kue.c,v 1.17.2.9 2003/04/13 02:39:25 murray Exp $
- * $DragonFly: src/sys/dev/netif/kue/if_kue.c,v 1.25 2007/07/01 21:24:02 hasso Exp $
+ * $DragonFly: src/sys/dev/netif/kue/if_kue.c,v 1.26 2007/11/05 13:32:27 hasso Exp $
  */
 
 /*
@@ -99,26 +99,25 @@ MODULE_DEPEND(kue, usb, 1, 1, 1);
 /*
  * Various supported device vendors/products.
  */
-static struct kue_type kue_devs[] = {
-       { USB_VENDOR_AOX, USB_PRODUCT_AOX_USB101 },
-       { USB_VENDOR_KLSI, USB_PRODUCT_AOX_USB101 },
-       { USB_VENDOR_ADS, USB_PRODUCT_ADS_UBS10BT },
-       { USB_VENDOR_ATEN, USB_PRODUCT_ATEN_UC10T },
-       { USB_VENDOR_NETGEAR, USB_PRODUCT_NETGEAR_EA101 },
-       { USB_VENDOR_PERACOM, USB_PRODUCT_PERACOM_ENET },
-       { USB_VENDOR_PERACOM, USB_PRODUCT_PERACOM_ENET2 },
-       { USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_E45 },
-       { USB_VENDOR_3COM, USB_PRODUCT_3COM_3C19250 },
-       { USB_VENDOR_COREGA, USB_PRODUCT_COREGA_ETHER_USB_T },
-       { USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650C },
-       { USB_VENDOR_SMC, USB_PRODUCT_SMC_2102USB },
-       { USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10T },
-       { USB_VENDOR_KLSI, USB_PRODUCT_KLSI_DUH3E10BT },
-       { USB_VENDOR_KLSI, USB_PRODUCT_KLSI_DUH3E10BTN },
-       { USB_VENDOR_PERACOM, USB_PRODUCT_PERACOM_ENET3 },
-       { USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBETT },
-       { USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_URE450 },
-       { 0, 0 }
+static const struct usb_devno kue_devs[] = {
+       { USB_DEVICE(0x03e8, 0x0008) }, /* AOX USB101 */
+       { USB_DEVICE(0x04bb, 0x0901) }, /* I-O DATA USBETT */
+       { USB_DEVICE(0x0506, 0x03e8) }, /* 3Com 3C19250 */
+       { USB_DEVICE(0x0557, 0x2002) }, /* ATen UC10T */
+       { USB_DEVICE(0x0565, 0x0002) }, /* Peracom Ethernet adapter */
+       { USB_DEVICE(0x0565, 0x0003) }, /* Peracom Ethernet adapter*/
+       { USB_DEVICE(0x0565, 0x0005) }, /* Peracom Ethernet adapter */
+       { USB_DEVICE(0x05e9, 0x0008) }, /* AOX (rebranded Kawasaki?) USB101*/
+       { USB_DEVICE(0x05e9, 0x0008) }, /* Kawasaki LSI DUH3E10BT */
+       { USB_DEVICE(0x05e9, 0x0009) }, /* Kawasaki LSI DUH3E10BTN */
+       { USB_DEVICE(0x066b, 0x2202) }, /* Linksys USB10T */
+       { USB_DEVICE(0x06e1, 0x0008) }, /* ADS UBS-10BT */
+       { USB_DEVICE(0x0707, 0x0100) }, /* SMC 2102USB */
+       { USB_DEVICE(0x07aa, 0x0001) }, /* Corega USB-T*/
+       { USB_DEVICE(0x07b8, 0x4000) }, /* AboCom URE450 */
+       { USB_DEVICE(0x0846, 0x1001) }, /* Netgear EA101 */
+       { USB_DEVICE(0x1645, 0x0005) }, /* Entrega E45*/
+       { USB_DEVICE(0x2001, 0x4000) }, /* D-Link DSB650C */
 };
 
 static int kue_match(device_t);
@@ -384,21 +383,12 @@ static int
 kue_match(device_t self)
 {
        struct usb_attach_arg *uaa = device_get_ivars(self);
-       struct kue_type                 *t;
 
-       if (!uaa->iface)
+       if (uaa->iface == NULL)
                return(UMATCH_NONE);
 
-       t = kue_devs;
-       while(t->kue_vid) {
-               if (uaa->vendor == t->kue_vid &&
-                   uaa->product == t->kue_did) {
-                       return(UMATCH_VENDOR_PRODUCT);
-               }
-               t++;
-       }
-
-       return(UMATCH_NONE);
+       return (usb_lookup(kue_devs, uaa->vendor, uaa->product) != NULL ?
+           UMATCH_VENDOR_PRODUCT : UMATCH_NONE);
 }
 
 /*
index e06f0df..80c81db 100644 (file)
@@ -30,7 +30,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/usb/if_kuereg.h,v 1.13 2003/10/04 21:41:01 joe Exp $
- * $DragonFly: src/sys/dev/netif/kue/if_kuereg.h,v 1.4 2004/02/13 02:44:48 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/kue/if_kuereg.h,v 1.5 2007/11/05 13:32:27 hasso Exp $
  */
 
 /*
@@ -132,11 +132,6 @@ struct kue_ether_desc {
 #define KUE_ENDPT_INTR         0x2
 #define KUE_ENDPT_MAX          0x3
 
-struct kue_type {
-       u_int16_t               kue_vid;
-       u_int16_t               kue_did;
-};
-
 struct kue_softc;
 
 struct kue_chain {
index 96a9338..4ab2245 100644 (file)
@@ -55,7 +55,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/usb/if_rue.c,v 1.14 2004/06/09 14:34:03 naddy Exp $
- * $DragonFly: src/sys/dev/netif/rue/if_rue.c,v 1.9 2007/07/01 21:24:02 hasso Exp $
+ * $DragonFly: src/sys/dev/netif/rue/if_rue.c,v 1.10 2007/11/05 13:32:27 hasso Exp $
  */
 
 /*
@@ -116,10 +116,9 @@ SYSCTL_INT(_hw_rue, OID_AUTO, debug, CTLFLAG_RW, &rue_debug, 0,
  * Various supported device vendors/products.
  */
 
-static struct rue_type rue_devs[] = {
-       { USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUAKTX },
-       { USB_VENDOR_REALTEK, USB_PRODUCT_REALTEK_USBKR100 },
-       { 0, 0 }
+static const struct usb_devno rue_devs[] = {
+       { USB_DEVICE(0x0411, 0x0012) }, /* Melco LUA-KTX*/
+       { USB_DEVICE(0x0bda, 0x8150) }, /* Realtek USBKR100 (GREEN HOUSE) */
 };
 
 static int rue_match(device_t);
@@ -512,21 +511,12 @@ static int
 rue_match(device_t self)
 {
        struct usb_attach_arg *uaa = device_get_ivars(self);
-       struct rue_type *t;
 
        if (uaa->iface == NULL)
                return (UMATCH_NONE);
 
-       t = rue_devs;
-       while (t->rue_vid) {
-               if (uaa->vendor == t->rue_vid &&
-                   uaa->product == t->rue_did) {
-                       return (UMATCH_VENDOR_PRODUCT);
-               }
-               t++;
-       }
-
-       return (UMATCH_NONE);
+       return (usb_lookup(rue_devs, uaa->vendor, uaa->product) != NULL ?
+               UMATCH_VENDOR_PRODUCT : UMATCH_NONE);
 }
 
 /*
index 9b3378c..b8474f5 100644 (file)
@@ -24,7 +24,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/usb/if_ruereg.h,v 1.3 2004/05/23 12:35:24 iedowse Exp $
- * $DragonFly: src/sys/dev/netif/rue/if_ruereg.h,v 1.1 2005/09/19 02:53:27 sephe Exp $
+ * $DragonFly: src/sys/dev/netif/rue/if_ruereg.h,v 1.2 2007/11/05 13:32:27 hasso Exp $
  */
 
 #ifndef _IF_RUEREG_H_
@@ -182,11 +182,6 @@ struct rue_rxpkt {
 
 #define RUE_RXSTAT_MASK                RUE_RXSTAT_VALID
 
-struct rue_type {
-       uint16_t                rue_vid;
-       uint16_t                rue_did;
-};
-
 #define RUE_TX_LIST_CNT                1
 #define RUE_RX_LIST_CNT                1
 
index c7fd19d..de05688 100644 (file)
@@ -1,5 +1,5 @@
 /*     $OpenBSD: if_rum.c,v 1.40 2006/09/18 16:20:20 damien Exp $      */
-/*     $DragonFly: src/sys/dev/netif/rum/if_rum.c,v 1.19 2007/10/28 02:29:07 sephe Exp $       */
+/*     $DragonFly: src/sys/dev/netif/rum/if_rum.c,v 1.20 2007/11/05 13:32:27 hasso Exp $       */
 
 /*-
  * Copyright (c) 2005, 2006 Damien Bergamini <damien.bergamini@free.fr>
@@ -70,48 +70,48 @@ int rum_debug = 0;
 
 /* various supported device vendors/products */
 static const struct usb_devno rum_devs[] = {
-       { USB_VENDOR_ABOCOM,            USB_PRODUCT_ABOCOM_HWU54DM },
-       { USB_VENDOR_ABOCOM,            USB_PRODUCT_ABOCOM_RT2573_2 },
-       { USB_VENDOR_ABOCOM,            USB_PRODUCT_ABOCOM_RT2573_3 },
-       { USB_VENDOR_ABOCOM,            USB_PRODUCT_ABOCOM_RT2573_4 },
-       { USB_VENDOR_ABOCOM,            USB_PRODUCT_ABOCOM_WUG2700 },
-       { USB_VENDOR_AMIT,              USB_PRODUCT_AMIT_CGWLUSB2GO },
-       { USB_VENDOR_ASUS,              USB_PRODUCT_ASUS_WL167G_2 },
-       { USB_VENDOR_ASUS,              USB_PRODUCT_ASUS_WL167G_3 },
-       { USB_VENDOR_BELKIN,            USB_PRODUCT_BELKIN_F5D7050A },
-       { USB_VENDOR_BELKIN,            USB_PRODUCT_BELKIN_F5D9050V3 },
-       { USB_VENDOR_LINKSYS4,          USB_PRODUCT_LINKSYS4_WUSB54GC },
-       { USB_VENDOR_LINKSYS4,          USB_PRODUCT_LINKSYS4_WUSB54GR },
-       { USB_VENDOR_CONCEPTRONIC2,     USB_PRODUCT_CONCEPTRONIC2_C54RU2 },
-       { USB_VENDOR_DICKSMITH,         USB_PRODUCT_DICKSMITH_CWD854F },
-       { USB_VENDOR_DICKSMITH,         USB_PRODUCT_DICKSMITH_RT2573 },
-       { USB_VENDOR_DLINK2,            USB_PRODUCT_DLINK2_DWLG122C1 },
-       { USB_VENDOR_DLINK2,            USB_PRODUCT_DLINK2_WUA1340 },
-       { USB_VENDOR_GIGABYTE,          USB_PRODUCT_GIGABYTE_GNWB01GS },
-       { USB_VENDOR_GIGABYTE,          USB_PRODUCT_GIGABYTE_GNWI05GS },
-       { USB_VENDOR_GIGASET,           USB_PRODUCT_GIGASET_RT2573 },
-       { USB_VENDOR_GOODWAY,           USB_PRODUCT_GOODWAY_RT2573 },
-       { USB_VENDOR_GUILLEMOT,         USB_PRODUCT_GUILLEMOT_HWGUSB254LB },
-       { USB_VENDOR_GUILLEMOT,         USB_PRODUCT_GUILLEMOT_HWGUSB254V2AP },
-       { USB_VENDOR_HUAWEI3COM,        USB_PRODUCT_HUAWEI3COM_RT2573 },
-       { USB_VENDOR_MELCO,             USB_PRODUCT_MELCO_G54HP },
-       { USB_VENDOR_MELCO,             USB_PRODUCT_MELCO_SG54HP },
-       { USB_VENDOR_MSI,               USB_PRODUCT_MSI_RT2573_1 },
-       { USB_VENDOR_MSI,               USB_PRODUCT_MSI_RT2573_2 },
-       { USB_VENDOR_MSI,               USB_PRODUCT_MSI_RT2573_3 },
-       { USB_VENDOR_MSI,               USB_PRODUCT_MSI_RT2573_4 },
-       { USB_VENDOR_NOVATECH,          USB_PRODUCT_NOVATECH_RT2573 },
-       { USB_VENDOR_PLANEX2,           USB_PRODUCT_PLANEX2_GWUS54HP },
-       { USB_VENDOR_PLANEX2,           USB_PRODUCT_PLANEX2_GWUS54MINI2 },
-       { USB_VENDOR_PLANEX2,           USB_PRODUCT_PLANEX2_GWUSMM },
-       { USB_VENDOR_QCOM,              USB_PRODUCT_QCOM_RT2573 },
-       { USB_VENDOR_QCOM,              USB_PRODUCT_QCOM_RT2573_2 },
-       { USB_VENDOR_RALINK,            USB_PRODUCT_RALINK_RT2573 },
-       { USB_VENDOR_RALINK,            USB_PRODUCT_RALINK_RT2671 },
-       { USB_VENDOR_RALINK,            USB_PRODUCT_RALINK_RT2573_2 },
-       { USB_VENDOR_SITECOMEU,         USB_PRODUCT_SITECOMEU_WL113R2 },
-       { USB_VENDOR_SITECOMEU,         USB_PRODUCT_SITECOMEU_WL172 },
-       { USB_VENDOR_SURECOM,           USB_PRODUCT_SURECOM_RT2573 }
+       { USB_DEVICE(0x0411, 0x00d8) }, /* Melco WLI-U2-SG54HP */
+       { USB_DEVICE(0x0411, 0x00d9) }, /* Melco WLI-U2-G54HP */
+       { USB_DEVICE(0x050d, 0x705a) }, /* Belkin F5D7050A */
+       { USB_DEVICE(0x050d, 0x905b) }, /* Belkin F5D9050 ver3 */
+       { USB_DEVICE(0x06f8, 0xe010) }, /* Guillemot HWGUSB2-54-LB */
+       { USB_DEVICE(0x06f8, 0xe020) }, /* Guillemot HWGUSB2-54V2-AP */
+       { USB_DEVICE(0x0769, 0x31f3) }, /* Surecom RT2573 */
+       { USB_DEVICE(0x07b8, 0xb21b) }, /* AboCom HWU54DM */
+       { USB_DEVICE(0x07b8, 0xb21c) }, /* AboCom RT2573 */
+       { USB_DEVICE(0x07b8, 0xb21d) }, /* AboCom RT2573 */
+       { USB_DEVICE(0x07b8, 0xb21e) }, /* AboCom RT2573 */
+       { USB_DEVICE(0x07b8, 0xb21f) }, /* AboCom WUG2700 */
+       { USB_DEVICE(0x07d1, 0x3c03) }, /* D-Link DWL-G122 rev c1 */
+       { USB_DEVICE(0x07d1, 0x3c04) }, /* D-Link WUA-1340 */
+       { USB_DEVICE(0x0b05, 0x1723) }, /* Asus WL-167g */
+       { USB_DEVICE(0x0b05, 0x1724) }, /* Asus WL-167g */
+       { USB_DEVICE(0x0db0, 0x6874) }, /* MSI RT2573 */
+       { USB_DEVICE(0x0db0, 0x6877) }, /* MSI RT2573 */
+       { USB_DEVICE(0x0db0, 0xa861) }, /* MSI RT2573 */
+       { USB_DEVICE(0x0db0, 0xa874) }, /* MSI RT2573 */
+       { USB_DEVICE(0x0df6, 0x90ac) }, /* Sitecom WL-172 */
+       { USB_DEVICE(0x0df6, 0x9712) }, /* Sitecom WL-113 rev 2 */
+       { USB_DEVICE(0x0eb0, 0x9021) }, /* Nova Technology RT2573 */
+       { USB_DEVICE(0x1044, 0x8008) }, /* GIGABYTE GN-WB01GS */
+       { USB_DEVICE(0x1044, 0x800a) }, /* GIGABYTE GN-WI05GS */
+       { USB_DEVICE(0x1371, 0x9022) }, /* (really) C-Net RT2573 */
+       { USB_DEVICE(0x1371, 0x9032) }, /* (really) C-Net CWD854F */
+       { USB_DEVICE(0x1472, 0x0009) }, /* Huawei RT2573 */
+       { USB_DEVICE(0x148f, 0x2573) }, /* Ralink RT2573 */
+       { USB_DEVICE(0x148f, 0x2671) }, /* Ralink RT2671 */
+       { USB_DEVICE(0x148f, 0x9021) }, /* Ralink RT2573 */
+       { USB_DEVICE(0x14b2, 0x3c22) }, /* Conceptronic C54RU */
+       { USB_DEVICE(0x1631, 0xc019) }, /* Good Way Technology RT2573 */
+       { USB_DEVICE(0x1690, 0x0722) }, /* Gigaset RT2573 */
+       { USB_DEVICE(0x1737, 0x0020) }, /* Linksys WUSB54GC */
+       { USB_DEVICE(0x1737, 0x0023) }, /* Linksys WUSB54GR */
+       { USB_DEVICE(0x18c5, 0x0002) }, /* AMIT CG-WLUSB2GO */
+       { USB_DEVICE(0x18e8, 0x6196) }, /* Qcom RT2573 */
+       { USB_DEVICE(0x18e8, 0x6229) }, /* Qcom RT2573 */
+       { USB_DEVICE(0x2019, 0xab01) }, /* Planex GW-US54HP */
+       { USB_DEVICE(0x2019, 0xab50) }, /* Planex GW-US54Mini2 */
+       { USB_DEVICE(0x2019, 0xed02) }, /* Planex GW-USMM */
 };
 
 static int             rum_alloc_tx_list(struct rum_softc *);
index 9500675..8438aa5 100644 (file)
@@ -1,5 +1,5 @@
 /*     $FreeBSD: src/sys/dev/usb/if_ural.c,v 1.10.2.8 2006/07/08 07:48:43 maxim Exp $  */
-/*     $DragonFly: src/sys/dev/netif/ural/if_ural.c,v 1.20 2007/10/28 02:29:07 sephe Exp $     */
+/*     $DragonFly: src/sys/dev/netif/ural/if_ural.c,v 1.21 2007/11/05 13:32:27 hasso Exp $     */
 
 /*-
  * Copyright (c) 2005, 2006
@@ -72,31 +72,31 @@ SYSCTL_INT(_hw_usb_ural, OID_AUTO, debug, CTLFLAG_RW, &uraldebug, 0,
 
 /* various supported device vendors/products */
 static const struct usb_devno ural_devs[] = {
-       { USB_VENDOR_ASUS,              USB_PRODUCT_ASUS_WL167G },
-       { USB_VENDOR_ASUS,              USB_PRODUCT_RALINK_RT2570 },
-       { USB_VENDOR_BELKIN,            USB_PRODUCT_BELKIN_F5D7050 },
-       { USB_VENDOR_CONCEPTRONIC2,     USB_PRODUCT_CONCEPTRONIC2_C54RU },
-       { USB_VENDOR_DLINK,             USB_PRODUCT_DLINK_DWLG122 },
-       { USB_VENDOR_GIGABYTE,          USB_PRODUCT_GIGABYTE_GNWBKG },
-       { USB_VENDOR_GUILLEMOT,         USB_PRODUCT_GUILLEMOT_HWGUSB254 },
-       { USB_VENDOR_LINKSYS4,          USB_PRODUCT_LINKSYS4_WUSB54G },
-       { USB_VENDOR_LINKSYS4,          USB_PRODUCT_LINKSYS4_WUSB54GP },
-       { USB_VENDOR_LINKSYS4,          USB_PRODUCT_LINKSYS4_HU200TS },
-       { USB_VENDOR_MELCO,             USB_PRODUCT_MELCO_KG54 },
-       { USB_VENDOR_MELCO,             USB_PRODUCT_MELCO_KG54AI },
-       { USB_VENDOR_MELCO,             USB_PRODUCT_MELCO_KG54YB },
-       { USB_VENDOR_MELCO,             USB_PRODUCT_MELCO_NINWIFI },
-       { USB_VENDOR_MSI,               USB_PRODUCT_MSI_RT2570 },
-       { USB_VENDOR_MSI,               USB_PRODUCT_MSI_RT2570_2 },
-       { USB_VENDOR_MSI,               USB_PRODUCT_MSI_RT2570_3 },
-       { USB_VENDOR_NOVATECH,          USB_PRODUCT_NOVATECH_NV902W },
-       { USB_VENDOR_RALINK,            USB_PRODUCT_RALINK_RT2570 },
-       { USB_VENDOR_RALINK,            USB_PRODUCT_RALINK_RT2570_2 },
-       { USB_VENDOR_RALINK,            USB_PRODUCT_RALINK_RT2570_3 },
-       { USB_VENDOR_SPHAIRON,          USB_PRODUCT_SPHAIRON_UB801R },
-       { USB_VENDOR_SURECOM,           USB_PRODUCT_SURECOM_RT2570 },
-       { USB_VENDOR_VTECH,             USB_PRODUCT_VTECH_RT2570 },
-       { USB_VENDOR_ZINWELL,           USB_PRODUCT_ZINWELL_RT2570 }
+       { USB_DEVICE(0x0411, 0x005e) }, /* Melco WLI-U2-KG54-YB */
+       { USB_DEVICE(0x0411, 0x0066) }, /* Melco WLI-U2-KG54 */
+       { USB_DEVICE(0x0411, 0x0067) }, /* Melco WLI-U2-KG54-AI */
+       { USB_DEVICE(0x0411, 0x008b) }, /* Melco Nintendo Wi-Fi */
+       { USB_DEVICE(0x050d, 0x7050) }, /* Belkin Components F5D7050 */
+       { USB_DEVICE(0x06f8, 0xe000) }, /* Guillemot HWGUSB254 */
+       { USB_DEVICE(0x0769, 0x11f3) }, /* Surecom RT2570 */
+       { USB_DEVICE(0x0b05, 0x1706) }, /* Ralink (XXX) RT2500USB */
+       { USB_DEVICE(0x0b05, 0x1707) }, /* Asus WL167G */
+       { USB_DEVICE(0x0db0, 0x6861) }, /* MSI RT2570 */
+       { USB_DEVICE(0x0db0, 0x6865) }, /* MSI RT2570 */
+       { USB_DEVICE(0x0db0, 0x6869) }, /* MSI RT2570 */
+       { USB_DEVICE(0x0eb0, 0x9020) }, /* Nova Technology NV-902W */
+       { USB_DEVICE(0x0f88, 0x3012) }, /* VTech RT2570  */
+       { USB_DEVICE(0x1044, 0x8007) }, /* GIGABYTE GN-WBKG */
+       { USB_DEVICE(0x114b, 0x0110) }, /* Sphairon UB801R */
+       { USB_DEVICE(0x148f, 0x1706) }, /* Ralink RT2570 */
+       { USB_DEVICE(0x148f, 0x2570) }, /* Ralink RT2570 */
+       { USB_DEVICE(0x148f, 0x9020) }, /* Ralink RT2570 */
+       { USB_DEVICE(0x14b2, 0x3c02) }, /* Conceptronic C54RU */
+       { USB_DEVICE(0x1737, 0x000d) }, /* Linksys WUSB54G */
+       { USB_DEVICE(0x1737, 0x0011) }, /* Linksys WUSB54GP */
+       { USB_DEVICE(0x1737, 0x001a) }, /* Linksys HU200TS */
+       { USB_DEVICE(0x2001, 0x3c00) }, /* D-Link DWL-G122 */
+       { USB_DEVICE(0x5a57, 0x0260) }, /* Zinwell RT2570 */
 };
 
 MODULE_DEPEND(ural, wlan, 1, 1, 1);
index 07cf92b..5a2b2a3 100644 (file)
@@ -1,4 +1,4 @@
-/*     $DragonFly: src/sys/dev/usbmisc/uark/uark.c,v 1.3 2007/08/19 17:16:43 hasso Exp $       */
+/*     $DragonFly: src/sys/dev/usbmisc/uark/uark.c,v 1.4 2007/11/05 13:32:27 hasso Exp $       */
 /*     $OpenBSD: uark.c,v 1.9 2007/06/13 06:25:03 mbalmer Exp $        */
 
 /*
@@ -86,7 +86,7 @@ struct ucom_callback uark_callback = {
 };
 
 static const struct usb_devno uark_devs[] = {
-       { USB_VENDOR_ARKMICRO,          USB_PRODUCT_ARKMICRO_ARK3116 }
+       { USB_DEVICE(0x6547, 0x0232) } /* Arkmicro Technologies ARK3116 */
 };
 
 static device_probe_t uark_match;
index b741600..c26fc31 100644 (file)
@@ -60,7 +60,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/usb/ubsa.c,v 1.11 2003/11/16 12:13:39 akiyama Exp $
- * $DragonFly: src/sys/dev/usbmisc/ubsa/ubsa.c,v 1.16 2007/08/19 17:16:43 hasso Exp $
+ * $DragonFly: src/sys/dev/usbmisc/ubsa/ubsa.c,v 1.17 2007/11/05 13:32:27 hasso Exp $
  */
 
 #include <sys/param.h>
@@ -205,23 +205,13 @@ struct ucom_callback ubsa_callback = {
        NULL
 };
 
-static const struct ubsa_product {
-       uint16_t        vendor;
-       uint16_t        product;
-} ubsa_products [] = {
-       /* BELKIN F5U103 */
-       { USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F5U103 },
-       /* BELKIN F5U120 */
-       { USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F5U120 },
-       /* GoHubs GO-COM232 */
-       { USB_VENDOR_ETEK, USB_PRODUCT_ETEK_1COM },
-       /* GoHubs GO-COM232 */
-       { USB_VENDOR_GOHUBS, USB_PRODUCT_GOHUBS_GOCOM232 },
-       /* HandyTech's Braille displays */
-       { USB_VENDOR_GOHUBS, USB_PRODUCT_GOHUBS_HANDYLINK },
-       /* Peracom */
-       { USB_VENDOR_PERACOM, USB_PRODUCT_PERACOM_SERIAL1 },
-       { 0, 0 }
+static const struct usb_devno ubsa_devs [] = {
+       { USB_DEVICE(0x050d, 0x0103) }, /* Belkin F5U103 serial adapter */
+       { USB_DEVICE(0x050d, 0x1203) }, /* Belkin F5U120-PC hub */
+       { USB_DEVICE(0x0565, 0x0001) }, /* Peracom serial converter */
+       { USB_DEVICE(0x056c, 0x8007) }, /* e-TEK Labs serial port */
+       { USB_DEVICE(0x0921, 0x1001) }, /* GoHubs GoCOM232 serial converter */
+       { USB_DEVICE(0x0921, 0x1200) }, /* HandyTech's Braille displays */
 };
 
 static device_probe_t ubsa_match;
@@ -251,18 +241,12 @@ static int
 ubsa_match(device_t self)
 {
        struct usb_attach_arg *uaa = device_get_ivars(self);
-       int i;
 
        if (uaa->iface != NULL)
                return (UMATCH_NONE);
 
-       for (i = 0; ubsa_products[i].vendor != 0; i++) {
-               if (ubsa_products[i].vendor == uaa->vendor &&
-                   ubsa_products[i].product == uaa->product) {
-                       return (UMATCH_VENDOR_PRODUCT);
-               }
-       }
-       return (UMATCH_NONE);
+       return (usb_lookup(ubsa_devs, uaa->vendor, uaa->product) != NULL ?
+           UMATCH_VENDOR_PRODUCT : UMATCH_NONE);
 }
 
 static int
index ec2d98a..4597deb 100644 (file)
@@ -27,7 +27,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/usb/udbp.c,v 1.24 2003/08/24 17:55:55 obrien Exp $
- * $DragonFly: src/sys/dev/usbmisc/udbp/Attic/udbp.c,v 1.15 2007/07/02 23:52:05 hasso Exp $
+ * $DragonFly: src/sys/dev/usbmisc/udbp/Attic/udbp.c,v 1.16 2007/11/05 13:32:28 hasso Exp $
  */
 
 /* Driver for arbitrary double bulk pipe devices.
@@ -216,6 +216,13 @@ static void udbp_out_transfer_cb   (usbd_xfer_handle xfer,
                                        usbd_private_handle priv,
                                        usbd_status err);
 
+static const struct usb_devno udbp_devs[] = {
+       { USB_DEVICE(0x0525, 0x1080) }, /* NetChip Turbo-Connect */
+       { USB_DEVICE(0x0547, 0x2720) }, /* Anchor EZLINK */
+       { USB_DEVICE(0x067b, 0x0000) }, /* Prolific PL2301 */
+       { USB_DEVICE(0x067b, 0x0001) }, /* Prolofic PL2302 */
+};
+
 static device_probe_t udbp_match;
 static device_attach_t udbp_attach;
 static device_detach_t udbp_detach;
@@ -241,33 +248,12 @@ static int
 udbp_match(device_t self)
 {
        struct usb_attach_arg *uaa = device_get_ivars(self);
-       usb_interface_descriptor_t *id;
-       if (!uaa->iface)
-         return (UMATCH_NONE);
-       id = usbd_get_interface_descriptor(uaa->iface);
-
-       /* XXX Julian, add the id of the device if you have one to test
-        * things with. run 'usbdevs -v' and note the 3 ID's that appear.
-        * The Vendor Id and Product Id are in hex and the Revision Id is in
-        * bcd. But as usual if the revision is 0x101 then you should compare
-        * the revision id in the device descriptor with 0x101
-        * Or go search the file usbdevs.h. Maybe the device is already in
-        * there.
-        */
-       if ((uaa->vendor == USB_VENDOR_NETCHIP &&
-            uaa->product == USB_PRODUCT_NETCHIP_TURBOCONNECT))
-               return(UMATCH_VENDOR_PRODUCT);
-
-       if ((uaa->vendor == USB_VENDOR_PROLIFIC &&
-            (uaa->product == USB_PRODUCT_PROLIFIC_PL2301 ||
-             uaa->product == USB_PRODUCT_PROLIFIC_PL2302)))
-               return(UMATCH_VENDOR_PRODUCT);
 
-       if ((uaa->vendor == USB_VENDOR_ANCHOR &&
-            uaa->product == USB_PRODUCT_ANCHOR_EZLINK))
-               return(UMATCH_VENDOR_PRODUCT);
+       if (uaa->iface == NULL)
+               return (UMATCH_NONE);
 
-       return (UMATCH_NONE);
+       return (usb_lookup(udbp_devs, uaa->vendor, uaa->product) != NULL) ?
+           UMATCH_VENDOR_PRODUCT : UMATCH_NONE;
 }
 
 static int
index cb1fe54..08fb4e5 100644 (file)
@@ -30,7 +30,7 @@
 
 /*
  * $FreeBSD: src/sys/dev/usb/ufm.c,v 1.16 2003/10/04 21:41:01 joe Exp $
- * $DragonFly: src/sys/dev/usbmisc/ufm/ufm.c,v 1.20 2007/08/07 10:42:40 hasso Exp $
+ * $DragonFly: src/sys/dev/usbmisc/ufm/ufm.c,v 1.21 2007/11/05 13:32:28 hasso Exp $
  */
 
 #include <sys/param.h>
@@ -135,8 +135,7 @@ ufm_match(device_t self)
        dd = usbd_get_device_descriptor(uaa->device);
 
        if (dd &&
-           ((UGETW(dd->idVendor) == USB_VENDOR_CYPRESS &&
-           UGETW(dd->idProduct) == USB_PRODUCT_CYPRESS_FMRADIO)))
+           ((UGETW(dd->idVendor) == 0x04b4 && UGETW(dd->idProduct) == 0x1002)))
                return UMATCH_VENDOR_PRODUCT;
        else
                return UMATCH_NONE;
index 97c4162..263df36 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * $NetBSD: uftdi.c,v 1.13 2002/09/23 05:51:23 simonb Exp $
  * $FreeBSD: src/sys/dev/usb/uftdi.c,v 1.37 2007/06/22 05:53:05 imp Exp $
- * $DragonFly: src/sys/dev/usbmisc/uftdi/uftdi.c,v 1.20 2007/10/12 11:15:53 hasso Exp $
+ * $DragonFly: src/sys/dev/usbmisc/uftdi/uftdi.c,v 1.21 2007/11/05 13:32:28 hasso Exp $
  */
 
 /*-
@@ -135,254 +135,383 @@ struct ucom_callback uftdi_callback = {
 };
 
 static const struct usb_devno uftdi_devs[] = {
-       { USB_VENDOR_BBELECTR, USB_PRODUCT_BBELECTR_232USB9M },
-       { USB_VENDOR_BBELECTR, USB_PRODUCT_BBELECTR_485USB9F2W },
-       { USB_VENDOR_BBELECTR, USB_PRODUCT_BBELECTR_485USB9F4W },
-       { USB_VENDOR_BBELECTR, USB_PRODUCT_BBELECTR_USO9ML2 },
-       { USB_VENDOR_BBELECTR, USB_PRODUCT_BBELECTR_USO9ML2DR },
-       { USB_VENDOR_BBELECTR, USB_PRODUCT_BBELECTR_USO9ML2DR2 },
-       { USB_VENDOR_BBELECTR, USB_PRODUCT_BBELECTR_USOPTL4 },
-       { USB_VENDOR_BBELECTR, USB_PRODUCT_BBELECTR_USOPTL4DR },
-       { USB_VENDOR_BBELECTR, USB_PRODUCT_BBELECTR_USOPTL4DR2 },
-       { USB_VENDOR_BBELECTR, USB_PRODUCT_BBELECTR_USOTL4 },
-       { USB_VENDOR_BBELECTR, USB_PRODUCT_BBELECTR_USPTL4 },
-       { USB_VENDOR_BBELECTR, USB_PRODUCT_BBELECTR_USTL4 },
-       { USB_VENDOR_EVOLUTION, USB_PRODUCT_EVOLUTION_ER1 },
-       { USB_VENDOR_EVOLUTION, USB_PRODUCT_EVOLUTION_RCM4_1 },
-       { USB_VENDOR_EVOLUTION, USB_PRODUCT_EVOLUTION_RCM4_2 },
-       { USB_VENDOR_FALCOM, USB_PRODUCT_FALCOM_SAMBA },
-       { USB_VENDOR_FALCOM, USB_PRODUCT_FALCOM_TWIST },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_ACCESSO },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_ACG_HFDUAL },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_ACTROBOTS },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_ACTZWAVE },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_AMC232 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_ARTEMIS },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_ASK_RDR4X7_1 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_ASK_RDR4X7_2 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_ASK_RDR4X7_3 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_ASK_RDR4X7_4 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_ASK_RDR4X7_5 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_ASK_RDR4X7_6 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_ASK_RDR4X7_7 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_ASK_RDR4X7_8 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_ATK16 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_ATK16C },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_ATK16HR },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_ATK16HRC },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_CANUSB },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_CCS_ICDU20 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_CCS_ICDU40 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_CCS_MACHX },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_CFA_547 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_CFA_631 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_CFA_632 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_CFA_633 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_CFA_634 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_CFA_635 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_CFA_640 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_CFA_642 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_CHAMELEON },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_DMX4ALL },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_ECLO_1WIRE },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_ECO_PRO },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_EISCOU },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_ELV_ALC8500 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_ELV_FHZ1000PC },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_ELV_UM100 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_ELV_UO100 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_ELV_UR100 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_EMCU2D },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_EMCU2H },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_FT2232 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_FT232_1 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_FT232_2 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_FT232_3 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_FT232_4 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_FT232_5 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_FT232_6 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_FT8U100AX },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_GAMMASCOUT },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_GUDE_1 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_GUDE_2 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_GUDE_3 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_GUDE_4 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_GUDE_5 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_GUDE_6 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_GUDE_7 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_GUDE_8 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_GUDE_9 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_GUDE_A },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_GUDE_B },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_IBS_1 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_IBS_APP70 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_IBS_PCMCIA },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_IBS_PEDO },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_IBS_PICPRO },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_IBS_PK1 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_IBS_RS232MON },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_IBS_US485 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_IPLUS },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_LINX_1 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_LINX_2 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_LINX_3 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_LINX_MASTER2 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_LINX_SDMUSBQSS },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_LOCOBUFFER },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_MATRIX_1 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_MATRIX_2 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_MATRIX_3 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_MATRIX_LK202 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_MATRIX_LK204 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_MATRIX_MX2_3 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_MATRIX_MX4_5 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_MAXS_PKGU },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_MHAM_DB9 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_MHAM_IC },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_MHAM_KW },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_MHAM_RS232 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_MHAM_Y6 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_MHAM_Y8 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_MHAM_Y9 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_MHAM_YS },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_MJS_SIRIUS_PC },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_PCDJ_DAC2 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_PCMSFU },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_PYRAMID },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SEMC_DSS20 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SEMC_DSS20 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_TACTRIX_OP_13M },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_TACTRIX_OP_13S },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_TACTRIX_OP_13U },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_TERATRONIK_D2XX },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_TERATRONIK_VCP },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_THORLABS },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_TIRA1 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_TNCX },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_UOPTBR },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_USBUIRT },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_VNHC },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_WESTREX_777 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_WESTREX_8900F },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_XSENS_1 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_XSENS_2 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_XSENS_3 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_XSENS_4 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_XSENS_5 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_XSENS_6 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_XSENS_7 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_XSENS_8 },
-       { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_YEI_SC31 },
-       { USB_VENDOR_ICOM, USB_PRODUCT_ICOM_ID1 },
-       { USB_VENDOR_ICOM, USB_PRODUCT_ICOM_RP2000VR },
-       { USB_VENDOR_ICOM, USB_PRODUCT_ICOM_RP2000VT },
-       { USB_VENDOR_ICOM, USB_PRODUCT_ICOM_RP2C1 },
-       { USB_VENDOR_ICOM, USB_PRODUCT_ICOM_RP2C2 },
-       { USB_VENDOR_ICOM, USB_PRODUCT_ICOM_RP2D },
-       { USB_VENDOR_ICOM, USB_PRODUCT_ICOM_RP2VR },
-       { USB_VENDOR_ICOM, USB_PRODUCT_ICOM_RP2VT },
-       { USB_VENDOR_ICOM, USB_PRODUCT_ICOM_RP4000VR },
-       { USB_VENDOR_ICOM, USB_PRODUCT_ICOM_RP4000VT },
-       { USB_VENDOR_IDTECH, USB_PRODUCT_IDTECH_SERIAL },
-       { USB_VENDOR_INTERBIO, USB_PRODUCT_INTERBIO_IOBOARD },
-       { USB_VENDOR_INTERBIO, USB_PRODUCT_INTERBIO_MINIIOBOARD },
-       { USB_VENDOR_INTREPIDCS, USB_PRODUCT_INTREPIDCS_VALUECAN },
-       { USB_VENDOR_INTREPIDCS, USB_PRODUCT_INTREPIDCS_NEOVI },
-       { USB_VENDOR_KOBIL, USB_PRODUCT_KOBIL_B1 },
-       { USB_VENDOR_KOBIL, USB_PRODUCT_KOBIL_KAAN },
-       { USB_VENDOR_MELCO, USB_PRODUCT_MELCO_PCOPRS1 },
-       { USB_VENDOR_MOBILITY, USB_PRODUCT_MOBILITY_ED200H },
-       { USB_VENDOR_OCT, USB_PRODUCT_OCT_US101 },
-       { USB_VENDOR_PAPOUCH, USB_PRODUCT_PAPOUCH_AD4USB },
-       { USB_VENDOR_PAPOUCH, USB_PRODUCT_PAPOUCH_AP485_1 },
-       { USB_VENDOR_PAPOUCH, USB_PRODUCT_PAPOUCH_AP485_2 },
-       { USB_VENDOR_PAPOUCH, USB_PRODUCT_PAPOUCH_DRAK5 },
-       { USB_VENDOR_PAPOUCH, USB_PRODUCT_PAPOUCH_DRAK6 },
-       { USB_VENDOR_PAPOUCH, USB_PRODUCT_PAPOUCH_GOLIATH_MSR },
-       { USB_VENDOR_PAPOUCH, USB_PRODUCT_PAPOUCH_GOLIATH_MUX },
-       { USB_VENDOR_PAPOUCH, USB_PRODUCT_PAPOUCH_IRAMP },
-       { USB_VENDOR_PAPOUCH, USB_PRODUCT_PAPOUCH_LEC },
-       { USB_VENDOR_PAPOUCH, USB_PRODUCT_PAPOUCH_MUC },
-       { USB_VENDOR_PAPOUCH, USB_PRODUCT_PAPOUCH_QUIDO101 },
-       { USB_VENDOR_PAPOUCH, USB_PRODUCT_PAPOUCH_QUIDO216 },
-       { USB_VENDOR_PAPOUCH, USB_PRODUCT_PAPOUCH_QUIDO22 },
-       { USB_VENDOR_PAPOUCH, USB_PRODUCT_PAPOUCH_QUIDO303 },
-       { USB_VENDOR_PAPOUCH, USB_PRODUCT_PAPOUCH_QUIDO332 },
-       { USB_VENDOR_PAPOUCH, USB_PRODUCT_PAPOUCH_QUIDO44 },
-       { USB_VENDOR_PAPOUCH, USB_PRODUCT_PAPOUCH_QUIDO603 },
-       { USB_VENDOR_PAPOUCH, USB_PRODUCT_PAPOUCH_QUIDO88 },
-       { USB_VENDOR_PAPOUCH, USB_PRODUCT_PAPOUCH_SB232 },
-       { USB_VENDOR_PAPOUCH, USB_PRODUCT_PAPOUCH_SB422_1 },
-       { USB_VENDOR_PAPOUCH, USB_PRODUCT_PAPOUCH_SB422_2 },
-       { USB_VENDOR_PAPOUCH, USB_PRODUCT_PAPOUCH_SB485C },
-       { USB_VENDOR_PAPOUCH, USB_PRODUCT_PAPOUCH_SB485S },
-       { USB_VENDOR_PAPOUCH, USB_PRODUCT_PAPOUCH_SB485_1 },
-       { USB_VENDOR_PAPOUCH, USB_PRODUCT_PAPOUCH_SB485_2 },
-       { USB_VENDOR_PAPOUCH, USB_PRODUCT_PAPOUCH_SERIAL },
-       { USB_VENDOR_PAPOUCH, USB_PRODUCT_PAPOUCH_SIMUKEY },
-       { USB_VENDOR_PAPOUCH, USB_PRODUCT_PAPOUCH_STAVOVY },
-       { USB_VENDOR_PAPOUCH, USB_PRODUCT_PAPOUCH_TMU },
-       { USB_VENDOR_POSIFLEX, USB_PRODUCT_POSIFLEX_PP7000_1 },
-       { USB_VENDOR_POSIFLEX, USB_PRODUCT_POSIFLEX_PP7000_2 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2101 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2102 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2103 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2104 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2106 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2201_1 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2201_2 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2202_1 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2202_2 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2203_1 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2203_2 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2401_1 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2401_2 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2401_3 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2401_4 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2402_1 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2402_2 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2402_3 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2402_4 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2403_1 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2403_2 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2403_3 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2403_4 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2801_1 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2801_2 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2801_3 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2801_4 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2801_5 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2801_6 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2801_7 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2801_8 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2802_1 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2802_2 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2802_3 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2802_4 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2802_5 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2802_6 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2802_7 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2802_8 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2803_1 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2803_2 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2803_3 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2803_4 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2803_5 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2803_6 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2803_7 },
-       { USB_VENDOR_SEALEVEL, USB_PRODUCT_SEALEVEL_2803_8 },
-       { USB_VENDOR_TESTO, USB_PRODUCT_TESTO_174 },
-       { USB_VENDOR_TESTO, USB_PRODUCT_TESTO_175 },
-       { USB_VENDOR_TESTO, USB_PRODUCT_TESTO_330 },
-       { USB_VENDOR_TESTO, USB_PRODUCT_TESTO_435 },
-       { USB_VENDOR_TESTO, USB_PRODUCT_TESTO_556 },
-       { USB_VENDOR_TESTO, USB_PRODUCT_TESTO_580 },
-       { USB_VENDOR_TESTO, USB_PRODUCT_TESTO_845 },
-       { USB_VENDOR_TESTO, USB_PRODUCT_TESTO_SERIAL_1 },
-       { USB_VENDOR_TESTO, USB_PRODUCT_TESTO_SERIAL_2 },
-       { USB_VENDOR_TESTO, USB_PRODUCT_TESTO_SERVICE },
-       { USB_VENDOR_THURLBY, USB_PRODUCT_THURLBY_QL355P },
-       { 0, 0 }
+       /* FTDI chips defaults */
+       { USB_DEVICE(0x0403, 0x0232) }, /* FT232 serial converter */
+       { USB_DEVICE(0x0403, 0x6001) }, /* FT232 serial converter */
+       { USB_DEVICE(0x0403, 0x6006) }, /* FT232 serial converter */
+       { USB_DEVICE(0x0403, 0x6007) }, /* FT232 serial converter */
+       { USB_DEVICE(0x0403, 0x6008) }, /* FT232 serial converter */
+       { USB_DEVICE(0x0403, 0x6009) }, /* FT232 serial converter */
+       { USB_DEVICE(0x0403, 0x6010) }, /* FT2232 dual port serial converter */
+       { USB_DEVICE(0x0403, 0x8372) }, /* FTDI 8U100AX USB hub controller */
+
+       /* RR-CirKits products */
+       { USB_DEVICE(0x0403, 0xc7d0) }, /* LocoBuffer USB */
+
+       /* DMX4ALL products */
+       { USB_DEVICE(0x0403, 0xc850) }, /* DMX interface */
+
+       /* ASK products */
+       { USB_DEVICE(0x0403, 0xc990) }, /* RDR 4X7 series card reader */
+       { USB_DEVICE(0x0403, 0xc991) }, /* RDR 4X7 series card reader */
+       { USB_DEVICE(0x0403, 0xc992) }, /* RDR 4X7 series card reader */
+       { USB_DEVICE(0x0403, 0xc993) }, /* RDR 4X7 series card reader */
+       { USB_DEVICE(0x0403, 0xc994) }, /* RDR 4X7 series card reader */
+       { USB_DEVICE(0x0403, 0xc995) }, /* RDR 4X7 series card reader */
+       { USB_DEVICE(0x0403, 0xc996) }, /* RDR 4X7 series card reader */
+       { USB_DEVICE(0x0403, 0xc997) }, /* RDR 4X7 series card reader */
+
+       /* MJS products */
+       { USB_DEVICE(0x0403, 0xca81) }, /* Sirius To PC Interface */
+
+       /* Starting Point Systems products */
+       { USB_DEVICE(0x0403, 0xcaa0) }, /* ┬ÁChameleon */
+
+       /* Tactrix products */
+       { USB_DEVICE(0x0403, 0xcc48) }, /* OpenPort 1.3 Mitsubishi */
+       { USB_DEVICE(0x0403, 0xcc49) }, /* OpenPort 1.3 Subaru */
+       { USB_DEVICE(0x0403, 0xcc4a) }, /* OpenPort 1.3 Universal */
+
+       /* Plus GSM products */
+       { USB_DEVICE(0x0403, 0xd070) }, /* Plus GSM iPlus */
+
+       /* Xsens Technologies BV products */
+       { USB_DEVICE(0x0403, 0xd388) }, /* Serial interface */
+       { USB_DEVICE(0x0403, 0xd389) }, /* Serial interface */
+       { USB_DEVICE(0x0403, 0xd38a) }, /* Serial interface */
+       { USB_DEVICE(0x0403, 0xd38b) }, /* Serial interface */
+       { USB_DEVICE(0x0403, 0xd38c) }, /* Serial interface */
+       { USB_DEVICE(0x0403, 0xd38d) }, /* Serial interface */
+       { USB_DEVICE(0x0403, 0xd38e) }, /* Serial interface */
+       { USB_DEVICE(0x0403, 0xd38f) }, /* Serial interface */
+
+       /* Eurami Group products */
+       { USB_DEVICE(0x0403, 0xd678) }, /* Gamma Scout Online */
+
+       /* Westrex International products */
+       { USB_DEVICE(0x0403, 0xdc00) }, /* Model 777 */
+       { USB_DEVICE(0x0403, 0xdc01) }, /* Model 8900F */
+
+       /* ACG Identification GmbH products */
+       { USB_DEVICE(0x0403, 0xdd20) }, /* HF Dual ISO Reader (RFID) */
+
+       /* Artemis products */
+       { USB_DEVICE(0x0403, 0xdf28) }, /* CCD camera */
+
+       /* ATIK Instruments products */
+       { USB_DEVICE(0x0403, 0xdf30) }, /* ATK-16 Grayscale Camera */
+       { USB_DEVICE(0x0403, 0xdf31) }, /* ATK-16HR Grayscale Camera */
+       { USB_DEVICE(0x0403, 0xdf32) }, /* ATK-16C Colour Camera */
+       { USB_DEVICE(0x0403, 0xdf33) }, /* ATK-16HRC Colour Camera */
+
+       /* Yost Engineering, Inc. products */
+       { USB_DEVICE(0x0403, 0xe050) }, /* ServoCenter3.1 USB */
+
+       /* EVER Sp. products */
+       { USB_DEVICE(0x0403, 0xe520) }, /* Eco Pro UPS */
+
+       /* Active Robots products */
+       { USB_DEVICE(0x0403, 0xe548) }, /* Active Robots comms board */
+
+       /* Pyramid Computer GmbH products */
+       { USB_DEVICE(0x0403, 0xe6c8) }, /* Pyramid Appliance Display */
+
+       /* Gude Analog- und Digitalsysteme GmbH products */
+       { USB_DEVICE(0x0403, 0xe808) }, /* USB to serial */
+       { USB_DEVICE(0x0403, 0xe809) }, /* USB to serial */
+       { USB_DEVICE(0x0403, 0xe80a) }, /* USB to serial */
+       { USB_DEVICE(0x0403, 0xe80b) }, /* USB to serial */
+       { USB_DEVICE(0x0403, 0xe80c) }, /* USB to serial */
+       { USB_DEVICE(0x0403, 0xe80d) }, /* USB to serial */
+       { USB_DEVICE(0x0403, 0xe80e) }, /* USB to serial */
+       { USB_DEVICE(0x0403, 0xe80f) }, /* USB to serial */
+       { USB_DEVICE(0x0403, 0xe888) }, /* Expert ISDN Control USB */
+       { USB_DEVICE(0x0403, 0xe889) }, /* USB-RS232 OptoBridge */
+       { USB_DEVICE(0x0403, 0xe88a) }, /* Expert mouseCLOCK USB II */
+       { USB_DEVICE(0x0403, 0xe88b) }, /* Precision Clock MSF USB */
+       { USB_DEVICE(0x0403, 0xe88c) }, /* Expert mouseCLOCK USB II HBG */
+       { USB_DEVICE(0x0403, 0xe88d) }, /* USB to serial */
+       { USB_DEVICE(0x0403, 0xe88e) }, /* USB to serial */
+       { USB_DEVICE(0x0403, 0xe88f) }, /* USB to serial */
+
+       /* Eclo, Lda. products */
+       { USB_DEVICE(0x0403, 0xea90) }, /* COM to 1-Wire USB adaptor */
+
+       /* Coastal ChipWorks products */
+       { USB_DEVICE(0x0403, 0xebe0) }, /* TNC-X USB to packet-radio adapter */
+
+       /* Teratronik products */
+       { USB_DEVICE(0x0403, 0xec88) }, /* Teratronik VCP device */
+
+       /* MaxStream products */
+       { USB_DEVICE(0x0403, 0xee18) }, /* PKG-U RF modem */
+
+       /* microHAM products */
+       { USB_DEVICE(0x0403, 0xeee8) }, /* USB-KW interface */
+       { USB_DEVICE(0x0403, 0xeee9) }, /* USB-YS interface */
+       { USB_DEVICE(0x0403, 0xeeea) }, /* USB-Y6 interface */
+       { USB_DEVICE(0x0403, 0xeeeb) }, /* USB-Y8 interface */
+       { USB_DEVICE(0x0403, 0xeeec) }, /* USB-IC interface */
+       { USB_DEVICE(0x0403, 0xeeed) }, /* USB-DB9 interface */
+       { USB_DEVICE(0x0403, 0xeeee) }, /* USB-RS232 interface */
+       { USB_DEVICE(0x0403, 0xeeef) }, /* USB-Y9 interface */
+
+       /* ELV products */
+       { USB_DEVICE(0x0403, 0xf06e) }, /* ALC 8500 Expert */
+       { USB_DEVICE(0x0403, 0xf06f) }, /* FHZ 1000 PC */
+
+       /* Perle Systems products */
+       { USB_DEVICE(0x0403, 0xf0c0) }, /* UltraPort USB */
+
+       /* ACT Solutions products */
+       { USB_DEVICE(0x0403, 0xf2d0) }, /* HomePro ZWave */
+
+       /* 4n-galaxy.de products */
+       { USB_DEVICE(0x0403, 0xf3c0) }, /* Galaxy USB to serial */
+       { USB_DEVICE(0x0403, 0xf3c1) }, /* Galaxy USB to serial */
+
+       /* Linx Technologies products */
+       { USB_DEVICE(0x0403, 0xf448) }, /* Linx SDM-USB-QS-S */
+       { USB_DEVICE(0x0403, 0xf449) }, /* Linx Master Development 2.0 */
+       { USB_DEVICE(0x0403, 0xf44a) }, /* Linx USB to serial */
+       { USB_DEVICE(0x0403, 0xf44b) }, /* Linx USB to serial */
+       { USB_DEVICE(0x0403, 0xf44c) }, /* Linx USB to serial */
+
+       /* Suunto Oy products */
+       { USB_DEVICE(0x0403, 0xf680) }, /* Suunto Sports instrument */
+
+       /* USB-UIRT */
+       { USB_DEVICE(0x0403, 0xf850) }, /* USB-UIRT */
+
+       /* CCS Inc. products */
+       { USB_DEVICE(0x0403, 0xf9d0) }, /* ICD-U20 */
+       { USB_DEVICE(0x0403, 0xf9d1) }, /* ICD-U40 */
+       { USB_DEVICE(0x0403, 0xf9d2) }, /* MACH-X */
+
+       /* Matrix Orbital LCD displays */
+       { USB_DEVICE(0x0403, 0xfa00) }, /* USB Serial */
+       { USB_DEVICE(0x0403, 0xfa01) }, /* MX2 or MX3 LCD */
+       { USB_DEVICE(0x0403, 0xfa02) }, /* MX4 or MX5 LCD */
+       { USB_DEVICE(0x0403, 0xfa03) }, /* LK202-24 LCD */
+       { USB_DEVICE(0x0403, 0xfa04) }, /* LK204-24 LCD */
+       { USB_DEVICE(0x0403, 0xfa05) }, /* USB Serial */
+       { USB_DEVICE(0x0403, 0xfa06) }, /* USB Serial */
+
+       /* Home Electronics products */
+       { USB_DEVICE(0x0403, 0xfa78) }, /* Tira-1 */
+
+       /* PCDJ products */
+       { USB_DEVICE(0x0403, 0xfa88) }, /* DAC-2 */
+
+       /* Inside.fr products */
+       { USB_DEVICE(0x0403, 0xfad0) }, /* Accesso contactless reader */
+
+       /* Thorlabs GmbH products */
+       { USB_DEVICE(0x0403, 0xfaf0) }, /* Motors controller */
+
+       /* ELV products */
+       { USB_DEVICE(0x0403, 0xfb58) }, /* UR 100 */
+       { USB_DEVICE(0x0403, 0xfb5a) }, /* UM 100 */
+       { USB_DEVICE(0x0403, 0xfb5b) }, /* UO 100 */
+
+       /* Crystalfontz products */
+       { USB_DEVICE(0x0403, 0xfc08) }, /* CFA-632 LCD */
+       { USB_DEVICE(0x0403, 0xfc09) }, /* CFA-634 LCD */
+       { USB_DEVICE(0x0403, 0xfc0a) }, /* CFA-547 LCD */
+       { USB_DEVICE(0x0403, 0xfc0b) }, /* CFA-633 LCD */
+       { USB_DEVICE(0x0403, 0xfc0c) }, /* CFA-631 LCD */
+       { USB_DEVICE(0x0403, 0xfc0d) }, /* CFA-635 LCD */
+       { USB_DEVICE(0x0403, 0xfc0e) }, /* CFA-640 LCD */
+       { USB_DEVICE(0x0403, 0xfc0f) }, /* CFA-642 LCD */
+
+       /* IRTrans GmbH products */
+       { USB_DEVICE(0x0403, 0xfc60) }, /* Irtrans device */
+
+       /* Sony Ericsson products */
+       { USB_DEVICE(0x0403, 0xfc82) }, /* DSS-20 SyncStation */
+
+       /* RM Michaelides Software & Elektronik GmbH products */
+       { USB_DEVICE(0x0403, 0xfd60) }, /* CANview USB */
+
+       /* Video Networks Limited / Homechoice products */
+       { USB_DEVICE(0x0403, 0xfe38) }, /* Homechoice broadband modem */
+
+       /* AlphaMicro Components products */
+       { USB_DEVICE(0x0403, 0xff00) }, /* AMC-232USB01 */
+
+       /* Thought Technology Ltd. products */
+       { USB_DEVICE(0x0403, 0xff20) }, /* TT-USB */
+
+       /* IBS elektronik products */
+       { USB_DEVICE(0x0403, 0xff38) }, /* US485 interface */
+       { USB_DEVICE(0x0403, 0xff39) }, /* PIC-Programmer */
+       { USB_DEVICE(0x0403, 0xff3a) }, /* PCMCIA SRAM-cards reader */
+       { USB_DEVICE(0x0403, 0xff3b) }, /* Particel counter PK1 */
+       { USB_DEVICE(0x0403, 0xff3c) }, /* RS232 - Monitor */
+       { USB_DEVICE(0x0403, 0xff3d) }, /* APP 70 dust monitoring */
+       { USB_DEVICE(0x0403, 0xff3e) }, /* PEDO-Modem */
+       { USB_DEVICE(0x0403, 0xff3f) }, /* Future device */
+
+       /* Lawicel products */
+       { USB_DEVICE(0x0403, 0xffa8) }, /* CANUSB device */
+
+       /* Melco, Inc products */
+       { USB_DEVICE(0x0411, 0x00b3) }, /* PC-OP-RS1 RemoteStation */
+
+       /* B&B Electronics products */
+       { USB_DEVICE(0x0856, 0xac01) }, /* USOTL4 */
+       { USB_DEVICE(0x0856, 0xac02) }, /* USTL4 */
+       { USB_DEVICE(0x0856, 0xac03) }, /* USO9ML2 */
+       { USB_DEVICE(0x0856, 0xac11) }, /* USOPTL4 */
+       { USB_DEVICE(0x0856, 0xac12) }, /* USPTL4 */
+       { USB_DEVICE(0x0856, 0xac16) }, /* USO9ML2DR-2 */
+       { USB_DEVICE(0x0856, 0xac17) }, /* USO9ML2DR */
+       { USB_DEVICE(0x0856, 0xac18) }, /* USOPTL4DR-2 */
+       { USB_DEVICE(0x0856, 0xac19) }, /* USOPTL4DR */
+       { USB_DEVICE(0x0856, 0xac25) }, /* 485USB9F-2W */
+       { USB_DEVICE(0x0856, 0xac26) }, /* 485USB9F-4W */
+       { USB_DEVICE(0x0856, 0xac27) }, /* 232USB9M */
+
+       /* Interpid Control Systems products */
+       { USB_DEVICE(0x093c, 0x0601) }, /* ValueCAN */
+       { USB_DEVICE(0x093c, 0x0701) }, /* NeoVI Blue */
+       
+       /* ID TECH products */
+       { USB_DEVICE(0x0acd, 0x0300) }, /* USB to serial adapter */
+
+       /* Omnidirectional Control Technology products */
+       { USB_DEVICE(0x0b39, 0x0421) }, /* USB to serial */
+
+       /* Icom, Inc. products */
+       { USB_DEVICE(0x0c26, 0x0004) }, /* ID-1 */
+       { USB_DEVICE(0x0c26, 0x0009) }, /* ID-RP2C service 1 */
+       { USB_DEVICE(0x0c26, 0x000a) }, /* ID-RP2C service 2 */
+       { USB_DEVICE(0x0c26, 0x000b) }, /* ID-RP2D */
+       { USB_DEVICE(0x0c26, 0x000c) }, /* ID-RP2V service T */
+       { USB_DEVICE(0x0c26, 0x000d) }, /* ID-RP2V service R */
+       { USB_DEVICE(0x0c26, 0x0011) }, /* ID-RP4000V service R */
+       { USB_DEVICE(0x0c26, 0x0011) }, /* ID-RP4000V service T */
+       { USB_DEVICE(0x0c26, 0x0012) }, /* ID-RP2000V service T */
+       { USB_DEVICE(0x0c26, 0x0013) }, /* ID-RP2000V service R */
+
+       /* Sealevel products */
+       { USB_DEVICE(0x0c52, 0X2811) }, /* SeaLINK+8/232 (2801) Port 1 */
+       { USB_DEVICE(0x0c52, 0X2812) }, /* SeaLINK+8/485 (2802) Port 1 */
+       { USB_DEVICE(0x0c52, 0X2813) }, /* SeaLINK+8 (2803) Port 1 */
+       { USB_DEVICE(0x0c52, 0X2821) }, /* SeaLINK+8/232 (2801) Port 2 */
+       { USB_DEVICE(0x0c52, 0X2822) }, /* SeaLINK+8/485 (2802) Port 2 */
+       { USB_DEVICE(0x0c52, 0X2823) }, /* SeaLINK+8 (2803) Port 2 */
+       { USB_DEVICE(0x0c52, 0X2831) }, /* SeaLINK+8/232 (2801) Port 3 */
+       { USB_DEVICE(0x0c52, 0X2832) }, /* SeaLINK+8/485 (2802) Port 3 */
+       { USB_DEVICE(0x0c52, 0X2833) }, /* SeaLINK+8 (2803) Port 3 */
+       { USB_DEVICE(0x0c52, 0X2841) }, /* SeaLINK+8/232 (2801) Port 4 */
+       { USB_DEVICE(0x0c52, 0X2842) }, /* SeaLINK+8/485 (2802) Port 4 */
+       { USB_DEVICE(0x0c52, 0X2843) }, /* SeaLINK+8 (2803) Port 4 */
+       { USB_DEVICE(0x0c52, 0X2851) }, /* SeaLINK+8/232 (2801) Port 5 */
+       { USB_DEVICE(0x0c52, 0X2852) }, /* SeaLINK+8/485 (2802) Port 5 */
+       { USB_DEVICE(0x0c52, 0X2853) }, /* SeaLINK+8 (2803) Port 5 */
+       { USB_DEVICE(0x0c52, 0X2861) }, /* SeaLINK+8/232 (2801) Port 6 */
+       { USB_DEVICE(0x0c52, 0X2862) }, /* SeaLINK+8/485 (2802) Port 6 */
+       { USB_DEVICE(0x0c52, 0X2863) }, /* SeaLINK+8 (2803) Port 6 */
+       { USB_DEVICE(0x0c52, 0X2871) }, /* SeaLINK+8/232 (2801) Port 7 */
+       { USB_DEVICE(0x0c52, 0X2872) }, /* SeaLINK+8/485 (2802) Port 7 */
+       { USB_DEVICE(0x0c52, 0X2873) }, /* SeaLINK+8 (2803) Port 7 */
+       { USB_DEVICE(0x0c52, 0X2881) }, /* SeaLINK+8/232 (2801) Port 8 */
+       { USB_DEVICE(0x0c52, 0X2882) }, /* SeaLINK+8/485 (2802) Port 8 */
+       { USB_DEVICE(0x0c52, 0X2883) }, /* SeaLINK+8 (2803) Port 8 */
+       { USB_DEVICE(0x0c52, 0x2101) }, /* SeaLINK+232 (2101/2105) */
+       { USB_DEVICE(0x0c52, 0x2102) }, /* SeaLINK+485 (2102) */
+       { USB_DEVICE(0x0c52, 0x2103) }, /* SeaLINK+232I (2103) */
+       { USB_DEVICE(0x0c52, 0x2104) }, /* SeaLINK+485I (2104) */
+       { USB_DEVICE(0x0c52, 0x2211) }, /* SeaPORT+2/232 (2201) Port 1 */
+       { USB_DEVICE(0x0c52, 0x2212) }, /* SeaPORT+2/485 (2202) Port 1 */
+       { USB_DEVICE(0x0c52, 0x2213) }, /* SeaPORT+2 (2203) Port 1 */
+       { USB_DEVICE(0x0c52, 0x2221) }, /* SeaPORT+2/232 (2201) Port 2 */
+       { USB_DEVICE(0x0c52, 0x2222) }, /* SeaPORT+2/485 (2202) Port 2 */
+       { USB_DEVICE(0x0c52, 0x2223) }, /* SeaPORT+2 (2203) Port 2 */
+       { USB_DEVICE(0x0c52, 0x2411) }, /* SeaPORT+4/232 (2401) Port 1 */
+       { USB_DEVICE(0x0c52, 0x2412) }, /* SeaPORT+4/485 (2402) Port 1 */
+       { USB_DEVICE(0x0c52, 0x2413) }, /* SeaPORT+4 (2403) Port 1 */
+       { USB_DEVICE(0x0c52, 0x2421) }, /* SeaPORT+4/232 (2401) Port 2 */
+       { USB_DEVICE(0x0c52, 0x2422) }, /* SeaPORT+4/485 (2402) Port 2 */
+       { USB_DEVICE(0x0c52, 0x2423) }, /* SeaPORT+4 (2403) Port 2 */
+       { USB_DEVICE(0x0c52, 0x2431) }, /* SeaPORT+4/232 (2401) Port 3 */
+       { USB_DEVICE(0x0c52, 0x2432) }, /* SeaPORT+4/485 (2402) Port 3 */
+       { USB_DEVICE(0x0c52, 0x2433) }, /* SeaPORT+4 (2403) Port 3 */
+       { USB_DEVICE(0x0c52, 0x2441) }, /* SeaPORT+4/232 (2401) Port 4 */
+       { USB_DEVICE(0x0c52, 0x2442) }, /* SeaPORT+4/485 (2402) Port 4 */
+       { USB_DEVICE(0x0c52, 0x2443) }, /* SeaPORT+4 (2403) Port 4 */
+       { USB_DEVICE(0x0c52, 0x9020) }, /* SeaLINK+422 (2106) */
+
+       /* Posiflex Technologies products */
+       { USB_DEVICE(0x0d3a, 0x0300) }, /* PP7000 series printer */
+       { USB_DEVICE(0x0d3a, 0x0400) }, /* PP7000 series printer */
+
+       /* Kobil Systems products */
+       { USB_DEVICE(0x0d46, 0x2020) }, /* Konverter for B1 */
+       { USB_DEVICE(0x0d46, 0x2021) }, /* Konverter for KAAN */
+
+       /* Falcom Wireless Communications products */
+       { USB_DEVICE(0x0f94, 0x0001) }, /* Twist USB GPRS modem */
+       { USB_DEVICE(0x0f94, 0x0005) }, /* Samba USB GPRS modem */
+
+       /* Thurlby Thandar Instruments products */
+       { USB_DEVICE(0x103e, 0x03e8) }, /* QL355P power supply */
+
+       /* InterBiometrics products */
+       { USB_DEVICE(0x1209, 0x1002) }, /* IO Board */
+       { USB_DEVICE(0x1209, 0x1006) }, /* Mini IO Board */
+
+       /* Testo AG products */
+       { USB_DEVICE(0x128d, 0x0001) }, /* 175/177 USB interface */
+       { USB_DEVICE(0x128d, 0x0002) }, /* 330 USB interface */
+       { USB_DEVICE(0x128d, 0x0003) }, /* 435/635/735 USB interface */
+       { USB_DEVICE(0x128d, 0x0004) }, /* 845 USB interface */
+       { USB_DEVICE(0x128d, 0x0005) }, /* Service adapter */
+       { USB_DEVICE(0x128d, 0x0006) }, /* 580 USB interface */
+       { USB_DEVICE(0x128d, 0x0007) }, /* 174 USB interface */
+       { USB_DEVICE(0x128d, 0x0009) }, /* 556/560 USB interface */
+       { USB_DEVICE(0x128d, 0x000a) }, /* USB adapter */
+       { USB_DEVICE(0x128d, 0xf001) }, /* USB to serial converter */
+
+       /* Mobility products */
+       { USB_DEVICE(0x1342, 0x0202) }, /* EasiDock 200 serial port */
+
+       /* Papouch s.r.o. products */
+       { USB_DEVICE(0x5050, 0x0100) }, /* SB485 USB-485/422 Converter */
+       { USB_DEVICE(0x5050, 0x0101) }, /* AP485 USB-RS485 Converter */
+       { USB_DEVICE(0x5050, 0x0102) }, /* SB422 USB-RS422 Converter */
+       { USB_DEVICE(0x5050, 0x0103) }, /* SB485 USB-485/422 Converter */
+       { USB_DEVICE(0x5050, 0x0104) }, /* AP485 USB-RS485 Converter */
+       { USB_DEVICE(0x5050, 0x0105) }, /* SB422 USB-RS422 Converter */
+       { USB_DEVICE(0x5050, 0x0106) }, /* SB485S USB-485/422 Converter */
+       { USB_DEVICE(0x5050, 0x0107) }, /* SB485C USB-485/422 Converter */
+       { USB_DEVICE(0x5050, 0x0200) }, /* USB Device */
+       { USB_DEVICE(0x5050, 0x0300) }, /* LEC USB Converter */
+       { USB_DEVICE(0x5050, 0x0301) }, /* SB232 USB-RS232 Converter */
+       { USB_DEVICE(0x5050, 0x0400) }, /* TMU Thermometer */
+       { USB_DEVICE(0x5050, 0x0500) }, /* IRAmp Duplex */
+       { USB_DEVICE(0x5050, 0x0700) }, /* DRAK5 */
+       { USB_DEVICE(0x5050, 0x0800) }, /* QUIDO USB 8/8 */
+       { USB_DEVICE(0x5050, 0x0900) }, /* QUIDO USB 4/4 */
+       { USB_DEVICE(0x5050, 0x0A00) }, /* QUIDO USB 2/2 */
+       { USB_DEVICE(0x5050, 0x0B00) }, /* QUIDO USB 10/1 */
+       { USB_DEVICE(0x5050, 0x0C00) }, /* QUIDO USB 30/3 */
+       { USB_DEVICE(0x5050, 0x0D00) }, /* QUIDO USB 60(100)/3 */
+       { USB_DEVICE(0x5050, 0x0E00) }, /* QUIDO USB 2/16 */
+       { USB_DEVICE(0x5050, 0x0F00) }, /* QUIDO USB 3/32 */
+       { USB_DEVICE(0x5050, 0x1000) }, /* DRAK6 USB */
+       { USB_DEVICE(0x5050, 0x8000) }, /* UPS-USB Stavovy Adapter */
+       { USB_DEVICE(0x5050, 0x8001) }, /* MU Controller */
+       { USB_DEVICE(0x5050, 0x8002) }, /* SimuKey */
+       { USB_DEVICE(0x5050, 0x8003) }, /* AD4USB */
+       { USB_DEVICE(0x5050, 0x8004) }, /* GOLIATH MUX */
+       { USB_DEVICE(0x5050, 0x8005) }, /* GOLIATH MSR */
+
+       /* Evolution Robotics, Inc. products */
+       { USB_DEVICE(0xdeee, 0x0300) }, /* ER1 Control Module */
+       { USB_DEVICE(0xdeee, 0x0302) }, /* RCM4 interface */
+       { USB_DEVICE(0xdeee, 0x0303) }, /* RCM4 interface */
 };
 
 static int
index 72ddd38..7b44b48 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * $NetBSD: uhid.c,v 1.46 2001/11/13 06:24:55 lukem Exp $
  * $FreeBSD: src/sys/dev/usb/uhid.c,v 1.65 2003/11/09 09:17:22 tanimura Exp $
- * $DragonFly: src/sys/dev/usbmisc/uhid/uhid.c,v 1.29 2007/07/03 19:28:16 hasso Exp $
+ * $DragonFly: src/sys/dev/usbmisc/uhid/uhid.c,v 1.30 2007/11/05 13:32:28 hasso Exp $
  */
 
 /* Also already merged from NetBSD:
@@ -240,10 +240,9 @@ uhid_attach(device_t self)
 
        sc->sc_ep_addr = ed->bEndpointAddress;
 
-       if (uaa->vendor == USB_VENDOR_WACOM &&
-           uaa->product == USB_PRODUCT_WACOM_GRAPHIRE /* &&
+       /* The report descriptor for the Wacom Graphire is broken. */
+       if (uaa->vendor == 0x056a && uaa->product == 0x0010 /* &&
            uaa->revision == 0x???? */) { /* XXX should use revision */
-               /* The report descriptor for the Wacom Graphire is broken. */
                size = sizeof uhid_graphire_report_descr;
                desc = kmalloc(size, M_USBDEV, M_INTWAIT);
                err = USBD_NORMAL_COMPLETION;
index b926e06..de17b96 100644 (file)
@@ -26,7 +26,7 @@
  *
  * $NetBSD: umass.c,v 1.28 2000/04/02 23:46:53 augustss Exp $
  * $FreeBSD: src/sys/dev/usb/umass.c,v 1.96 2003/12/19 12:19:11 sanpei Exp $
- * $DragonFly: src/sys/dev/usbmisc/umass/umass.c,v 1.27 2007/07/02 23:52:05 hasso Exp $
+ * $DragonFly: src/sys/dev/usbmisc/umass/umass.c,v 1.28 2007/11/05 13:32:28 hasso Exp $
  */
 
 /*
@@ -255,15 +255,11 @@ typedef int (*command_transform_f)        (struct umass_softc *sc,
 
 
 struct umass_devdescr_t {
-       u_int32_t       vid;
-#      define VID_WILDCARD     0xffffffff
-#      define VID_EOT          0xfffffffe
-       u_int32_t       pid;
-#      define PID_WILDCARD     0xffffffff
-#      define PID_EOT          0xfffffffe
-       u_int32_t       rid;
-#      define RID_WILDCARD     0xffffffff
-#      define RID_EOT          0xfffffffe
+       u_int32_t       vendor;
+       u_int32_t       product;
+       u_int32_t       release;
+#      define WILDCARD_ID      0xffffffff
+#      define EOT_ID           0xfffffffe
 
        /* wire and command protocol */
        u_int16_t       proto;
@@ -312,105 +308,129 @@ struct umass_devdescr_t {
 };
 
 static struct umass_devdescr_t umass_devdescrs[] = {
-       { USB_VENDOR_ASAHIOPTICAL, PID_WILDCARD, RID_WILDCARD,
-         UMASS_PROTO_ATAPI | UMASS_PROTO_CBI_I,
-         RS_NO_CLEAR_UA
+       /* All Asahi Optical products */
+       { .vendor = 0x0a17, .product = WILDCARD_ID, .release = WILDCARD_ID,
+         .proto  = UMASS_PROTO_ATAPI | UMASS_PROTO_CBI_I,
+         .quirks = RS_NO_CLEAR_UA
        },
-       { USB_VENDOR_FUJIPHOTO, USB_PRODUCT_FUJIPHOTO_MASS0100, RID_WILDCARD,
-         UMASS_PROTO_ATAPI | UMASS_PROTO_CBI_I,
-         RS_NO_CLEAR_UA
+       /* Fujiphoto mass storage products */
+       { .vendor = 0x04cb, .product = 0x0100, .release = WILDCARD_ID,
+         .proto  = UMASS_PROTO_ATAPI | UMASS_PROTO_CBI_I,
+         .quirks = RS_NO_CLEAR_UA
        },
-       { USB_VENDOR_GENESYS,  USB_PRODUCT_GENESYS_GL641USB2IDE, RID_WILDCARD,
-         UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-         FORCE_SHORT_INQUIRY | NO_START_STOP | IGNORE_RESIDUE
+       /* Genesys Logic GL641USB USB-IDE Bridge */
+       { .vendor = 0x05e3, .product = 0x0702, .release = WILDCARD_ID,
+         .proto  = UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
+         .quirks = FORCE_SHORT_INQUIRY | NO_START_STOP | IGNORE_RESIDUE
        },
-       { USB_VENDOR_GENESYS,  USB_PRODUCT_GENESYS_GL641USB, RID_WILDCARD,
-         UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-         FORCE_SHORT_INQUIRY | NO_START_STOP | IGNORE_RESIDUE
+       /* Genesys Logic GL641USB CompactFlash Card Reader */
+       { .vendor = 0x05e3, .product = 0x0700, .release = WILDCARD_ID,
+         .proto  = UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
+         .quirks = FORCE_SHORT_INQUIRY | NO_START_STOP | IGNORE_RESIDUE
        },
-       { USB_VENDOR_HITACHI, USB_PRODUCT_HITACHI_DVDCAM_USB, RID_WILDCARD,
-         UMASS_PROTO_ATAPI | UMASS_PROTO_CBI_I,
-         NO_INQUIRY
+       /* Hitachi DVDCAM USB HS Interface */
+       { .vendor = 0x04a4, .product = 0x001e, .release = WILDCARD_ID,
+         .proto  = UMASS_PROTO_ATAPI | UMASS_PROTO_CBI_I,
+         .quirks = NO_INQUIRY
        },
-       { USB_VENDOR_HP, USB_PRODUCT_HP_CDW8200, RID_WILDCARD,
-         UMASS_PROTO_ATAPI | UMASS_PROTO_CBI_I,
-         NO_TEST_UNIT_READY | NO_START_STOP
+       /* HP CD-Writer Plus 8200e */
+       { .vendor = 0x03f0, .product = 0x0207, .release = WILDCARD_ID,
+         .proto  = UMASS_PROTO_ATAPI | UMASS_PROTO_CBI_I,
+         .quirks = NO_TEST_UNIT_READY | NO_START_STOP
        },
-       { USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_USBCABLE, RID_WILDCARD,
-         UMASS_PROTO_ATAPI | UMASS_PROTO_CBI,
-         NO_TEST_UNIT_READY | NO_START_STOP | ALT_IFACE_1
+       /* In-System USB cable */
+       { .vendor = 0x05ab, .product = 0x081a, .release = WILDCARD_ID,
+         .proto  = UMASS_PROTO_ATAPI | UMASS_PROTO_CBI,
+         .quirks = NO_TEST_UNIT_READY | NO_START_STOP | ALT_IFACE_1
        },
-       { USB_VENDOR_IOMEGA, USB_PRODUCT_IOMEGA_ZIP100, RID_WILDCARD,
-         /* XXX This is not correct as there are Zip drives that use ATAPI.
-          */
-         UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-         NO_TEST_UNIT_READY
+       /* Iomega Zip 100 */
+       { .vendor = 0x059b, .product = 0x0001, .release = WILDCARD_ID,
+         /* XXX This is not correct as there are Zip drives that use ATAPI. */
+         .proto  = UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
+         .quirks = NO_TEST_UNIT_READY
        },
-       { USB_VENDOR_LOGITEC, USB_PRODUCT_LOGITEC_LDR_H443U2, RID_WILDCARD,
-         UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-         NO_QUIRKS
+       /* Logitech DVD Multi-plus unit LDR-H443U2 */
+       { .vendor = 0x0789, .product = 0x00b3, .release = WILDCARD_ID,
+         .proto  = UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
+         .quirks = NO_QUIRKS
        },
-       { USB_VENDOR_MELCO,  USB_PRODUCT_MELCO_DUBPXXG, RID_WILDCARD,
-         UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-         FORCE_SHORT_INQUIRY | NO_START_STOP | IGNORE_RESIDUE
+       /* Melco USB-IDE Bridge: DUB-PxxG */
+       { .vendor = 0x0411, .product = 0x001c, .release = WILDCARD_ID,
+         .proto  = UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
+         .quirks = FORCE_SHORT_INQUIRY | NO_START_STOP | IGNORE_RESIDUE
        },
-       { USB_VENDOR_MICROTECH, USB_PRODUCT_MICROTECH_DPCM, RID_WILDCARD,
-         UMASS_PROTO_SCSI | UMASS_PROTO_CBI,
-         NO_TEST_UNIT_READY | NO_START_STOP
+       /* Microtech USB CameraMate */
+       { .vendor = 0x07af, .product = 0x0006, .release = WILDCARD_ID,
+         .proto  = UMASS_PROTO_SCSI | UMASS_PROTO_CBI,
+         .quirks = NO_TEST_UNIT_READY | NO_START_STOP
        },
-       { USB_VENDOR_MSYSTEMS, USB_PRODUCT_MSYSTEMS_DISKONKEY, RID_WILDCARD,
-         UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-         IGNORE_RESIDUE | NO_GETMAXLUN | RS_NO_CLEAR_UA
+       /* M-Systems DiskOnKey */
+       { .vendor = 0x08ec, .product = 0x0010, .release = WILDCARD_ID,
+         .proto  = UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
+         .quirks = IGNORE_RESIDUE | NO_GETMAXLUN | RS_NO_CLEAR_UA
        },
-       { USB_VENDOR_MSYSTEMS, USB_PRODUCT_MSYSTEMS_DISKONKEY2, RID_WILDCARD,
-         UMASS_PROTO_ATAPI | UMASS_PROTO_BBB,
-         NO_QUIRKS
+       /* M-Systems DiskOnKey */
+       { .vendor = 0x08ec, .product = 0x0011, .release = WILDCARD_ID,
+         .proto  = UMASS_PROTO_ATAPI | UMASS_PROTO_BBB,
+         .quirks = NO_QUIRKS
        },
-       { USB_VENDOR_OLYMPUS, USB_PRODUCT_OLYMPUS_C1, RID_WILDCARD,
-         UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-         WRONG_CSWSIG
+       /* Olympus C-1 Digital Camera */
+       { .vendor = 0x07b4, .product = 0x0102, .release = WILDCARD_ID,
+         .proto  = UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
+         .quirks = WRONG_CSWSIG
        },
-       { USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_KXLCB20AN, RID_WILDCARD,
-         UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-         NO_QUIRKS
+       /* Panasonic CD-R Drive KXL-CB20AN */
+       { .vendor = 0x04da, .product = 0x0d0a, .release = WILDCARD_ID,
+         .proto  = UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
+         .quirks = NO_QUIRKS
        },
-       { USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_KXLCB35AN, RID_WILDCARD,
-         UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-         NO_QUIRKS
+       /* Panasonic DVD-ROM & CD-R/RW */
+       { .vendor = 0x04da, .product = 0x0d0e, .release = WILDCARD_ID,
+         .proto  = UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
+         .quirks = NO_QUIRKS
        },
-       { USB_VENDOR_PEN, USB_PRODUCT_PEN_ATTACHE, RID_WILDCARD,
-         UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-         IGNORE_RESIDUE
+       /* Pen USB 2.0 Flash Drive */
+       { .vendor = 0x0d7d, .product = 0x1300, .release = WILDCARD_ID,
+         .proto  = UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
+         .quirks = IGNORE_RESIDUE
        },
-       { USB_VENDOR_SCANLOGIC, USB_PRODUCT_SCANLOGIC_SL11R, RID_WILDCARD,
-         UMASS_PROTO_ATAPI | UMASS_PROTO_CBI_I,
-         NO_QUIRKS
+       /* ScanLogic SL11R-IDE */
+       { .vendor = 0x04ce, .product = 0x0002, .release = WILDCARD_ID,
+         .proto  = UMASS_PROTO_ATAPI | UMASS_PROTO_CBI_I,
+         .quirks = NO_QUIRKS
        },
-       { USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSB, RID_WILDCARD,
-         UMASS_PROTO_ATAPI | UMASS_PROTO_CBI_I,
-         NO_TEST_UNIT_READY | NO_START_STOP | SHUTTLE_INIT
+       /* Shuttle Technology E-USB Bridge */
+       { .vendor = 0x04e6, .product = 0x0001, .release = WILDCARD_ID,
+         .proto  = UMASS_PROTO_ATAPI | UMASS_PROTO_CBI_I,
+         .quirks = NO_TEST_UNIT_READY | NO_START_STOP | SHUTTLE_INIT
        },
-       { USB_VENDOR_SIGMATEL, USB_PRODUCT_SIGMATEL_I_BEAD100, RID_WILDCARD,
-         UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-         SHUTTLE_INIT
+       /* Sigmatel i-Bead 100 MP3 Player */
+       { .vendor = 0x066f, .product = 0x8008, .release = WILDCARD_ID,
+         .proto  = UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
+         .quirks = SHUTTLE_INIT
        },
-       { USB_VENDOR_SONY, USB_PRODUCT_SONY_DSC, RID_WILDCARD,
-         UMASS_PROTO_RBC | UMASS_PROTO_CBI,
-         NO_QUIRKS
+       /* Sony DSC cameras */
+       { .vendor = 0x054c, .product = 0x0010, .release = WILDCARD_ID,
+         .proto  = UMASS_PROTO_RBC | UMASS_PROTO_CBI,
+         .quirks = NO_QUIRKS
        },
-       { USB_VENDOR_SONY, USB_PRODUCT_SONY_MSC, RID_WILDCARD,
-         UMASS_PROTO_RBC | UMASS_PROTO_CBI,
-         NO_QUIRKS
+       /* Sony MSC memory stick slot */
+       { .vendor = 0x054c, .product = 0x0032, .release = WILDCARD_ID,
+         .proto  = UMASS_PROTO_RBC | UMASS_PROTO_CBI,
+         .quirks = NO_QUIRKS
        },
-       { USB_VENDOR_TREK, USB_PRODUCT_TREK_THUMBDRIVE_8MB, RID_WILDCARD,
-          UMASS_PROTO_ATAPI | UMASS_PROTO_BBB,
-         IGNORE_RESIDUE
+       /* Trek Technology ThumbDrive 8MB */
+       { .vendor = 0x0a16, .product = 0x9988, .release = WILDCARD_ID,
+          .proto  = UMASS_PROTO_ATAPI | UMASS_PROTO_BBB,
+         .quirks = IGNORE_RESIDUE
        },
-       { USB_VENDOR_YANO,  USB_PRODUCT_YANO_U640MO, RID_WILDCARD,
-         UMASS_PROTO_ATAPI | UMASS_PROTO_CBI_I,
-         FORCE_SHORT_INQUIRY
+       /* Yano U640MO-03 */
+       { .vendor = 0x094f, .product = 0x0101, .release = WILDCARD_ID,
+         .proto  = UMASS_PROTO_ATAPI | UMASS_PROTO_CBI_I,
+         .quirks = FORCE_SHORT_INQUIRY
        },
-       { VID_EOT, PID_EOT, RID_EOT, 0, 0 }
+       { .vendor = EOT_ID, .product = EOT_ID, .release = EOT_ID,
+         .proto  = 0, .quirks = 0 }
 };
 
 
@@ -718,8 +738,7 @@ umass_match_proto(struct umass_softc *sc, usbd_interface_handle iface,
        /* An entry specifically for Y-E Data devices as they don't fit in the
         * device description table.
         */
-       if (UGETW(dd->idVendor) == USB_VENDOR_YEDATA
-           && UGETW(dd->idProduct) == USB_PRODUCT_YEDATA_FLASHBUSTERU) {
+       if (UGETW(dd->idVendor) == 0x057b && UGETW(dd->idProduct) == 0x0000) {
 
                /* Revisions < 1.28 do not handle the inerrupt endpoint
                 * very well.
@@ -744,22 +763,22 @@ umass_match_proto(struct umass_softc *sc, usbd_interface_handle iface,
        /* Check the list of supported devices for a match. While looking,
         * check for wildcarded and fully matched. First match wins.
         */
-       for (i = 0; umass_devdescrs[i].vid != VID_EOT && !found; i++) {
-               if (umass_devdescrs[i].vid == VID_WILDCARD &&
-                   umass_devdescrs[i].pid == PID_WILDCARD &&
-                   umass_devdescrs[i].rid == RID_WILDCARD) {
+       for (i = 0; umass_devdescrs[i].vendor != EOT_ID && !found; i++) {
+               if (umass_devdescrs[i].vendor == WILDCARD_ID &&
+                   umass_devdescrs[i].product == WILDCARD_ID &&
+                   umass_devdescrs[i].release == WILDCARD_ID) {
                        kprintf("umass: ignoring invalid wildcard quirk\n");
                        continue;
                }
-               if ((umass_devdescrs[i].vid == UGETW(dd->idVendor) ||
-                    umass_devdescrs[i].vid == VID_WILDCARD)
-                && (umass_devdescrs[i].pid == UGETW(dd->idProduct) ||
-                    umass_devdescrs[i].pid == PID_WILDCARD)) {
-                       if (umass_devdescrs[i].rid == RID_WILDCARD) {
+               if ((umass_devdescrs[i].vendor == UGETW(dd->idVendor) ||
+                    umass_devdescrs[i].vendor == WILDCARD_ID)
+                && (umass_devdescrs[i].product == UGETW(dd->idProduct) ||
+                    umass_devdescrs[i].product == WILDCARD_ID)) {
+                       if (umass_devdescrs[i].release == WILDCARD_ID) {
                                sc->proto = umass_devdescrs[i].proto;
                                sc->quirks = umass_devdescrs[i].quirks;
                                return (UMATCH_VENDOR_PRODUCT);
-                       } else if (umass_devdescrs[i].rid ==
+                       } else if (umass_devdescrs[i].release ==
                            UGETW(dd->bcdDevice)) {
                                sc->proto = umass_devdescrs[i].proto;
                                sc->quirks = umass_devdescrs[i].quirks;
index 5964fb5..7bd3be8 100644 (file)
@@ -24,7 +24,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/usb/umct.c,v 1.12 2006/09/07 00:06:42 imp Exp $
- * $DragonFly: src/sys/dev/usbmisc/umct/umct.c,v 1.12 2007/08/19 17:16:43 hasso Exp $
+ * $DragonFly: src/sys/dev/usbmisc/umct/umct.c,v 1.13 2007/11/05 13:32:28 hasso Exp $
  */
 
 /*
@@ -107,16 +107,12 @@ static struct ucom_callback umct_callback = {
        NULL                    /* ucom_write */
 };
 
-static const struct umct_product {
-       uint16_t        vendor;
-       uint16_t        product;
-} umct_products[] = {
-       { USB_VENDOR_MCT, USB_PRODUCT_MCT_USB232 },
-       { USB_VENDOR_MCT, USB_PRODUCT_MCT_SITECOM_USB232 },
-       { USB_VENDOR_MCT, USB_PRODUCT_MCT_DU_H3SP_USB232 },
-       { USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F5U109 },
-       { USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F5U409 },
-       { 0, 0 }
+static const struct usb_devno umct_products[] = {
+       { USB_DEVICE(0x050d, 0x0109) }, /* Belkin F5U109 */
+       { USB_DEVICE(0x050d, 0x0409) }, /* Belkin F5U409 */
+       { USB_DEVICE(0x0711, 0x0200) }, /* D-Link DU-H3SP USB BAY Hub */
+       { USB_DEVICE(0x0711, 0x0210) }, /* MCT USB-232 */
+       { USB_DEVICE(0x0711, 0x0230) }, /* Sitecom USB-232 */
 };
 
 static device_probe_t  umct_match;
@@ -145,19 +141,12 @@ static int
 umct_match(device_t self)
 {
        struct usb_attach_arg *uaa = device_get_ivars(self);
-       int i;
 
        if (uaa->iface != NULL)
                return (UMATCH_NONE);
 
-       for (i = 0; umct_products[i].vendor != 0; i++) {
-               if (umct_products[i].vendor == uaa->vendor &&
-                   umct_products[i].product == uaa->product) {
-                       return (UMATCH_VENDOR_PRODUCT);
-               }
-       }
-
-       return (UMATCH_NONE);
+       return (usb_lookup(umct_products, uaa->vendor, uaa->product) != NULL) ?
+           UMATCH_VENDOR_PRODUCT : UMATCH_NONE;
 }
 
 static int
@@ -246,8 +235,11 @@ umct_attach(device_t self)
 
                if (UE_GET_DIR(ed->bEndpointAddress) == UE_DIR_OUT) {
                        ucom->sc_bulkout_no = ed->bEndpointAddress;
-                       if (uaa->product == USB_PRODUCT_MCT_SITECOM_USB232)
-                               ucom->sc_obufsize = 16; /* device is broken */
+                       /* MCT Sitecom USB-232 device is broken. The bulk out
+                        * endpoint descriptor reports 32 bytes, but data will
+                        * get dropped if this value is used. */
+                       if (uaa->vendor == 0x0711 && uaa->product == 0x0230)
+                               ucom->sc_obufsize = 16;
                        else
                                ucom->sc_obufsize = UGETW(ed->wMaxPacketSize);
                        continue;
index dfcfd50..2d33392 100644 (file)
@@ -1,4 +1,4 @@
-/*     $DragonFly: src/sys/dev/usbmisc/umsm/Attic/umsm.c,v 1.2 2007/08/19 17:16:43 hasso Exp $ */
+/*     $DragonFly: src/sys/dev/usbmisc/umsm/Attic/umsm.c,v 1.3 2007/11/05 13:32:28 hasso Exp $ */
 /*     $OpenBSD: umsm.c,v 1.15 2007/06/14 10:11:16 mbalmer Exp $       */
 
 /*
@@ -63,27 +63,27 @@ struct ucom_callback umsm_callback = {
 };
 
 static const struct usb_devno umsm_devs[] = {
-       { USB_VENDOR_AIRPRIME,  USB_PRODUCT_AIRPRIME_PC5220 },
-       { USB_VENDOR_DELL,      USB_PRODUCT_DELL_W5500 },
-       { USB_VENDOR_KYOCERA2,  USB_PRODUCT_KYOCERA2_KPC650 },
-       { USB_VENDOR_NOVATEL,   USB_PRODUCT_NOVATEL_EXPRESSCARD },
-       { USB_VENDOR_NOVATEL,   USB_PRODUCT_NOVATEL_MERLINV620 },
-       { USB_VENDOR_NOVATEL,   USB_PRODUCT_NOVATEL_S720 },
-       { USB_VENDOR_NOVATEL,   USB_PRODUCT_NOVATEL_U720 },
-       { USB_VENDOR_NOVATEL,   USB_PRODUCT_NOVATEL_XU870 },
-       { USB_VENDOR_NOVATEL,   USB_PRODUCT_NOVATEL_ES620 },
-       { USB_VENDOR_QUALCOMM,  USB_PRODUCT_QUALCOMM_MSM_HSDPA },
-       { USB_VENDOR_SIERRA,    USB_PRODUCT_SIERRA_EM5625 },
-       { USB_VENDOR_SIERRA,    USB_PRODUCT_SIERRA_AIRCARD_580 },
-       { USB_VENDOR_SIERRA,    USB_PRODUCT_SIERRA_AIRCARD_595 },
-       { USB_VENDOR_SIERRA,    USB_PRODUCT_SIERRA_AIRCARD_875 },
-       { USB_VENDOR_SIERRA,    USB_PRODUCT_SIERRA_MC5720 },
-       { USB_VENDOR_SIERRA,    USB_PRODUCT_SIERRA_MC5720_2 },
-       { USB_VENDOR_SIERRA,    USB_PRODUCT_SIERRA_MC5725 },
-       { USB_VENDOR_SIERRA,    USB_PRODUCT_SIERRA_MC8755 },
-       { USB_VENDOR_SIERRA,    USB_PRODUCT_SIERRA_MC8755_2 },
-       { USB_VENDOR_SIERRA,    USB_PRODUCT_SIERRA_MC8765 },
-       { USB_VENDOR_SIERRA,    USB_PRODUCT_SIERRA_MC8775 },
+       { USB_DEVICE(0x05c6, 0x6613) }, /* Qualcomm HSDPA MSM */
+       { USB_DEVICE(0x0c88, 0x17da) }, /* Kyocera KPC650 */
+       { USB_DEVICE(0x0f3d, 0x0112) }, /* AirPrime PC5220 */
+       { USB_DEVICE(0x1199, 0x0017) }, /* Sierra Wireless EM5625 */
+       { USB_DEVICE(0x1199, 0x0018) }, /* Sierra Wireless MC5720 */
+       { USB_DEVICE(0x1199, 0x0019) }, /* Sierra Wireless AirCard 595 */
+       { USB_DEVICE(0x1199, 0x0020) }, /* Sierra Wireless MC5725 */
+       { USB_DEVICE(0x1199, 0x0112) }, /* Sierra Wireless Aircard 580 */
+       { USB_DEVICE(0x1199, 0x0218) }, /* Sierra Wireless MC5720 */
+       { USB_DEVICE(0x1199, 0x6802) }, /* Sierra Wireless MC8755 */
+       { USB_DEVICE(0x1199, 0x6803) }, /* Sierra Wireless MC8765 */
+       { USB_DEVICE(0x1199, 0x6804) }, /* Sierra Wireless MC8755 */
+       { USB_DEVICE(0x1199, 0x6812) }, /* Sierra Wireless MC8775 */
+       { USB_DEVICE(0x1199, 0x6820) }, /* Sierra Wireless Aircard 875 */
+       { USB_DEVICE(0x1410, 0x1100) }, /* Novatel Wireless ExpressCard 3G */
+       { USB_DEVICE(0x1410, 0x1110) }, /* Novatel Wireless Merlin V620 */
+       { USB_DEVICE(0x1410, 0x1130) }, /* Novatel Wireless S720 */
+       { USB_DEVICE(0x1410, 0x1430) }, /* Novatel Wireless XU870 */
+       { USB_DEVICE(0x1410, 0x2100) }, /* Novatel Wireless ES620 */
+       { USB_DEVICE(0x1410, 0x2110) }, /* Novatel Wireless U720 */
+       { USB_DEVICE(0x413c, 0x8115) }, /* Dell W5500 */
 };
 
 static device_probe_t umsm_match;
index 05c03f3..f1edfed 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * $NetBSD: uplcom.c,v 1.21 2001/11/13 06:24:56 lukem Exp $
  * $FreeBSD: src/sys/dev/usb/uplcom.c,v 1.39 2006/09/07 00:06:42 imp Exp $
- * $DragonFly: src/sys/dev/usbmisc/uplcom/uplcom.c,v 1.22 2007/08/19 17:16:43 hasso Exp $
+ * $DragonFly: src/sys/dev/usbmisc/uplcom/uplcom.c,v 1.23 2007/11/05 13:32:28 hasso Exp $
  */
 
 /*-
@@ -208,90 +208,52 @@ struct ucom_callback uplcom_callback = {
 };
 
 static const struct usb_devno uplcom_devs[] = {
-       /* Alcatel One Touch 535/735 phones */
-       { USB_VENDOR_ALCATEL, USB_PRODUCT_ALCATEL_OT535 },
-       /* Alcor AU9720 USB to serial controller */
-       { USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_AU9720 },
-       /* Anchor serial */
-       { USB_VENDOR_ANCHOR, USB_PRODUCT_ANCHOR_SERIAL },
-       /* Aten UC232A USB to serial adapter */
-       { USB_VENDOR_ATEN, USB_PRODUCT_ATEN_UC232A },
-       /* Belkin F5U257 USB to serial adapter */
-       { USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F5U257 },
-       /* ELECOM UC-SGT USB to serial adapters */
-       { USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_UCSGT },
-       { USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_UCSGT0 },
-       /* HAL Corporation Crossam2+USB */
-       { USB_VENDOR_HAL, USB_PRODUCT_HAL_IMR001 },
-       /* Huawei UMTS/HSDPA adapters */
-       { USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_MOBILE },
-       /* I/O DATA USB-RSAQ USB to serial cable */
-       { USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBRSAQ },
-       /* I/O DATA USB-RSAQ5 USB to serial cable */
-       { USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBRSAQ5 },
-       /* Itegno GSM/GPRS modem */
-       { USB_VENDOR_ITEGNO, USB_PRODUCT_ITEGNO_GSM },
-       /* Itegno CDMA 1x card */
-       { USB_VENDOR_ITEGNO, USB_PRODUCT_ITEGNO_CDMA },
-       /* Leadtek 9531 GPS */
-       { USB_VENDOR_LEADTEK, USB_PRODUCT_LEADTEK_9531 },
-       /* Mobile Action MA-620 IrDA */
-       { USB_VENDOR_MOBILEACTION, USB_PRODUCT_MOBILEACTION_MA620 },
-       /* Willcom W-SIM */
-       { USB_VENDOR_NETINDEX, USB_PRODUCT_NETINDEX_WSIM },
-       /* Nokia CA-42 USB data cable clones*/
-       { USB_VENDOR_NOKIA, USB_PRODUCT_NOKIA_CA42 },
-       /* Panasonic 50" touch panel */
-       { USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_TYTP50P6S },
-       /* PLX CA-42 USB data cable clone */
-       { USB_VENDOR_PLX, USB_PRODUCT_PLX_CA42 },
-       /* Unbranded DCU-11 clone */
-       { USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_DCU11 },
-       /* IOGEAR/ATEN UC-232A, ST Lab USB-SERIAL-X etc */
-       { USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_PL2303 },
-       /* Microsoft OEM Pharos 360 GPS */
-       { USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_PL2303X },
-       /* I/O DATA USB-RSAQ2 USB to serial cable */
-       { USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_RSAQ2 },
-       /* I/O DATA USB-RSAQ3 USB to serial cable */
-       { USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_RSAQ3 },
-       /* RADIOSHACK USB cable */
-       { USB_VENDOR_RADIOSHACK, USB_PRODUCT_RADIOSHACK_USBCABLE },
-       /* RATOC REX-USB60 USB to serial cable */
-       { USB_VENDOR_RATOC, USB_PRODUCT_RATOC_REXUSB60 },
-       /* Sagem USB data cables */
-       { USB_VENDOR_SAGEM, USB_PRODUCT_SAGEM_USBSERIAL },
-       /* Samsung I330 smartphone cradle */
-       { USB_VENDOR_SAMSUNG, USB_PRODUCT_SAMSUNG_I330 },
-       /* Siemens SX1 cellphone */
-       { USB_VENDOR_SIEMENS3, USB_PRODUCT_SIEMENS3_SX1 },
-       /* Siemens x65 series cellphones */
-       { USB_VENDOR_SIEMENS3, USB_PRODUCT_SIEMENS3_X65 },
-       /* Siemens x75 series cellphones */
-       { USB_VENDOR_SIEMENS3, USB_PRODUCT_SIEMENS3_X75 },
-       /* Sitecom USB to serial cable */
-       { USB_VENDOR_SITECOM, USB_PRODUCT_SITECOM_CN104 },
-       /* Smart Technologies USB to serial adapter */
-       { USB_VENDOR_SMART, USB_PRODUCT_SMART_PL2303 },
-       /* Sony-Ericsson DCU-10 and DCU-11 USB data cables */
-       { USB_VENDOR_SUSTEEN, USB_PRODUCT_SUSTEEN_DCU10 },
-       /* Susteen Datapilot Universal-2 Phone Cable */
-       { USB_VENDOR_SUSTEEN, USB_PRODUCT_SUSTEEN_U2 },
-       /* SOURCENEXT KeikaiDenwa 8 */
-       { USB_VENDOR_SOURCENEXT, USB_PRODUCT_SOURCENEXT_KEIKAI8 },
-       /* SOURCENEXT KeikaiDenwa 8 with charger */
-       { USB_VENDOR_SOURCENEXT, USB_PRODUCT_SOURCENEXT_KEIKAI8_CHG },
-       /* Speed Dragon Multimedia MS3303H USB to serial controller */
-       { USB_VENDOR_SPEEDDRAGON, USB_PRODUCT_SPEEDDRAGON_MS3303H },
-       /* Syntech CPT-8001C barcode scanner USB IR cradle */
-       { USB_VENDOR_SYNTECH, USB_PRODUCT_SYNTECH_SERIAL },
-       /* TDK USB-PHS adapter UHA6400 */
-       { USB_VENDOR_TDK, USB_PRODUCT_TDK_UHA6400 },
-       /* TDK USB-PDC adapter UPA9664 */
-       { USB_VENDOR_TDK, USB_PRODUCT_TDK_UPA9664 },
-       /* Tripp-Lite U209-000-R USB to serial cable */
-       { USB_VENDOR_TRIPPLITE, USB_PRODUCT_TRIPPLITE_U209 },
-       { 0, 0 }
+       { USB_DEVICE(0x0413, 0x2101) }, /* Leadtek 9531 GPS */
+       { USB_DEVICE(0x0421, 0x1234) }, /* Nokia CA-42 USB data cable clones*/
+       { USB_DEVICE(0x04bb, 0x0a03) }, /* I/O DATA USB-RSAQ USB to serial */
+       { USB_DEVICE(0x04bb, 0x0a0e) }, /* I/O DATA USB-RSAQ5 USB to serial */
+       { USB_DEVICE(0x04bf, 0x0115) }, /* TDK USB-PDC adapter UPA9664 */
+       { USB_DEVICE(0x04bf, 0x0117) }, /* TDK USB-PHS adapter UHA6400 */
+       { USB_DEVICE(0x04da, 0x3900) }, /* Panasonic 50" touch panel */
+       { USB_DEVICE(0x04e8, 0x8001) }, /* Samsung I330 smartphone cradle */
+       { USB_DEVICE(0x050d, 0x0257) }, /* Belkin F5U257 USB to serial */
+       { USB_DEVICE(0x0547, 0x2008) }, /* Anchor serial */
+       { USB_DEVICE(0x0557, 0x2008) }, /* Aten UC232A USB to serial */
+       { USB_DEVICE(0x056e, 0x5003) }, /* ELECOM UC-SGT USB to serial */
+       { USB_DEVICE(0x056e, 0x5004) }, /* ELECOM UC-SGT USB to serial */
+       { USB_DEVICE(0x0584, 0xb000) }, /* RATOC REX-USB60 USB to serial */
+       { USB_DEVICE(0x058f, 0x9720) }, /* Alcor AU9720 USB to serial */
+       { USB_DEVICE(0x067b, 0x04bb) }, /* I/O DATA USB-RSAQ2 USB to serial */
+       { USB_DEVICE(0x067b, 0x1234) }, /* Unbranded DCU-11 clone */
+       { USB_DEVICE(0x067b, 0x2303) }, /* IOGEAR/ATEN UC-232A, ST Lab
+                                          USB-SERIAL-X etc */
+       { USB_DEVICE(0x067b, 0xaaa0) }, /* Microsoft OEM Pharos 360 GPS */
+       { USB_DEVICE(0x067b, 0xaaa2) }, /* I/O DATA USB-RSAQ3 USB to serial */
+       { USB_DEVICE(0x0731, 0x0528) }, /* Sony-Ericsson DCU-10/DCU-11 */
+       { USB_DEVICE(0x0731, 0x2003) }, /* Susteen Datapilot Universal-2 Phone
+                                          Cable */
+       { USB_DEVICE(0x0745, 0x0001) }, /* Syntech CPT-8001C barcode scanner
+                                          USB cradle */
+       { USB_DEVICE(0x079b, 0x0027) }, /* Sagem USB data cables */
+       { USB_DEVICE(0x0833, 0x012e) }, /* SOURCENEXT KeikaiDenwa 8 with
+                                          charger */
+       { USB_DEVICE(0x0833, 0x039f) }, /* SOURCENEXT KeikaiDenwa 8 */
+       { USB_DEVICE(0x0b41, 0x0011) }, /* HAL Corporation Crossam2+USB */
+       { USB_DEVICE(0x0b8c, 0x2303) }, /* Smart Technologies USB to serial */
+       { USB_DEVICE(0x0df7, 0x0620) }, /* Mobile Action MA-620 IrDA */
+       { USB_DEVICE(0x0e55, 0x110b) }, /* Speed Dragon MS3303H */
+       { USB_DEVICE(0x0eba, 0x1080) }, /* Itegno GSM/GPRS modem */
+       { USB_DEVICE(0x0eba, 0x2080) }, /* Itegno CDMA 1x card */
+       { USB_DEVICE(0x10b5, 0xac70) }, /* PLX CA-42 USB data cable clone */
+       { USB_DEVICE(0x11f5, 0x0001) }, /* Siemens SX1 cellphone */
+       { USB_DEVICE(0x11f5, 0x0003) }, /* Siemens x65 series cellphones */
+       { USB_DEVICE(0x11f5, 0x0004) }, /* Siemens x75 series cellphones */
+       { USB_DEVICE(0x11f6, 0x2001) }, /* Willcom W-SIM */
+       { USB_DEVICE(0x11f7, 0x02df) }, /* Alcatel One Touch 535/735 phones */
+       { USB_DEVICE(0x12d1, 0x1001) }, /* Huawei UMTS/HSDPA adapters */
+       { USB_DEVICE(0x1453, 0x4026) }, /* RADIOSHACK USB cable */
+       { USB_DEVICE(0x2478, 0x2008) }, /* Tripp-Lite U209-000-R */
+       { USB_DEVICE(0x6189, 0x2068) }, /* Sitecom USB to serial cable */
 };
 
 static device_probe_t uplcom_match;
index 4a458f8..c9924b5 100644 (file)
@@ -30,7 +30,7 @@
 
 /*
  * $FreeBSD: src/sys/dev/usb/urio.c,v 1.28 2003/08/25 22:01:06 joe Exp $
- * $DragonFly: src/sys/dev/usbmisc/urio/urio.c,v 1.23 2007/08/07 10:42:41 hasso Exp $
+ * $DragonFly: src/sys/dev/usbmisc/urio/urio.c,v 1.24 2007/11/05 13:32:28 hasso Exp $
  */
 
 /*
@@ -148,29 +148,25 @@ static driver_t urio_driver = {
        sizeof(struct urio_softc)
 };
 
+static const struct usb_devno urio_devs[] = {
+       { USB_DEVICE(0x045a, 0x5001) }, /* Diamond Multimedia Rio 600 */
+       { USB_DEVICE(0x045a, 0x5002) }, /* Diamond Multimedia Rio 800 */
+       { USB_DEVICE(0x0841, 0x0001) }, /* Diamond Multimedia Rio 500 */
+};
+
 MODULE_DEPEND(urio, usb, 1, 1, 1);
 
 static int
 urio_match(device_t self)
 {
        struct usb_attach_arg *uaa = device_get_ivars(self);
-       usb_device_descriptor_t *dd;
 
        DPRINTFN(10,("urio_match\n"));
-       if (!uaa->iface)
-               return UMATCH_NONE;
-
-       dd = usbd_get_device_descriptor(uaa->device);
-
-       if (dd &&
-           ((UGETW(dd->idVendor) == USB_VENDOR_DIAMOND &&
-           UGETW(dd->idProduct) == USB_PRODUCT_DIAMOND_RIO500USB) ||
-           (UGETW(dd->idVendor) == USB_VENDOR_DIAMOND2 &&
-             (UGETW(dd->idProduct) == USB_PRODUCT_DIAMOND2_RIO600USB ||
-             UGETW(dd->idProduct) == USB_PRODUCT_DIAMOND2_RIO800USB))))
-               return UMATCH_VENDOR_PRODUCT;
-       else
-               return UMATCH_NONE;
+       if (uaa->iface == NULL)
+               return (UMATCH_NONE);
+
+       return (usb_lookup(urio_devs, uaa->vendor, uaa->product) != NULL ?
+               UMATCH_VENDOR_PRODUCT : UMATCH_NONE);
 }
 
 static int
index 7e4bd3f..e7ed215 100644 (file)
@@ -1,7 +1,7 @@
 /* 
  * $NetBSD: uscanner.c,v 1.30 2002/07/11 21:14:36 augustss Exp $
  * $FreeBSD: src/sys/dev/usb/uscanner.c,v 1.48 2003/12/22 19:58:27 sanpei Exp $
- * $DragonFly: src/sys/dev/usbmisc/uscanner/uscanner.c,v 1.23 2007/08/07 10:42:41 hasso Exp $
+ * $DragonFly: src/sys/dev/usbmisc/uscanner/uscanner.c,v 1.24 2007/11/05 13:32:28 hasso Exp $
  */
 
 /* Also already merged from NetBSD:
@@ -92,126 +92,112 @@ struct uscan_info {
 /* Table of scanners that may work with this driver. */
 static const struct uscan_info uscanner_devs[] = {
   /* Acer Peripherals */
- {{ USB_VENDOR_ACERP, USB_PRODUCT_ACERP_ACERSCAN_320U }, 0 },
- {{ USB_VENDOR_ACERP, USB_PRODUCT_ACERP_ACERSCAN_640U }, 0 },
- {{ USB_VENDOR_ACERP, USB_PRODUCT_ACERP_ACERSCAN_620U }, 0 },
- {{ USB_VENDOR_ACERP, USB_PRODUCT_ACERP_ACERSCAN_C310U }, 0 },
-
+ {{ USB_DEVICE(0x04a5, 0x2022) }, 0 }, /* Acerscan 320U */
+ {{ USB_DEVICE(0x04a5, 0x2040) }, 0 }, /* Acerscan 640U */
+ {{ USB_DEVICE(0x04a5, 0x2060) }, 0 }, /* Acerscan 620U */
+ {{ USB_DEVICE(0x04a5, 0x12a6) }, 0 }, /* Acerscan C310U */
   /* AGFA */
- {{ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCAN1236U }, 0 },
- {{ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCAN1212U }, 0 },
- {{ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCAN1212U2 }, 0 },
- {{ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANTOUCH }, 0 },
- {{ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE40 }, 0 },
- {{ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE50 }, 0 },
- {{ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE20 }, 0 },
- {{ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE25 }, 0 },
- {{ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE26 }, 0 },
- {{ USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE52 }, 0 },
-
+ {{ USB_DEVICE(0x06bd, 0x0002) }, 0 }, /* SnapScan 1236U */
+ {{ USB_DEVICE(0x06bd, 0x0001) }, 0 }, /* SnapScan 1212U */
+ {{ USB_DEVICE(0x06bd, 0x2061) }, 0 }, /* SnapScan 1212U */
+ {{ USB_DEVICE(0x06bd, 0x0100) }, 0 }, /* SnapScan Touch */
+ {{ USB_DEVICE(0x06bd, 0x208d) }, 0 }, /* SnapScan e40 */
+ {{ USB_DEVICE(0x06bd, 0x208f) }, 0 }, /* SnapScan e50 */
+ {{ USB_DEVICE(0x06bd, 0x2091) }, 0 }, /* SnapScan e20 */
+ {{ USB_DEVICE(0x06bd, 0x2095) }, 0 }, /* SnapScan e25 */
+ {{ USB_DEVICE(0x06bd, 0x2097) }, 0 }, /* SnapScan e26 */
+ {{ USB_DEVICE(0x06bd, 0x20fd) }, 0 }, /* SnapScan e52 */
   /* Avision */
- {{ USB_VENDOR_AVISION, USB_PRODUCT_AVISION_1200U }, 0 },
-
+ {{ USB_DEVICE(0x0638, 0x0268) }, 0 }, /* Avision 1200U */
   /* Canon */
- {{ USB_VENDOR_CANON, USB_PRODUCT_CANON_N656U }, 0 },
- {{ USB_VENDOR_CANON, USB_PRODUCT_CANON_N676U }, 0 },
- {{ USB_VENDOR_CANON, USB_PRODUCT_CANON_D660U }, 0 },
-
+ {{ USB_DEVICE(0x04a9, 0x2206) }, 0 }, /* CanoScan N656U */
+ {{ USB_DEVICE(0x04a9, 0x220d) }, 0 }, /* CanoScan N676U */
+ {{ USB_DEVICE(0x04a9, 0x2208) }, 0 }, /* CanoScan D660U */
   /* Kye */
- {{ USB_VENDOR_KYE, USB_PRODUCT_KYE_VIVIDPRO }, 0 },
-
+ {{ USB_DEVICE(0x0458, 0x2001) }, 0 }, /* ColorPage Vivid-Pro */
   /* HP */
- {{ USB_VENDOR_HP, USB_PRODUCT_HP_2200C }, 0 },
- {{ USB_VENDOR_HP, USB_PRODUCT_HP_3300C }, 0 },
- {{ USB_VENDOR_HP, USB_PRODUCT_HP_3400CSE }, 0 },
- {{ USB_VENDOR_HP, USB_PRODUCT_HP_4100C }, 0 },
- {{ USB_VENDOR_HP, USB_PRODUCT_HP_4200C }, 0 },
- {{ USB_VENDOR_HP, USB_PRODUCT_HP_4300C }, 0 },
- {{ USB_VENDOR_HP, USB_PRODUCT_HP_S20 }, 0 },
- {{ USB_VENDOR_HP, USB_PRODUCT_HP_5200C }, 0 },
- {{ USB_VENDOR_HP, USB_PRODUCT_HP_5300C }, 0 },
- {{ USB_VENDOR_HP, USB_PRODUCT_HP_5400C }, 0 },
- {{ USB_VENDOR_HP, USB_PRODUCT_HP_6200C }, 0 },
- {{ USB_VENDOR_HP, USB_PRODUCT_HP_6300C }, 0 },
-
+ {{ USB_DEVICE(0x03f0, 0x0605) }, 0 }, /* ScanJet 2200C */
+ {{ USB_DEVICE(0x03f0, 0x0205) }, 0 }, /* ScanJet 3300C */
+ {{ USB_DEVICE(0x03f0, 0x0405) }, 0 }, /* ScanJet 3400cse */
+ {{ USB_DEVICE(0x03f0, 0x0101) }, 0 }, /* Scanjet 4100C */
+ {{ USB_DEVICE(0x03f0, 0x0105) }, 0 }, /* ScanJet 4200C */
+ {{ USB_DEVICE(0x03f0, 0x0305) }, 0 }, /* Scanjet 4300C */
+ {{ USB_DEVICE(0x03f0, 0x0102) }, 0 }, /* Photosmart S20 */
+ {{ USB_DEVICE(0x03f0, 0x0401) }, 0 }, /* Scanjet 5200C */
+ {{ USB_DEVICE(0x03f0, 0x0701) }, 0 }, /* Scanjet 5300C */
+ {{ USB_DEVICE(0x03f0, 0x1005) }, 0 }, /* Scanjet 5400C */
+ {{ USB_DEVICE(0x03f0, 0x0201) }, 0 }, /* ScanJet 6200C */
+ {{ USB_DEVICE(0x03f0, 0x0601) }, 0 }, /* Scanjet 6300C */
+  /* Scanlogic */
+ {{ USB_DEVICE(0x04ce, 0x0300) }, 0 }, /* Phantom 336CX - C3 */
   /* Microtek */
- {{ USB_VENDOR_SCANLOGIC, USB_PRODUCT_SCANLOGIC_336CX }, 0 },
- {{ USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_X6U }, 0 },
- {{ USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_336CX }, 0 },
- {{ USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_336CX2 }, 0 },
- {{ USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_C6 }, 0 },
- {{ USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_V6USL }, 0 },
- {{ USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_V6USL2 }, 0 },
- {{ USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_V6UL }, 0 },
-
+ {{ USB_DEVICE(0x05da, 0x0099) }, 0 }, /* Phantom 336CX - C3 */
+ {{ USB_DEVICE(0x05da, 0x0094) }, 0 }, /* ScanMaker X6 - X6U */
+ {{ USB_DEVICE(0x05da, 0x00a0) }, 0 }, /* Phantom 336CX - C3 */
+ {{ USB_DEVICE(0x05da, 0x009a) }, 0 }, /* Phantom C6 */
+ {{ USB_DEVICE(0x05da, 0x00a3) }, 0 }, /* ScanMaker V6USL */
+ {{ USB_DEVICE(0x05da, 0x80a3) }, 0 }, /* ScanMaker V6USL */
+ {{ USB_DEVICE(0x05da, 0x80ac) }, 0 }, /* ScanMaker V6UL */
   /* Minolta */
- {{ USB_VENDOR_MINOLTA, USB_PRODUCT_MINOLTA_5400 }, 0 },
-
+ {{ USB_DEVICE(0x0686, 0x400e) }, 0 }, /* Dimage 5400 */
   /* Mustek */
- {{ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_1200CU }, 0 },
- {{ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_BEARPAW1200F }, 0 },
- {{ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_BEARPAW1200TA }, 0 },
- {{ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_600USB }, 0 },
- {{ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_600CU }, 0 },
- {{ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_1200USB }, 0 },
- {{ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_1200UB }, 0 },
- {{ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_1200USBPLUS }, 0 },
- {{ USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_1200CUPLUS }, 0 },
-
+ {{ USB_DEVICE(0x055f, 0x0001) }, 0 }, /* 1200 CU */
+ {{ USB_DEVICE(0x055f, 0x0010) }, 0 }, /* BearPaw 1200F */
+ {{ USB_DEVICE(0x055f, 0x021e) }, 0 }, /* BearPaw 1200TA */
+ {{ USB_DEVICE(0x055f, 0x0873) }, 0 }, /* 600 USB */
+ {{ USB_DEVICE(0x055f, 0x0002) }, 0 }, /* 600 CU */
+ {{ USB_DEVICE(0x055f, 0x0003) }, 0 }, /* 1200 USB */
+ {{ USB_DEVICE(0x055f, 0x0006) }, 0 }, /* 1200 UB */
+ {{ USB_DEVICE(0x055f, 0x0007) }, 0 }, /* 1200 USB */
+ {{ USB_DEVICE(0x055f, 0x0008) }, 0 }, /* 1200 CU */
   /* National */
- {{ USB_VENDOR_NATIONAL, USB_PRODUCT_NATIONAL_BEARPAW1200 }, 0 },
- {{ USB_VENDOR_NATIONAL, USB_PRODUCT_NATIONAL_BEARPAW2400 }, 0 },
-
+ {{ USB_DEVICE(0x0400, 0x1000) }, 0 }, /* BearPaw 1200 */
+ {{ USB_DEVICE(0x0400, 0x1001) }, 0 }, /* BearPaw 2400 */
   /* Primax */
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2X300 }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2E300 }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2300 }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2E3002 }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_9600 }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_600U }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_6200 }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_19200 }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_1200U }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G600 }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_636I }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2600 }, 0 },
- {{ USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2E600 }, 0 },
-
+ {{ USB_DEVICE(0x0461, 0x0300) }, 0 }, /* G2-200 */
+ {{ USB_DEVICE(0x0461, 0x0301) }, 0 }, /* G2E-300 */
+ {{ USB_DEVICE(0x0461, 0x0302) }, 0 }, /* G2-300 */
+ {{ USB_DEVICE(0x0461, 0x0303) }, 0 }, /* G2E-300 */
+ {{ USB_DEVICE(0x0461, 0x0340) }, 0 }, /* Colorado USB 9600 */
+ {{ USB_DEVICE(0x0461, 0x0341) }, 0 }, /* Colorado 600u */
+ {{ USB_DEVICE(0x0461, 0x0345) }, 0 }, /* Visioneer 6200 */
+ {{ USB_DEVICE(0x0461, 0x0360) }, 0 }, /* Colorado USB 19200 */
+ {{ USB_DEVICE(0x0461, 0x0361) }, 0 }, /* Colorado 1200u */
+ {{ USB_DEVICE(0x0461, 0x0380) }, 0 }, /* G2-600 */
+ {{ USB_DEVICE(0x0461, 0x0381) }, 0 }, /* ReadyScan 636i */
+ {{ USB_DEVICE(0x0461, 0x0382) }, 0 }, /* G2-600 */
+ {{ USB_DEVICE(0x0461, 0x0383) }, 0 }, /* G2E-600 */
   /* Epson */
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_636 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_610 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1200 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1240 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1250 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1600 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1640 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_640U }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1650 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1660 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1260 }, 0 },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_GT9700F }, USC_KEEP_OPEN },
- {{ USB_VENDOR_EPSON, USB_PRODUCT_EPSON_GT9300UF }, 0 },
-
+ {{ USB_DEVICE(0x04b8, 0x0101) }, 0 }, /* Perfection 636U/636Photo */
+ {{ USB_DEVICE(0x04b8, 0x0103) }, 0 }, /* Perfection 610 */
+ {{ USB_DEVICE(0x04b8, 0x0104) }, 0 }, /* Perfection 1200U/1200Photo */
+ {{ USB_DEVICE(0x04b8, 0x010b) }, 0 }, /* Perfection 1240U/1240Photo */
+ {{ USB_DEVICE(0x04b8, 0x010f) }, 0 }, /* Perfection 1250U/1250Photo */
+ {{ USB_DEVICE(0x04b8, 0x0107) }, 0 }, /* Expression 1600 */
+ {{ USB_DEVICE(0x04b8, 0x010a) }, 0 }, /* Perfection 1640SU */
+ {{ USB_DEVICE(0x04b8, 0x010c) }, 0 }, /* Perfection 640U */
+ {{ USB_DEVICE(0x04b8, 0x0110) }, 0 }, /* Perfection 1650 */
+ {{ USB_DEVICE(0x04b8, 0x011e) }, 0 }, /* Perfection 1660 */
+ {{ USB_DEVICE(0x04b8, 0x011d) }, 0 }, /* Perfection 1260 */
+ {{ USB_DEVICE(0x04b8, 0x0112) }, USC_KEEP_OPEN }, /* GT-9700F */
+ {{ USB_DEVICE(0x04b8, 0x011b) }, 0 }, /* GT-9300UF */
   /* UMAX */
- {{ USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA1220U }, 0 },
- {{ USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA1236U }, 0 },
- {{ USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA2000U }, 0 },
- {{ USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA2100U }, 0 },
- {{ USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA2200U }, 0 },
- {{ USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA3400 }, 0 },
-
+ {{ USB_DEVICE(0x1606, 0x0010) }, 0 }, /* Astra 1220U */
+ {{ USB_DEVICE(0x1606, 0x0002) }, 0 }, /* Astra 1236U */
+ {{ USB_DEVICE(0x1606, 0x0030) }, 0 }, /* Astra 2000U */
+ {{ USB_DEVICE(0x1606, 0x0130) }, 0 }, /* Astra 2100U */
+ {{ USB_DEVICE(0x1606, 0x0230) }, 0 }, /* Astra 2200U */
+ {{ USB_DEVICE(0x1606, 0x0060) }, 0 }, /* Astra 3400 */
   /* Visioneer */
- {{ USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_3000 }, 0 },
- {{ USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_5300 }, 0 },
- {{ USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_7600 }, 0 },
- {{ USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_6100 }, 0 },
- {{ USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_6200 }, 0 },
- {{ USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_8100 }, 0 },
- {{ USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_8600 }, 0 },
-
+ {{ USB_DEVICE(0x04a7, 0x0224) }, 0 }, /* Scanport 3000 */
+ {{ USB_DEVICE(0x04a7, 0x0221) }, 0 }, /* OneTouch 5300 */
+ {{ USB_DEVICE(0x04a7, 0x0211) }, 0 }, /* OneTouch 7600 */
+ {{ USB_DEVICE(0x04a7, 0x0231) }, 0 }, /* OneTouch 6100 */
+ {{ USB_DEVICE(0x04a7, 0x0311) }, 0 }, /* OneTouch 6200 */
+ {{ USB_DEVICE(0x04a7, 0x0321) }, 0 }, /* OneTouch 8100 */
+ {{ USB_DEVICE(0x04a7, 0x0331) }, 0 }, /* OneTouch 8600 */
   /* Ultima */
- {{ USB_VENDOR_ULTIMA, USB_PRODUCT_ULTIMA_1200UBPLUS }, 0 },
-
+ {{ USB_DEVICE(0x05d8, 0x4002) }, 0 }, /* 1200 UB Plus */
 };
 #define uscanner_lookup(v, p) ((const struct uscan_info *)usb_lookup(uscanner_devs, v, p))
 
index 9424a9b..f37b4df 100644 (file)
@@ -1,4 +1,4 @@
-/*     $DragonFly: src/sys/dev/usbmisc/uslcom/uslcom.c,v 1.5 2007/08/19 17:16:43 hasso Exp $   */
+/*     $DragonFly: src/sys/dev/usbmisc/uslcom/uslcom.c,v 1.6 2007/11/05 13:32:28 hasso Exp $   */
 /*     $OpenBSD: uslcom.c,v 1.12 2007/06/13 06:25:03 mbalmer Exp $     */
 
 /*
@@ -111,28 +111,28 @@ struct ucom_callback uslcom_callback = {
 };
 
 static const struct usb_devno uslcom_devs[] = {
-       { USB_VENDOR_BALTECH,           USB_PRODUCT_BALTECH_CARDREADER },
-       { USB_VENDOR_DYNASTREAM,        USB_PRODUCT_DYNASTREAM_ANTDEVBOARD },
-       { USB_VENDOR_JABLOTRON,         USB_PRODUCT_JABLOTRON_PC60B },
-       { USB_VENDOR_PLX,               USB_PRODUCT_PLX_CA42 },
-       { USB_VENDOR_SILABS,            USB_PRODUCT_SILABS_ARGUSISP },
-       { USB_VENDOR_SILABS,            USB_PRODUCT_SILABS_CP210X_1 },
-       { USB_VENDOR_SILABS,            USB_PRODUCT_SILABS_CP210X_2 },
-       { USB_VENDOR_SILABS,            USB_PRODUCT_SILABS_CRUMB128 },
-       { USB_VENDOR_SILABS,            USB_PRODUCT_SILABS_DEGREECONT },
-       { USB_VENDOR_SILABS,            USB_PRODUCT_SILABS_DESKTOPMOBILE },
-       { USB_VENDOR_SILABS,            USB_PRODUCT_SILABS_EDG1228 },
-       { USB_VENDOR_SILABS,            USB_PRODUCT_SILABS_IPLINK1220 },
-       { USB_VENDOR_SILABS,            USB_PRODUCT_SILABS_LIPOWSKY_HARP },
-       { USB_VENDOR_SILABS,            USB_PRODUCT_SILABS_LIPOWSKY_JTAG },
-       { USB_VENDOR_SILABS,            USB_PRODUCT_SILABS_LIPOWSKY_LIN },
-       { USB_VENDOR_SILABS,            USB_PRODUCT_SILABS_POLOLU },
-       { USB_VENDOR_SILABS,            USB_PRODUCT_SILABS_RIGBLASTER },
-       { USB_VENDOR_SILABS,            USB_PRODUCT_SILABS_RIGTALK },
-       { USB_VENDOR_SILABS,            USB_PRODUCT_SILABS_SUNNTO },
-       { USB_VENDOR_SILABS,            USB_PRODUCT_SILABS_TRACIENT_RFID },
-       { USB_VENDOR_SILABS2,           USB_PRODUCT_SILABS2_DCU11CLONE },
-       { USB_VENDOR_USI,               USB_PRODUCT_USI_MC60 }
+       { USB_DEVICE(0x0fcf, 0x1003) }, /* ANT development board */
+       { USB_DEVICE(0x10a6, 0xaa26) }, /* Noname DCU-11 clone */
+       { USB_DEVICE(0x10ab, 0x10c5) }, /* USI MC60 */
+       { USB_DEVICE(0x10b5, 0xac70) }, /* PLX CA-42 */
+       { USB_DEVICE(0x10c4, 0x803b) }, /* Pololu Serial */
+       { USB_DEVICE(0x10c4, 0x8053) }, /* Enfora EDG1228 */
+       { USB_DEVICE(0x10c4, 0x8066) }, /* Argussoft In-System Programmer */
+       { USB_DEVICE(0x10c4, 0x807a) }, /* Crumb128 board */
+       { USB_DEVICE(0x10c4, 0x80ca) }, /* Degree Controls */
+       { USB_DEVICE(0x10c4, 0x80dd) }, /* Tracient RFID */
+       { USB_DEVICE(0x10c4, 0x80f6) }, /* Suunto sports */
+       { USB_DEVICE(0x10c4, 0x813d) }, /* Burnside Desktop mobile */
+       { USB_DEVICE(0x10c4, 0x814a) }, /* West Mountain Radio RIGblaster */
+       { USB_DEVICE(0x10c4, 0x814b) }, /* West Mountain Radio RIGtalk */
+       { USB_DEVICE(0x10c4, 0x815e) }, /* IP-Link 1220 */
+       { USB_DEVICE(0x10c4, 0x81c8) }, /* Lipowsky Baby-JTAG */
+       { USB_DEVICE(0x10c4, 0x81e2) }, /* Lipowsky Baby-LIN */
+       { USB_DEVICE(0x10c4, 0x8218) }, /* Lipowsky HARP-1 */
+       { USB_DEVICE(0x10c4, 0xea60) }, /* Silicon Labs CP210x */
+       { USB_DEVICE(0x10c4, 0xea61) }, /* Silicon Labs CP210x */
+       { USB_DEVICE(0x13ad, 0x9999) }, /* Baltech card reader */
+       { USB_DEVICE(0x16d6, 0x0001) }, /* Jablotron PC-60B */
 };
 
 static device_probe_t uslcom_match;
index 7854880..0b63903 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * $NetBSD: uvisor.c,v 1.9 2001/01/23 14:04:14 augustss Exp $
  * $FreeBSD: src/sys/dev/usb/uvisor.c,v 1.16 2003/11/08 11:23:07 joe Exp $
- * $DragonFly: src/sys/dev/usbmisc/uvisor/uvisor.c,v 1.13 2007/07/01 21:24:04 hasso Exp $
+ * $DragonFly: src/sys/dev/usbmisc/uvisor/uvisor.c,v 1.14 2007/11/05 13:32:28 hasso Exp $
  */
 
 /*
@@ -205,26 +205,24 @@ struct uvisor_type {
 #define PALM4  0x0001
 };
 static const struct uvisor_type uvisor_devs[] = {
-       {{ USB_VENDOR_HANDSPRING, USB_PRODUCT_HANDSPRING_VISOR }, 0 },
-       {{ USB_VENDOR_HANDSPRING, USB_PRODUCT_HANDSPRING_TREO }, PALM4 },
-       {{ USB_VENDOR_PALM, USB_PRODUCT_PALM_M500 }, PALM4 },
-       {{ USB_VENDOR_PALM, USB_PRODUCT_PALM_M505 }, PALM4 },
-       {{ USB_VENDOR_PALM, USB_PRODUCT_PALM_M515 }, PALM4 },
-       {{ USB_VENDOR_PALM, USB_PRODUCT_PALM_I705 }, PALM4 },
-       {{ USB_VENDOR_PALM, USB_PRODUCT_PALM_M125 }, PALM4 },
-       {{ USB_VENDOR_PALM, USB_PRODUCT_PALM_M130 }, PALM4 },
-       {{ USB_VENDOR_PALM, USB_PRODUCT_PALM_TUNGSTEN_Z }, PALM4 },
-       {{ USB_VENDOR_PALM, USB_PRODUCT_PALM_TUNGSTEN_T }, PALM4 },
-       {{ USB_VENDOR_PALM, USB_PRODUCT_PALM_ZIRE }, PALM4 },
-       {{ USB_VENDOR_SONY, USB_PRODUCT_SONY_CLIE_40 }, 0 },
-       {{ USB_VENDOR_SONY, USB_PRODUCT_SONY_CLIE_41 }, 0 },
-       {{ USB_VENDOR_SONY, USB_PRODUCT_SONY_CLIE_S360 }, PALM4 },
-       {{ USB_VENDOR_SONY, USB_PRODUCT_SONY_CLIE_NX60 }, PALM4 },
-/*     {{ USB_VENDOR_SONY, USB_PRODUCT_SONY_CLIE_25 }, PALM4 },*/
+       {{ USB_DEVICE(0x054c, 0x0066) }, 0 },     /* Sony Clie v4.0 */
+       {{ USB_DEVICE(0x054c, 0x0095) }, PALM4 }, /* Sony Clie s360 */
+       {{ USB_DEVICE(0x054c, 0x009a) }, 0 },     /* Sony Clie v4.1 */
+       {{ USB_DEVICE(0x054c, 0x00da) }, PALM4 }, /* Sony Clie nx60 */
+       {{ USB_DEVICE(0x082d, 0x0100) }, 0 },     /* Handspring Visor */
+       {{ USB_DEVICE(0x082d, 0x0200) }, PALM4 }, /* Handspring Treo */
+       {{ USB_DEVICE(0x0830, 0x0001) }, PALM4 }, /* Palm m500 */
+       {{ USB_DEVICE(0x0830, 0x0002) }, PALM4 }, /* Palm m505 */
+       {{ USB_DEVICE(0x0830, 0x0003) }, PALM4 }, /* Palm m515 */
+       {{ USB_DEVICE(0x0830, 0x0020) }, PALM4 }, /* Palm i705 */
+       {{ USB_DEVICE(0x0830, 0x0031) }, PALM4 }, /* Palm Tungsten Z */
+       {{ USB_DEVICE(0x0830, 0x0040) }, PALM4 }, /* Palm m125 */
+       {{ USB_DEVICE(0x0830, 0x0050) }, PALM4 }, /* Palm m130 */
+       {{ USB_DEVICE(0x0830, 0x0060) }, PALM4 }, /* Palm Tungsten T */
+       {{ USB_DEVICE(0x0830, 0x0070) }, PALM4 }, /* Palm Palm Zire */
 };
 #define uvisor_lookup(v, p) ((const struct uvisor_type *)usb_lookup(uvisor_devs, v, p))
 
-
 static int
 uvisor_match(device_t self)
 {
index 95d62da..7e6b778 100644 (file)
@@ -25,7 +25,7 @@
  *
  * $NetBSD: usb/uvscom.c,v 1.1 2002/03/19 15:08:42 augustss Exp $
  * $FreeBSD: src/sys/dev/usb/uvscom.c,v 1.19 2003/11/16 12:26:10 akiyama Exp $
- * $DragonFly: src/sys/dev/usbmisc/uvscom/uvscom.c,v 1.16 2007/08/07 10:42:41 hasso Exp $
+ * $DragonFly: src/sys/dev/usbmisc/uvscom/uvscom.c,v 1.17 2007/11/05 13:32:28 hasso Exp $
  */
 
 /*
@@ -199,16 +199,11 @@ struct ucom_callback uvscom_callback = {
 };
 
 static const struct usb_devno uvscom_devs [] = {
-       /* SUNTAC U-Cable type D2 */
-       { USB_VENDOR_SUNTAC, USB_PRODUCT_SUNTAC_DS96L },
-       /* SUNTAC Ir-Trinity */
-       { USB_VENDOR_SUNTAC, USB_PRODUCT_SUNTAC_IS96U },
-       /* SUNTAC U-Cable type P1 */
-       { USB_VENDOR_SUNTAC, USB_PRODUCT_SUNTAC_PS64P1 },
-       /* SUNTAC Slipper U */
-       { USB_VENDOR_SUNTAC, USB_PRODUCT_SUNTAC_VS10U },
+       { USB_DEVICE(0x05db, 0x0003) }, /* SUNTAC U-Cable type D2 */
+       { USB_DEVICE(0x05db, 0x0005) }, /* SUNTAC U-Cable type P1 */
+       { USB_DEVICE(0x05db, 0x0009) }, /* SUNTAC Slipper U */
+       { USB_DEVICE(0x05db, 0x000a) }, /* SUNTAC Ir-Trinity */
 };
-#define uvscom_lookup(v, p) usb_lookup(uvscom_devs, v, p)
 
 static device_probe_t uvscom_match;
 static device_attach_t uvscom_attach;
@@ -240,7 +235,7 @@ uvscom_match(device_t self)
        if (uaa->iface != NULL)
                return (UMATCH_NONE);
 
-       return (uvscom_lookup(uaa->vendor, uaa->product) != NULL ?
+       return (usb_lookup(uvscom_devs, uaa->vendor, uaa->product) != NULL ?
                UMATCH_VENDOR_PRODUCT : UMATCH_NONE);
 }