Index: head/sys/cam/scsi/scsi_da.c =================================================================== --- head/sys/cam/scsi/scsi_da.c (revision 90014) +++ head/sys/cam/scsi/scsi_da.c (revision 90015) @@ -1,1760 +1,1767 @@ /* * Implementation of SCSI Direct Access Peripheral driver for CAM. * * Copyright (c) 1997 Justin T. Gibbs. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions, and the following disclaimer, * without modification, immediately at the beginning of the file. * 2. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * $FreeBSD$ */ #ifdef _KERNEL #include "opt_hw_wdog.h" #endif /* _KERNEL */ #include #ifdef _KERNEL #include #include #include #include #endif /* _KERNEL */ #include #include #include #include #include #include #include #include #include #ifndef _KERNEL #include #include #endif /* _KERNEL */ #include #include #include #include #include #include #ifndef _KERNEL #include #endif /* !_KERNEL */ #ifdef _KERNEL typedef enum { DA_STATE_PROBE, DA_STATE_NORMAL } da_state; typedef enum { DA_FLAG_PACK_INVALID = 0x001, DA_FLAG_NEW_PACK = 0x002, DA_FLAG_PACK_LOCKED = 0x004, DA_FLAG_PACK_REMOVABLE = 0x008, DA_FLAG_TAGGED_QUEUING = 0x010, DA_FLAG_NEED_OTAG = 0x020, DA_FLAG_WENT_IDLE = 0x040, DA_FLAG_RETRY_UA = 0x080, DA_FLAG_OPEN = 0x100 } da_flags; typedef enum { DA_Q_NONE = 0x00, DA_Q_NO_SYNC_CACHE = 0x01, DA_Q_NO_6_BYTE = 0x02 } da_quirks; typedef enum { DA_CCB_PROBE = 0x01, DA_CCB_BUFFER_IO = 0x02, DA_CCB_WAITING = 0x03, DA_CCB_DUMP = 0x04, DA_CCB_TYPE_MASK = 0x0F, DA_CCB_RETRY_UA = 0x10 } da_ccb_state; /* Offsets into our private area for storing information */ #define ccb_state ppriv_field0 #define ccb_bp ppriv_ptr1 struct disk_params { u_int8_t heads; u_int16_t cylinders; u_int8_t secs_per_track; u_int32_t secsize; /* Number of bytes/sector */ u_int32_t sectors; /* total number sectors */ }; struct da_softc { struct bio_queue_head bio_queue; struct devstat device_stats; SLIST_ENTRY(da_softc) links; LIST_HEAD(, ccb_hdr) pending_ccbs; da_state state; da_flags flags; da_quirks quirks; int minimum_cmd_size; int ordered_tag_count; struct disk_params params; struct disk disk; union ccb saved_ccb; dev_t dev; }; struct da_quirk_entry { struct scsi_inquiry_pattern inq_pat; da_quirks quirks; }; static const char quantum[] = "QUANTUM"; static const char microp[] = "MICROP"; static struct da_quirk_entry da_quirk_table[] = { { /* * Fujitsu M2513A MO drives. * Tested devices: M2513A2 firmware versions 1200 & 1300. * (dip switch selects whether T_DIRECT or T_OPTICAL device) * Reported by: W.Scholten */ {T_DIRECT, SIP_MEDIA_REMOVABLE, "FUJITSU", "M2513A", "*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE }, { /* See above. */ {T_OPTICAL, SIP_MEDIA_REMOVABLE, "FUJITSU", "M2513A", "*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE }, { /* * This particular Fujitsu drive doesn't like the * synchronize cache command. * Reported by: Tom Jackson */ {T_DIRECT, SIP_MEDIA_FIXED, "FUJITSU", "M2954*", "*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE }, { /* * This drive doesn't like the synchronize cache command * either. Reported by: Matthew Jacob * in NetBSD PR kern/6027, August 24, 1998. */ {T_DIRECT, SIP_MEDIA_FIXED, microp, "2217*", "*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE }, { /* * This drive doesn't like the synchronize cache command * either. Reported by: Hellmuth Michaelis (hm@kts.org) * (PR 8882). */ {T_DIRECT, SIP_MEDIA_FIXED, microp, "2112*", "*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE }, { /* * Doesn't like the synchronize cache command. * Reported by: Blaz Zupan */ {T_DIRECT, SIP_MEDIA_FIXED, "NEC", "D3847*", "*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE }, { /* * Doesn't like the synchronize cache command. */ {T_DIRECT, SIP_MEDIA_FIXED, quantum, "MAVERICK 540S", "*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE }, { /* * Doesn't like the synchronize cache command. */ {T_DIRECT, SIP_MEDIA_FIXED, quantum, "LPS525S", "*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE }, { /* * Doesn't work correctly with 6 byte reads/writes. * Returns illegal request, and points to byte 9 of the * 6-byte CDB. * Reported by: Adam McDougall */ {T_DIRECT, SIP_MEDIA_FIXED, quantum, "VIKING 4*", "*"}, /*quirks*/ DA_Q_NO_6_BYTE }, { /* * See above. */ {T_DIRECT, SIP_MEDIA_FIXED, quantum, "VIKING 2*", "*"}, /*quirks*/ DA_Q_NO_6_BYTE }, /* Below a list of quirks for USB devices supported by umass. */ { /* * This USB floppy drive uses the UFI command set. This * command set is a derivative of the ATAPI command set and * does not support READ_6 commands only READ_10. It also does * not support sync cache (0x35). */ {T_DIRECT, SIP_MEDIA_REMOVABLE, "Y-E DATA", "USB-FDU", "*"}, /*quirks*/ DA_Q_NO_6_BYTE|DA_Q_NO_SYNC_CACHE }, { /* Another USB floppy */ {T_DIRECT, SIP_MEDIA_REMOVABLE, "MATSHITA", "FDD CF-VFDU*","*"}, /*quirks*/ DA_Q_NO_6_BYTE|DA_Q_NO_SYNC_CACHE }, { /* * Sony Memory Stick adapter MSAC-US1 and * Sony PCG-C1VJ Internal Memory Stick Slot (MSC-U01). * Make all sony MS* products use this quirk. */ {T_DIRECT, SIP_MEDIA_REMOVABLE, "Sony", "MS*", "*"}, /*quirks*/ DA_Q_NO_6_BYTE|DA_Q_NO_SYNC_CACHE }, { /* * Sony Memory Stick adapter for the CLIE series * of PalmOS PDA's */ {T_DIRECT, SIP_MEDIA_REMOVABLE, "Sony", "CLIE*", "*"}, /*quirks*/ DA_Q_NO_6_BYTE|DA_Q_NO_SYNC_CACHE }, { /* * Sony DSC cameras (DSC-S30, DSC-S50, DSC-S70) */ {T_DIRECT, SIP_MEDIA_REMOVABLE, "Sony", "Sony DSC", "*"}, /*quirks*/ DA_Q_NO_6_BYTE|DA_Q_NO_SYNC_CACHE }, { /* * Maxtor 3000LE USB Drive */ {T_DIRECT, SIP_MEDIA_FIXED, "MAXTOR*", "K040H2*", "*"}, /*quirks*/ DA_Q_NO_6_BYTE }, { {T_OPTICAL, SIP_MEDIA_REMOVABLE, "FUJITSU", "MCF3064AP", "*"}, /*quirks*/ DA_Q_NO_6_BYTE }, { /* * Microtech USB CameraMate */ {T_DIRECT, SIP_MEDIA_REMOVABLE, "eUSB Compact*", "Compact Flash*", "*"}, /*quirks*/ DA_Q_NO_6_BYTE|DA_Q_NO_SYNC_CACHE }, { /* * The vendor, product and version strings coming from the * controller are null terminated instead of being padded with * spaces. The trailing wildcard character '*' is required. */ {T_DIRECT, SIP_MEDIA_REMOVABLE, "SMSC*", "USB FDC*","*"}, /*quirks*/ DA_Q_NO_6_BYTE|DA_Q_NO_SYNC_CACHE }, { /* * Olympus digital cameras (C-3040ZOOM, C-2040ZOOM, C-1) */ {T_DIRECT, SIP_MEDIA_REMOVABLE, "OLYMPUS", "C-*", "*"}, /*quirks*/ DA_Q_NO_6_BYTE|DA_Q_NO_SYNC_CACHE }, { /* * Olympus digital cameras (D-370) */ {T_DIRECT, SIP_MEDIA_REMOVABLE, "OLYMPUS", "D-*", "*"}, /*quirks*/ DA_Q_NO_6_BYTE }, { /* * Olympus digital cameras (E-100RS, E-10). */ {T_DIRECT, SIP_MEDIA_REMOVABLE, "OLYMPUS", "E-*", "*"}, /*quirks*/ DA_Q_NO_6_BYTE|DA_Q_NO_SYNC_CACHE }, { /* * KingByte Pen Drives */ {T_DIRECT, SIP_MEDIA_REMOVABLE, "NO BRAND", "PEN DRIVE", "*"}, /*quirks*/ DA_Q_NO_6_BYTE|DA_Q_NO_SYNC_CACHE }, { /* * FujiFilm Camera */ {T_DIRECT, SIP_MEDIA_REMOVABLE, "FUJIFILMUSB-DRIVEUNIT", "USB-DRIVEUNIT", "*"}, /*quirks*/ DA_Q_NO_6_BYTE|DA_Q_NO_SYNC_CACHE }, { /* * Nikon Coolpix E775/E995 Cameras */ {T_DIRECT, SIP_MEDIA_REMOVABLE, "NIKON", "NIKON DSC E*", "*"}, /*quirks*/ DA_Q_NO_6_BYTE }, { /* * Nikon Coolpix E885 Camera */ {T_DIRECT, SIP_MEDIA_REMOVABLE, "Nikon", "Digital Camera", "*"}, /*quirks*/ DA_Q_NO_6_BYTE }, { /* * Minolta Dimage 2330 */ {T_DIRECT, SIP_MEDIA_REMOVABLE, "MINOLTA", "DIMAGE 2330*", "*"}, /*quirks*/ DA_Q_NO_6_BYTE }, { /* * DIVA USB Mp3 Player. * Doesn't work correctly with 6 byte reads/writes. */ {T_DIRECT, SIP_MEDIA_REMOVABLE, "DIVA USB", "Media Reader","*"}, /*quirks*/ DA_Q_NO_6_BYTE + }, + { + /* + * Daisy Technology PhotoClip USB Camera + */ + {T_DIRECT, SIP_MEDIA_REMOVABLE, "Digital", "World DMC","*"}, + /*quirks*/ DA_Q_NO_6_BYTE } }; static d_open_t daopen; static d_close_t daclose; static d_strategy_t dastrategy; static d_ioctl_t daioctl; static d_dump_t dadump; static periph_init_t dainit; static void daasync(void *callback_arg, u_int32_t code, struct cam_path *path, void *arg); static periph_ctor_t daregister; static periph_dtor_t dacleanup; static periph_start_t dastart; static periph_oninv_t daoninvalidate; static void dadone(struct cam_periph *periph, union ccb *done_ccb); static int daerror(union ccb *ccb, u_int32_t cam_flags, u_int32_t sense_flags); static void daprevent(struct cam_periph *periph, int action); static void dasetgeom(struct cam_periph *periph, struct scsi_read_capacity_data * rdcap); static timeout_t dasendorderedtag; static void dashutdown(void *arg, int howto); #ifndef DA_DEFAULT_TIMEOUT #define DA_DEFAULT_TIMEOUT 60 /* Timeout in seconds */ #endif #ifndef DA_DEFAULT_RETRY #define DA_DEFAULT_RETRY 4 #endif static int da_retry_count = DA_DEFAULT_RETRY; static int da_default_timeout = DA_DEFAULT_TIMEOUT; SYSCTL_NODE(_kern_cam, OID_AUTO, da, CTLFLAG_RD, 0, "CAM Direct Access Disk driver"); SYSCTL_INT(_kern_cam_da, OID_AUTO, retry_count, CTLFLAG_RW, &da_retry_count, 0, "Normal I/O retry count"); SYSCTL_INT(_kern_cam_da, OID_AUTO, default_timeout, CTLFLAG_RW, &da_default_timeout, 0, "Normal I/O timeout (in seconds)"); /* * DA_ORDEREDTAG_INTERVAL determines how often, relative * to the default timeout, we check to see whether an ordered * tagged transaction is appropriate to prevent simple tag * starvation. Since we'd like to ensure that there is at least * 1/2 of the timeout length left for a starved transaction to * complete after we've sent an ordered tag, we must poll at least * four times in every timeout period. This takes care of the worst * case where a starved transaction starts during an interval that * meets the requirement "don't send an ordered tag" test so it takes * us two intervals to determine that a tag must be sent. */ #ifndef DA_ORDEREDTAG_INTERVAL #define DA_ORDEREDTAG_INTERVAL 4 #endif static struct periph_driver dadriver = { dainit, "da", TAILQ_HEAD_INITIALIZER(dadriver.units), /* generation */ 0 }; PERIPHDRIVER_DECLARE(da, dadriver); #define DA_CDEV_MAJOR 13 /* For 2.2-stable support */ #ifndef D_DISK #define D_DISK 0 #endif static struct cdevsw da_cdevsw = { /* open */ daopen, /* close */ daclose, /* read */ physread, /* write */ physwrite, /* ioctl */ daioctl, /* poll */ nopoll, /* mmap */ nommap, /* strategy */ dastrategy, /* name */ "da", /* maj */ DA_CDEV_MAJOR, /* dump */ dadump, /* psize */ nopsize, /* flags */ D_DISK, }; static struct cdevsw dadisk_cdevsw; static SLIST_HEAD(,da_softc) softc_list; static struct extend_array *daperiphs; static int daopen(dev_t dev, int flags, int fmt, struct thread *td) { struct cam_periph *periph; struct da_softc *softc; struct disklabel *label; struct scsi_read_capacity_data *rcap; union ccb *ccb; int unit; int part; int error; int s; unit = dkunit(dev); part = dkpart(dev); s = splsoftcam(); periph = cam_extend_get(daperiphs, unit); if (periph == NULL) { splx(s); return (ENXIO); } softc = (struct da_softc *)periph->softc; CAM_DEBUG(periph->path, CAM_DEBUG_TRACE, ("daopen: dev=%s (unit %d , partition %d)\n", devtoname(dev), unit, part)); if ((error = cam_periph_lock(periph, PRIBIO|PCATCH)) != 0) return (error); /* error code from tsleep */ if (cam_periph_acquire(periph) != CAM_REQ_CMP) return(ENXIO); softc->flags |= DA_FLAG_OPEN; if ((softc->flags & DA_FLAG_PACK_INVALID) != 0) { /* Invalidate our pack information. */ disk_invalidate(&softc->disk); softc->flags &= ~DA_FLAG_PACK_INVALID; } splx(s); /* Do a read capacity */ rcap = (struct scsi_read_capacity_data *)malloc(sizeof(*rcap), M_TEMP, M_WAITOK); ccb = cam_periph_getccb(periph, /*priority*/1); scsi_read_capacity(&ccb->csio, /*retries*/4, /*cbfncp*/dadone, MSG_SIMPLE_Q_TAG, rcap, SSD_FULL_SIZE, /*timeout*/60000); ccb->ccb_h.ccb_bp = NULL; error = cam_periph_runccb(ccb, daerror, /*cam_flags*/CAM_RETRY_SELTO, /*sense_flags*/SF_RETRY_UA, &softc->device_stats); if ((ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) cam_release_devq(ccb->ccb_h.path, /*relsim_flags*/0, /*reduction*/0, /*timeout*/0, /*getcount_only*/0); xpt_release_ccb(ccb); if (error == 0) dasetgeom(periph, rcap); free(rcap, M_TEMP); if (error == 0) { struct ccb_getdev cgd; /* Build label for whole disk. */ label = &softc->disk.d_label; bzero(label, sizeof(*label)); label->d_type = DTYPE_SCSI; /* * Grab the inquiry data to get the vendor and product names. * Put them in the typename and packname for the label. */ xpt_setup_ccb(&cgd.ccb_h, periph->path, /*priority*/ 1); cgd.ccb_h.func_code = XPT_GDEV_TYPE; xpt_action((union ccb *)&cgd); strncpy(label->d_typename, cgd.inq_data.vendor, min(SID_VENDOR_SIZE, sizeof(label->d_typename))); strncpy(label->d_packname, cgd.inq_data.product, min(SID_PRODUCT_SIZE, sizeof(label->d_packname))); label->d_secsize = softc->params.secsize; label->d_nsectors = softc->params.secs_per_track; label->d_ntracks = softc->params.heads; label->d_ncylinders = softc->params.cylinders; label->d_secpercyl = softc->params.heads * softc->params.secs_per_track; label->d_secperunit = softc->params.sectors; /* * Check to see whether or not the blocksize is set yet. * If it isn't, set it and then clear the blocksize * unavailable flag for the device statistics. */ if ((softc->device_stats.flags & DEVSTAT_BS_UNAVAILABLE) != 0){ softc->device_stats.block_size = softc->params.secsize; softc->device_stats.flags &= ~DEVSTAT_BS_UNAVAILABLE; } } if (error == 0) { if ((softc->flags & DA_FLAG_PACK_REMOVABLE) != 0) daprevent(periph, PR_PREVENT); } cam_periph_unlock(periph); return (error); } static int daclose(dev_t dev, int flag, int fmt, struct thread *td) { struct cam_periph *periph; struct da_softc *softc; int unit; int error; unit = dkunit(dev); periph = cam_extend_get(daperiphs, unit); if (periph == NULL) return (ENXIO); softc = (struct da_softc *)periph->softc; if ((error = cam_periph_lock(periph, PRIBIO)) != 0) { return (error); /* error code from tsleep */ } if ((softc->quirks & DA_Q_NO_SYNC_CACHE) == 0) { union ccb *ccb; ccb = cam_periph_getccb(periph, /*priority*/1); scsi_synchronize_cache(&ccb->csio, /*retries*/1, /*cbfcnp*/dadone, MSG_SIMPLE_Q_TAG, /*begin_lba*/0,/* Cover the whole disk */ /*lb_count*/0, SSD_FULL_SIZE, 5 * 60 * 1000); cam_periph_runccb(ccb, /*error_routine*/NULL, /*cam_flags*/0, /*sense_flags*/SF_RETRY_UA, &softc->device_stats); if ((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { if ((ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_SCSI_STATUS_ERROR) { int asc, ascq; int sense_key, error_code; scsi_extract_sense(&ccb->csio.sense_data, &error_code, &sense_key, &asc, &ascq); if (sense_key != SSD_KEY_ILLEGAL_REQUEST) scsi_sense_print(&ccb->csio); } else { xpt_print_path(periph->path); printf("Synchronize cache failed, status " "== 0x%x, scsi status == 0x%x\n", ccb->csio.ccb_h.status, ccb->csio.scsi_status); } } if ((ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) cam_release_devq(ccb->ccb_h.path, /*relsim_flags*/0, /*reduction*/0, /*timeout*/0, /*getcount_only*/0); xpt_release_ccb(ccb); } if ((softc->flags & DA_FLAG_PACK_REMOVABLE) != 0) { daprevent(periph, PR_ALLOW); /* * If we've got removeable media, mark the blocksize as * unavailable, since it could change when new media is * inserted. */ softc->device_stats.flags |= DEVSTAT_BS_UNAVAILABLE; } softc->flags &= ~DA_FLAG_OPEN; cam_periph_unlock(periph); cam_periph_release(periph); return (0); } /* * Actually translate the requested transfer into one the physical driver * can understand. The transfer is described by a buf and will include * only one physical transfer. */ static void dastrategy(struct bio *bp) { struct cam_periph *periph; struct da_softc *softc; u_int unit; u_int part; int s; unit = dkunit(bp->bio_dev); part = dkpart(bp->bio_dev); periph = cam_extend_get(daperiphs, unit); if (periph == NULL) { biofinish(bp, NULL, ENXIO); return; } softc = (struct da_softc *)periph->softc; #if 0 /* * check it's not too big a transfer for our adapter */ scsi_minphys(bp,&sd_switch); #endif /* * Mask interrupts so that the pack cannot be invalidated until * after we are in the queue. Otherwise, we might not properly * clean up one of the buffers. */ s = splbio(); /* * If the device has been made invalid, error out */ if ((softc->flags & DA_FLAG_PACK_INVALID)) { splx(s); biofinish(bp, NULL, ENXIO); return; } /* * Place it in the queue of disk activities for this disk */ bioqdisksort(&softc->bio_queue, bp); splx(s); /* * Schedule ourselves for performing the work. */ xpt_schedule(periph, /* XXX priority */1); return; } /* For 2.2-stable support */ #ifndef ENOIOCTL #define ENOIOCTL -1 #endif static int daioctl(dev_t dev, u_long cmd, caddr_t addr, int flag, struct thread *td) { struct cam_periph *periph; struct da_softc *softc; int unit; int error; unit = dkunit(dev); periph = cam_extend_get(daperiphs, unit); if (periph == NULL) return (ENXIO); softc = (struct da_softc *)periph->softc; CAM_DEBUG(periph->path, CAM_DEBUG_TRACE, ("daioctl\n")); if ((error = cam_periph_lock(periph, PRIBIO|PCATCH)) != 0) { return (error); /* error code from tsleep */ } error = cam_periph_ioctl(periph, cmd, addr, daerror); cam_periph_unlock(periph); return (error); } static int dadump(dev_t dev) { struct cam_periph *periph; struct da_softc *softc; u_int unit; u_int part; u_int secsize; u_int num; /* number of sectors to write */ u_int blknum; long blkcnt; vm_offset_t addr; struct ccb_scsiio csio; int dumppages = MAXDUMPPGS; int error; int i; /* toss any characters present prior to dump */ while (cncheckc() != -1) ; unit = dkunit(dev); part = dkpart(dev); periph = cam_extend_get(daperiphs, unit); if (periph == NULL) { return (ENXIO); } softc = (struct da_softc *)periph->softc; if ((softc->flags & DA_FLAG_PACK_INVALID) != 0) return (ENXIO); error = disk_dumpcheck(dev, &num, &blknum, &secsize); if (error) return (error); addr = 0; /* starting address */ blkcnt = howmany(PAGE_SIZE, secsize); while (num > 0) { caddr_t va = NULL; if ((num / blkcnt) < dumppages) dumppages = num / blkcnt; for (i = 0; i < dumppages; ++i) { vm_offset_t a = addr + (i * PAGE_SIZE); if (is_physical_memory(a)) va = pmap_kenter_temporary(trunc_page(a), i); else va = pmap_kenter_temporary(trunc_page(0), i); } xpt_setup_ccb(&csio.ccb_h, periph->path, /*priority*/1); csio.ccb_h.ccb_state = DA_CCB_DUMP; scsi_read_write(&csio, /*retries*/1, dadone, MSG_ORDERED_Q_TAG, /*read*/FALSE, /*byte2*/0, /*minimum_cmd_size*/ softc->minimum_cmd_size, blknum, blkcnt * dumppages, /*data_ptr*/(u_int8_t *) va, /*dxfer_len*/blkcnt * secsize * dumppages, /*sense_len*/SSD_FULL_SIZE, DA_DEFAULT_TIMEOUT * 1000); xpt_polled_action((union ccb *)&csio); if ((csio.ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { printf("Aborting dump due to I/O error.\n"); if ((csio.ccb_h.status & CAM_STATUS_MASK) == CAM_SCSI_STATUS_ERROR) scsi_sense_print(&csio); else printf("status == 0x%x, scsi status == 0x%x\n", csio.ccb_h.status, csio.scsi_status); return(EIO); } if (dumpstatus(addr, (off_t)num * softc->params.secsize) < 0) return (EINTR); /* update block count */ num -= blkcnt * dumppages; blknum += blkcnt * dumppages; addr += PAGE_SIZE * dumppages; } /* * Sync the disk cache contents to the physical media. */ if ((softc->quirks & DA_Q_NO_SYNC_CACHE) == 0) { xpt_setup_ccb(&csio.ccb_h, periph->path, /*priority*/1); csio.ccb_h.ccb_state = DA_CCB_DUMP; scsi_synchronize_cache(&csio, /*retries*/1, /*cbfcnp*/dadone, MSG_SIMPLE_Q_TAG, /*begin_lba*/0,/* Cover the whole disk */ /*lb_count*/0, SSD_FULL_SIZE, 5 * 60 * 1000); xpt_polled_action((union ccb *)&csio); if ((csio.ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { if ((csio.ccb_h.status & CAM_STATUS_MASK) == CAM_SCSI_STATUS_ERROR) { int asc, ascq; int sense_key, error_code; scsi_extract_sense(&csio.sense_data, &error_code, &sense_key, &asc, &ascq); if (sense_key != SSD_KEY_ILLEGAL_REQUEST) scsi_sense_print(&csio); } else { xpt_print_path(periph->path); printf("Synchronize cache failed, status " "== 0x%x, scsi status == 0x%x\n", csio.ccb_h.status, csio.scsi_status); } } } return (0); } static void dainit(void) { cam_status status; struct cam_path *path; /* * Create our extend array for storing the devices we attach to. */ daperiphs = cam_extend_new(); SLIST_INIT(&softc_list); if (daperiphs == NULL) { printf("da: Failed to alloc extend array!\n"); return; } /* * Install a global async callback. This callback will * receive async callbacks like "new device found". */ status = xpt_create_path(&path, /*periph*/NULL, CAM_XPT_PATH_ID, CAM_TARGET_WILDCARD, CAM_LUN_WILDCARD); if (status == CAM_REQ_CMP) { struct ccb_setasync csa; xpt_setup_ccb(&csa.ccb_h, path, /*priority*/5); csa.ccb_h.func_code = XPT_SASYNC_CB; csa.event_enable = AC_FOUND_DEVICE; csa.callback = daasync; csa.callback_arg = NULL; xpt_action((union ccb *)&csa); status = csa.ccb_h.status; xpt_free_path(path); } if (status != CAM_REQ_CMP) { printf("da: Failed to attach master async callback " "due to status 0x%x!\n", status); } else { /* * Schedule a periodic event to occasionally send an * ordered tag to a device. */ timeout(dasendorderedtag, NULL, (DA_DEFAULT_TIMEOUT * hz) / DA_ORDEREDTAG_INTERVAL); /* Register our shutdown event handler */ if ((EVENTHANDLER_REGISTER(shutdown_post_sync, dashutdown, NULL, SHUTDOWN_PRI_DEFAULT)) == NULL) printf("dainit: shutdown event registration failed!\n"); } } static void daoninvalidate(struct cam_periph *periph) { int s; struct da_softc *softc; struct bio *q_bp; struct ccb_setasync csa; softc = (struct da_softc *)periph->softc; /* * De-register any async callbacks. */ xpt_setup_ccb(&csa.ccb_h, periph->path, /* priority */ 5); csa.ccb_h.func_code = XPT_SASYNC_CB; csa.event_enable = 0; csa.callback = daasync; csa.callback_arg = periph; xpt_action((union ccb *)&csa); softc->flags |= DA_FLAG_PACK_INVALID; /* * Although the oninvalidate() routines are always called at * splsoftcam, we need to be at splbio() here to keep the buffer * queue from being modified while we traverse it. */ s = splbio(); /* * Return all queued I/O with ENXIO. * XXX Handle any transactions queued to the card * with XPT_ABORT_CCB. */ while ((q_bp = bioq_first(&softc->bio_queue)) != NULL){ bioq_remove(&softc->bio_queue, q_bp); q_bp->bio_resid = q_bp->bio_bcount; biofinish(q_bp, NULL, ENXIO); } splx(s); SLIST_REMOVE(&softc_list, softc, da_softc, links); xpt_print_path(periph->path); printf("lost device\n"); } static void dacleanup(struct cam_periph *periph) { struct da_softc *softc; softc = (struct da_softc *)periph->softc; devstat_remove_entry(&softc->device_stats); cam_extend_release(daperiphs, periph->unit_number); xpt_print_path(periph->path); printf("removing device entry\n"); if (softc->dev) { disk_destroy(softc->dev); } free(softc, M_DEVBUF); } static void daasync(void *callback_arg, u_int32_t code, struct cam_path *path, void *arg) { struct cam_periph *periph; periph = (struct cam_periph *)callback_arg; switch (code) { case AC_FOUND_DEVICE: { struct ccb_getdev *cgd; cam_status status; cgd = (struct ccb_getdev *)arg; if (cgd == NULL) break; if (SID_TYPE(&cgd->inq_data) != T_DIRECT && SID_TYPE(&cgd->inq_data) != T_OPTICAL) break; /* * Allocate a peripheral instance for * this device and start the probe * process. */ status = cam_periph_alloc(daregister, daoninvalidate, dacleanup, dastart, "da", CAM_PERIPH_BIO, cgd->ccb_h.path, daasync, AC_FOUND_DEVICE, cgd); if (status != CAM_REQ_CMP && status != CAM_REQ_INPROG) printf("daasync: Unable to attach to new device " "due to status 0x%x\n", status); break; } case AC_SENT_BDR: case AC_BUS_RESET: { struct da_softc *softc; struct ccb_hdr *ccbh; int s; softc = (struct da_softc *)periph->softc; s = splsoftcam(); /* * Don't fail on the expected unit attention * that will occur. */ softc->flags |= DA_FLAG_RETRY_UA; LIST_FOREACH(ccbh, &softc->pending_ccbs, periph_links.le) ccbh->ccb_state |= DA_CCB_RETRY_UA; splx(s); /* FALLTHROUGH*/ } default: cam_periph_async(periph, code, path, arg); break; } } static cam_status daregister(struct cam_periph *periph, void *arg) { int s; struct da_softc *softc; struct ccb_setasync csa; struct ccb_getdev *cgd; caddr_t match; cgd = (struct ccb_getdev *)arg; if (periph == NULL) { printf("daregister: periph was NULL!!\n"); return(CAM_REQ_CMP_ERR); } if (cgd == NULL) { printf("daregister: no getdev CCB, can't register device\n"); return(CAM_REQ_CMP_ERR); } softc = (struct da_softc *)malloc(sizeof(*softc),M_DEVBUF,M_NOWAIT); if (softc == NULL) { printf("daregister: Unable to probe new device. " "Unable to allocate softc\n"); return(CAM_REQ_CMP_ERR); } bzero(softc, sizeof(*softc)); LIST_INIT(&softc->pending_ccbs); softc->state = DA_STATE_PROBE; bioq_init(&softc->bio_queue); if (SID_IS_REMOVABLE(&cgd->inq_data)) softc->flags |= DA_FLAG_PACK_REMOVABLE; if ((cgd->inq_data.flags & SID_CmdQue) != 0) softc->flags |= DA_FLAG_TAGGED_QUEUING; periph->softc = softc; cam_extend_set(daperiphs, periph->unit_number, periph); /* * See if this device has any quirks. */ match = cam_quirkmatch((caddr_t)&cgd->inq_data, (caddr_t)da_quirk_table, sizeof(da_quirk_table)/sizeof(*da_quirk_table), sizeof(*da_quirk_table), scsi_inquiry_match); if (match != NULL) softc->quirks = ((struct da_quirk_entry *)match)->quirks; else softc->quirks = DA_Q_NONE; if (softc->quirks & DA_Q_NO_6_BYTE) softc->minimum_cmd_size = 10; else softc->minimum_cmd_size = 6; /* * Block our timeout handler while we * add this softc to the dev list. */ s = splsoftclock(); SLIST_INSERT_HEAD(&softc_list, softc, links); splx(s); /* * The DA driver supports a blocksize, but * we don't know the blocksize until we do * a read capacity. So, set a flag to * indicate that the blocksize is * unavailable right now. We'll clear the * flag as soon as we've done a read capacity. */ devstat_add_entry(&softc->device_stats, "da", periph->unit_number, 0, DEVSTAT_BS_UNAVAILABLE, SID_TYPE(&cgd->inq_data) | DEVSTAT_TYPE_IF_SCSI, DEVSTAT_PRIORITY_DISK); /* * Register this media as a disk */ softc->dev = disk_create(periph->unit_number, &softc->disk, 0, &da_cdevsw, &dadisk_cdevsw); /* * Add async callbacks for bus reset and * bus device reset calls. I don't bother * checking if this fails as, in most cases, * the system will function just fine without * them and the only alternative would be to * not attach the device on failure. */ xpt_setup_ccb(&csa.ccb_h, periph->path, /*priority*/5); csa.ccb_h.func_code = XPT_SASYNC_CB; csa.event_enable = AC_SENT_BDR | AC_BUS_RESET | AC_LOST_DEVICE; csa.callback = daasync; csa.callback_arg = periph; xpt_action((union ccb *)&csa); /* * Lock this peripheral until we are setup. * This first call can't block */ (void)cam_periph_lock(periph, PRIBIO); xpt_schedule(periph, /*priority*/5); return(CAM_REQ_CMP); } static void dastart(struct cam_periph *periph, union ccb *start_ccb) { struct da_softc *softc; softc = (struct da_softc *)periph->softc; switch (softc->state) { case DA_STATE_NORMAL: { /* Pull a buffer from the queue and get going on it */ struct bio *bp; int s; /* * See if there is a buf with work for us to do.. */ s = splbio(); bp = bioq_first(&softc->bio_queue); if (periph->immediate_priority <= periph->pinfo.priority) { CAM_DEBUG_PRINT(CAM_DEBUG_SUBTRACE, ("queuing for immediate ccb\n")); start_ccb->ccb_h.ccb_state = DA_CCB_WAITING; SLIST_INSERT_HEAD(&periph->ccb_list, &start_ccb->ccb_h, periph_links.sle); periph->immediate_priority = CAM_PRIORITY_NONE; splx(s); wakeup(&periph->ccb_list); } else if (bp == NULL) { splx(s); xpt_release_ccb(start_ccb); } else { int oldspl; u_int8_t tag_code; bioq_remove(&softc->bio_queue, bp); devstat_start_transaction(&softc->device_stats); if ((bp->bio_flags & BIO_ORDERED) != 0 || (softc->flags & DA_FLAG_NEED_OTAG) != 0) { softc->flags &= ~DA_FLAG_NEED_OTAG; softc->ordered_tag_count++; tag_code = MSG_ORDERED_Q_TAG; } else { tag_code = MSG_SIMPLE_Q_TAG; } scsi_read_write(&start_ccb->csio, /*retries*/da_retry_count, dadone, tag_code, bp->bio_cmd == BIO_READ, /*byte2*/0, softc->minimum_cmd_size, bp->bio_pblkno, bp->bio_bcount / softc->params.secsize, bp->bio_data, bp->bio_bcount, /*sense_len*/SSD_FULL_SIZE, da_default_timeout * 1000); start_ccb->ccb_h.ccb_state = DA_CCB_BUFFER_IO; /* * Block out any asyncronous callbacks * while we touch the pending ccb list. */ oldspl = splcam(); LIST_INSERT_HEAD(&softc->pending_ccbs, &start_ccb->ccb_h, periph_links.le); splx(oldspl); /* We expect a unit attention from this device */ if ((softc->flags & DA_FLAG_RETRY_UA) != 0) { start_ccb->ccb_h.ccb_state |= DA_CCB_RETRY_UA; softc->flags &= ~DA_FLAG_RETRY_UA; } start_ccb->ccb_h.ccb_bp = bp; bp = bioq_first(&softc->bio_queue); splx(s); xpt_action(start_ccb); } if (bp != NULL) { /* Have more work to do, so ensure we stay scheduled */ xpt_schedule(periph, /* XXX priority */1); } break; } case DA_STATE_PROBE: { struct ccb_scsiio *csio; struct scsi_read_capacity_data *rcap; rcap = (struct scsi_read_capacity_data *)malloc(sizeof(*rcap), M_TEMP, M_NOWAIT); if (rcap == NULL) { printf("dastart: Couldn't malloc read_capacity data\n"); /* da_free_periph??? */ break; } csio = &start_ccb->csio; scsi_read_capacity(csio, /*retries*/4, dadone, MSG_SIMPLE_Q_TAG, rcap, SSD_FULL_SIZE, /*timeout*/5000); start_ccb->ccb_h.ccb_bp = NULL; start_ccb->ccb_h.ccb_state = DA_CCB_PROBE; xpt_action(start_ccb); break; } } } static void dadone(struct cam_periph *periph, union ccb *done_ccb) { struct da_softc *softc; struct ccb_scsiio *csio; softc = (struct da_softc *)periph->softc; csio = &done_ccb->csio; switch (csio->ccb_h.ccb_state & DA_CCB_TYPE_MASK) { case DA_CCB_BUFFER_IO: { struct bio *bp; int oldspl; bp = (struct bio *)done_ccb->ccb_h.ccb_bp; if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { int error; int s; int sf; if ((csio->ccb_h.ccb_state & DA_CCB_RETRY_UA) != 0) sf = SF_RETRY_UA; else sf = 0; error = daerror(done_ccb, CAM_RETRY_SELTO, sf); if (error == ERESTART) { /* * A retry was scheuled, so * just return. */ return; } if (error != 0) { struct bio *q_bp; s = splbio(); if (error == ENXIO) { /* * Catastrophic error. Mark our pack as * invalid. */ /* XXX See if this is really a media * change first. */ xpt_print_path(periph->path); printf("Invalidating pack\n"); softc->flags |= DA_FLAG_PACK_INVALID; } /* * return all queued I/O with EIO, so that * the client can retry these I/Os in the * proper order should it attempt to recover. */ while ((q_bp = bioq_first(&softc->bio_queue)) != NULL) { bioq_remove(&softc->bio_queue, q_bp); q_bp->bio_resid = q_bp->bio_bcount; biofinish(q_bp, NULL, EIO); } splx(s); bp->bio_error = error; bp->bio_resid = bp->bio_bcount; bp->bio_flags |= BIO_ERROR; } else { bp->bio_resid = csio->resid; bp->bio_error = 0; if (bp->bio_resid != 0) { /* Short transfer ??? */ bp->bio_flags |= BIO_ERROR; } } if ((done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) cam_release_devq(done_ccb->ccb_h.path, /*relsim_flags*/0, /*reduction*/0, /*timeout*/0, /*getcount_only*/0); } else { if ((done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) panic("REQ_CMP with QFRZN"); bp->bio_resid = csio->resid; if (csio->resid > 0) bp->bio_flags |= BIO_ERROR; } /* * Block out any asyncronous callbacks * while we touch the pending ccb list. */ oldspl = splcam(); LIST_REMOVE(&done_ccb->ccb_h, periph_links.le); splx(oldspl); if (softc->device_stats.busy_count == 0) softc->flags |= DA_FLAG_WENT_IDLE; biofinish(bp, &softc->device_stats, 0); break; } case DA_CCB_PROBE: { struct scsi_read_capacity_data *rdcap; char announce_buf[80]; rdcap = (struct scsi_read_capacity_data *)csio->data_ptr; if ((csio->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { struct disk_params *dp; dasetgeom(periph, rdcap); dp = &softc->params; snprintf(announce_buf, sizeof(announce_buf), "%luMB (%u %u byte sectors: %dH %dS/T %dC)", (unsigned long) (((u_int64_t)dp->secsize * dp->sectors) / (1024*1024)), dp->sectors, dp->secsize, dp->heads, dp->secs_per_track, dp->cylinders); } else { int error; announce_buf[0] = '\0'; /* * Retry any UNIT ATTENTION type errors. They * are expected at boot. */ error = daerror(done_ccb, CAM_RETRY_SELTO, SF_RETRY_UA|SF_NO_PRINT); if (error == ERESTART) { /* * A retry was scheuled, so * just return. */ return; } else if (error != 0) { struct scsi_sense_data *sense; int asc, ascq; int sense_key, error_code; int have_sense; cam_status status; struct ccb_getdev cgd; /* Don't wedge this device's queue */ status = done_ccb->ccb_h.status; if ((status & CAM_DEV_QFRZN) != 0) cam_release_devq(done_ccb->ccb_h.path, /*relsim_flags*/0, /*reduction*/0, /*timeout*/0, /*getcount_only*/0); xpt_setup_ccb(&cgd.ccb_h, done_ccb->ccb_h.path, /* priority */ 1); cgd.ccb_h.func_code = XPT_GDEV_TYPE; xpt_action((union ccb *)&cgd); if (((csio->ccb_h.flags & CAM_SENSE_PHYS) != 0) || ((csio->ccb_h.flags & CAM_SENSE_PTR) != 0) || ((status & CAM_AUTOSNS_VALID) == 0)) have_sense = FALSE; else have_sense = TRUE; if (have_sense) { sense = &csio->sense_data; scsi_extract_sense(sense, &error_code, &sense_key, &asc, &ascq); } /* * Attach to anything that claims to be a * direct access or optical disk device, * as long as it doesn't return a "Logical * unit not supported" (0x25) error. */ if ((have_sense) && (asc != 0x25) && (error_code == SSD_CURRENT_ERROR)) { const char *sense_key_desc; const char *asc_desc; scsi_sense_desc(sense_key, asc, ascq, &cgd.inq_data, &sense_key_desc, &asc_desc); snprintf(announce_buf, sizeof(announce_buf), "Attempt to query device " "size failed: %s, %s", sense_key_desc, asc_desc); } else { if (have_sense) scsi_sense_print( &done_ccb->csio); else { xpt_print_path(periph->path); printf("got CAM status %#x\n", done_ccb->ccb_h.status); } xpt_print_path(periph->path); printf("fatal error, failed" " to attach to device\n"); /* * Free up resources. */ cam_periph_invalidate(periph); } } } free(rdcap, M_TEMP); if (announce_buf[0] != '\0') xpt_announce_periph(periph, announce_buf); softc->state = DA_STATE_NORMAL; /* * Since our peripheral may be invalidated by an error * above or an external event, we must release our CCB * before releasing the probe lock on the peripheral. * The peripheral will only go away once the last lock * is removed, and we need it around for the CCB release * operation. */ xpt_release_ccb(done_ccb); cam_periph_unlock(periph); return; } case DA_CCB_WAITING: { /* Caller will release the CCB */ wakeup(&done_ccb->ccb_h.cbfcnp); return; } case DA_CCB_DUMP: /* No-op. We're polling */ return; default: break; } xpt_release_ccb(done_ccb); } static int daerror(union ccb *ccb, u_int32_t cam_flags, u_int32_t sense_flags) { struct da_softc *softc; struct cam_periph *periph; periph = xpt_path_periph(ccb->ccb_h.path); softc = (struct da_softc *)periph->softc; /* * XXX * Until we have a better way of doing pack validation, * don't treat UAs as errors. */ sense_flags |= SF_RETRY_UA; return(cam_periph_error(ccb, cam_flags, sense_flags, &softc->saved_ccb)); } static void daprevent(struct cam_periph *periph, int action) { struct da_softc *softc; union ccb *ccb; int error; softc = (struct da_softc *)periph->softc; if (((action == PR_ALLOW) && (softc->flags & DA_FLAG_PACK_LOCKED) == 0) || ((action == PR_PREVENT) && (softc->flags & DA_FLAG_PACK_LOCKED) != 0)) { return; } ccb = cam_periph_getccb(periph, /*priority*/1); scsi_prevent(&ccb->csio, /*retries*/1, /*cbcfp*/dadone, MSG_SIMPLE_Q_TAG, action, SSD_FULL_SIZE, 5000); error = cam_periph_runccb(ccb, /*error_routine*/NULL, CAM_RETRY_SELTO, SF_RETRY_UA, &softc->device_stats); if (error == 0) { if (action == PR_ALLOW) softc->flags &= ~DA_FLAG_PACK_LOCKED; else softc->flags |= DA_FLAG_PACK_LOCKED; } xpt_release_ccb(ccb); } static void dasetgeom(struct cam_periph *periph, struct scsi_read_capacity_data * rdcap) { struct ccb_calc_geometry ccg; struct da_softc *softc; struct disk_params *dp; softc = (struct da_softc *)periph->softc; dp = &softc->params; dp->secsize = scsi_4btoul(rdcap->length); dp->sectors = scsi_4btoul(rdcap->addr) + 1; /* * Have the controller provide us with a geometry * for this disk. The only time the geometry * matters is when we boot and the controller * is the only one knowledgeable enough to come * up with something that will make this a bootable * device. */ xpt_setup_ccb(&ccg.ccb_h, periph->path, /*priority*/1); ccg.ccb_h.func_code = XPT_CALC_GEOMETRY; ccg.block_size = dp->secsize; ccg.volume_size = dp->sectors; ccg.heads = 0; ccg.secs_per_track = 0; ccg.cylinders = 0; xpt_action((union ccb*)&ccg); dp->heads = ccg.heads; dp->secs_per_track = ccg.secs_per_track; dp->cylinders = ccg.cylinders; } static void dasendorderedtag(void *arg) { struct da_softc *softc; int s; for (softc = SLIST_FIRST(&softc_list); softc != NULL; softc = SLIST_NEXT(softc, links)) { s = splsoftcam(); if ((softc->ordered_tag_count == 0) && ((softc->flags & DA_FLAG_WENT_IDLE) == 0)) { softc->flags |= DA_FLAG_NEED_OTAG; } if (softc->device_stats.busy_count > 0) softc->flags &= ~DA_FLAG_WENT_IDLE; softc->ordered_tag_count = 0; splx(s); } /* Queue us up again */ timeout(dasendorderedtag, NULL, (da_default_timeout * hz) / DA_ORDEREDTAG_INTERVAL); } /* * Step through all DA peripheral drivers, and if the device is still open, * sync the disk cache to physical media. */ static void dashutdown(void * arg, int howto) { struct cam_periph *periph; struct da_softc *softc; TAILQ_FOREACH(periph, &dadriver.units, unit_links) { union ccb ccb; softc = (struct da_softc *)periph->softc; /* * We only sync the cache if the drive is still open, and * if the drive is capable of it.. */ if (((softc->flags & DA_FLAG_OPEN) == 0) || (softc->quirks & DA_Q_NO_SYNC_CACHE)) continue; xpt_setup_ccb(&ccb.ccb_h, periph->path, /*priority*/1); ccb.ccb_h.ccb_state = DA_CCB_DUMP; scsi_synchronize_cache(&ccb.csio, /*retries*/1, /*cbfcnp*/dadone, MSG_SIMPLE_Q_TAG, /*begin_lba*/0, /* whole disk */ /*lb_count*/0, SSD_FULL_SIZE, 60 * 60 * 1000); xpt_polled_action(&ccb); if ((ccb.ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { if (((ccb.ccb_h.status & CAM_STATUS_MASK) == CAM_SCSI_STATUS_ERROR) && (ccb.csio.scsi_status == SCSI_STATUS_CHECK_COND)){ int error_code, sense_key, asc, ascq; scsi_extract_sense(&ccb.csio.sense_data, &error_code, &sense_key, &asc, &ascq); if (sense_key != SSD_KEY_ILLEGAL_REQUEST) scsi_sense_print(&ccb.csio); } else { xpt_print_path(periph->path); printf("Synchronize cache failed, status " "== 0x%x, scsi status == 0x%x\n", ccb.ccb_h.status, ccb.csio.scsi_status); } } if ((ccb.ccb_h.status & CAM_DEV_QFRZN) != 0) cam_release_devq(ccb.ccb_h.path, /*relsim_flags*/0, /*reduction*/0, /*timeout*/0, /*getcount_only*/0); } } #else /* !_KERNEL */ /* * XXX This is only left out of the kernel build to silence warnings. If, * for some reason this function is used in the kernel, the ifdefs should * be moved so it is included both in the kernel and userland. */ void scsi_format_unit(struct ccb_scsiio *csio, u_int32_t retries, void (*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, u_int8_t byte2, u_int16_t ileave, u_int8_t *data_ptr, u_int32_t dxfer_len, u_int8_t sense_len, u_int32_t timeout) { struct scsi_format_unit *scsi_cmd; scsi_cmd = (struct scsi_format_unit *)&csio->cdb_io.cdb_bytes; scsi_cmd->opcode = FORMAT_UNIT; scsi_cmd->byte2 = byte2; scsi_ulto2b(ileave, scsi_cmd->interleave); cam_fill_csio(csio, retries, cbfcnp, /*flags*/ (dxfer_len > 0) ? CAM_DIR_OUT : CAM_DIR_NONE, tag_action, data_ptr, dxfer_len, sense_len, sizeof(*scsi_cmd), timeout); } #endif /* _KERNEL */ Index: head/sys/dev/usb/usbdevs =================================================================== --- head/sys/dev/usb/usbdevs (revision 90014) +++ head/sys/dev/usb/usbdevs (revision 90015) @@ -1,1014 +1,1018 @@ $FreeBSD$ /* * Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Lennart Augustsson (lennart@augustsson.net) at * Carlstedt Research & Technology. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the NetBSD * Foundation, Inc. and its contributors. * 4. Neither the name of The NetBSD Foundation nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * List of known USB vendors * * Adding an ID and its string description for a device to the usbdevs file, * enables the USB stack to print a useful description of the device that was * connected. * * The ID should be added in usbdevs and then the files usbdevs.h and * usbdevs_data.h need to be regenerated. * * # edit usbdevs * make -f Makefile.usbdevs * # test your change * cd ../../modules/usb * make * # commit, if appropriate * cvs -m "ID for device XYZ" commit usbdevs * # commit the derived files after the $ FreeBSD $ has been updated. * cvs commit usbdevs.h usbdevs_data.h * * Please note that these IDs do not do anything. Adding an ID in usbdevs and * regenerating the usbdevs.h and usbdevs_data.h only makes a symbolic name * available to the source code and does not change any functionality, nor does * it make your device available to a specific driver. It will however make * the descriptive string available if a device does not provide the string * itself. * * After adding a vendor ID VNDR and a product ID PRDCT you will have the * following extra defines: * #define USB_VENDOR_VNDR 0x???? * #define USB_PRODUCT_VNDR_PRDCT 0x???? * * You will have to add these defines to the respective probe routines to make * the device recognised by the appropriate device driver. */ vendor AOX 0x03e8 AOX, Inc. vendor ATMEL 0x03eb Atmel Corp. vendor MITSUMI 0x03ee Mitsumi vendor HP 0x03f0 Hewlett-Packard vendor ADAPTEC 0x03f3 Adaptec, Inc. vendor NATIONAL 0x0400 National Semiconductor vendor ACERLABS 0x0402 Acer Labs, Inc. vendor FTDI 0x0403 Future Technology Devices vendor NEC 0x0409 NEC vendor KODAK 0x040a Eastman Kodak Corp. vendor MELCO 0x0411 Melco, Inc. vendor CREATIVE 0x041e Creative vendor ADI 0x0422 ADI Systems, Inc. vendor CATC 0x0423 Computer Access Technology Corp. vendor GRAVIS 0x0428 Advanced Gravis Computer Tech. Ltd. vendor SUN 0x0430 Sun Microsystems vendor TAUGA 0x0436 Taugagreining HF vendor AMD 0x0438 Advanced Micro Devices vendor LEXMARK 0x043d Lexmark International, Inc. vendor NANAO 0x0440 NANAO Corp. vendor ALPS 0x044e Alps Electric Co., Ltd. vendor THRUST 0x044f Thrustmaster vendor TI 0x0451 Texas Instruments vendor ANALOGDEVICES 0x0456 Analog Devices, Inc. vendor KYE 0x0458 KYE Systems Corp. vendor DIAMOND2 0x045a Diamond (Supra) vendor MICROSOFT 0x045e Microsoft vendor PRIMAX 0x0461 Primax Electronics vendor AMP 0x0464 AMP, Inc. vendor CHERRY 0x046a Cherry Mikroschalter GmbH vendor MEGATRENDS 0x046b American Megatrends vendor LOGITECH 0x046d Logitech, Inc. vendor BTC 0x046e Behavior Tech. Computer vendor PHILIPS 0x0471 Philips vendor CONNECTIX 0x0478 Connectix Corp. vendor KENSINGTON 0x047d Kensington vendor LUCENT 0x047e Lucent vendor STMICRO 0x0483 STMicroelectronics vendor YAMAHA 0x0499 YAMAHA Corp. vendor COMPAQ 0x049f Compaq Computers vendor ACERP 0x04a5 Acer Peripherals, Inc. vendor VISIONEER 0x04a7 Visioneer vendor CANON 0x04a9 Canon, Inc. vendor NIKON 0x04b0 Nikon vendor IBM 0x04b3 IBM Corporation vendor CYPRESS 0x04b4 Cypress Semiconductor vendor EPSON 0x04b8 Seiko Epson Corp. vendor RAINBOW 0x04b9 Rainbow Technologies vendor IODATA 0x04bb I/O Data vendor TDK 0x04bf TDK Corp. vendor 3COMUSR 0x04c1 U.S. Robotics vendor METHODE 0x04c2 Methode Electronics Far East PTE Ltd. vendor MAXISWITCH 0x04c3 Maxi Switch, Inc. vendor LOCKHEEDMER 0x04c4 Lockheed Martin Energy Research vendor FUJITSU 0x04c5 Fujitsu Ltd. vendor TOSHIBAAM 0x04c6 Toshiba America Electronic Components vendor MICROMACRO 0x04c7 Micro Macro Technologies vendor KONICA 0x04c8 Konica Corp. vendor LITEON 0x04ca Lite-On Technology Corp. vendor FUJIPHOTO 0x04cb Fuji Photo Film Co., Ltd. vendor PHILIPSSEMI 0x04cc Philips Semiconductors vendor TATUNG 0x04cd Tatung Co. Of America vendor SCANLOGIC 0x04ce ScanLogic Corp. vendor MYSON 0x04cf Myson Technology Inc. vendor DIGI2 0x04d0 Digi International vendor ITTCANON 0x04d1 ITT Canon vendor ALTEC 0x04d2 Altec Lansing Technologies, Inc. vendor PANASONIC 0x04da Panasonic (Matsushita) vendor SHUTTLE 0x04e6 Shuttle Technology vendor ANNABOOKS 0x04ed Annabooks vendor CHICONY 0x04f2 Chicony Electronics Co., Ltd. vendor BROTHER 0x04f9 Brother Industries, Ltd. vendor DALLAS 0x04fa Dallas Semiconductor vendor ACER 0x0502 Acer, Inc. vendor 3COM 0x0506 3Com Corp. vendor AZTECH 0x0509 Aztech Systems Ltd vendor BELKIN 0x050d Belkin Components vendor KAWATSU 0x050f Kawatsu Semiconductor, Inc. vendor APC 0x051d American Power Conversion vendor CONNECTEK 0x0522 Advanced Connectek USA, Inc. vendor NETCHIP 0x0525 NetChip Technology vendor ALTRA 0x0527 ALTRA vendor ATI 0x0528 ATI Technologies, Inc. vendor AKS 0x0529 Aladdin Knowledge Systems vendor UNIACCESS 0x0540 Universal Access vendor XIRLINK 0x0545 Xirlink, Inc. vendor ANCHOR 0x0547 Anchor Chips, Inc. vendor SONY 0x054c Sony Corp. vendor VISION 0x0553 VLSI Vision Ltd. vendor ASAHIKASEI 0x0556 Asahi Kasei Microsystems Co., Ltd vendor ATEN 0x0557 ATEN International Co. Ltd. vendor MUSTEK 0x055f Mustek Systems, Inc. vendor TELEX 0x0562 Telex Communications, Inc. vendor PERACOM 0x0565 Peracom Networks, Inc. vendor ALCOR2 0x0566 Alcor Micro, Inc. vendor WACOM 0x056a WACOM Corp. Ltd. vendor ETEK 0x056c e-TEK Labs vendor EIZO 0x056d EIZO vendor ELECOM 0x056e Elecom Corp. Ltd. vendor HAUPPAUGE 0x0573 Hauppauge Computer Works vendor BAFO 0x0576 BAFO/Quality Computer Accessories vendor YEDATA 0x057b Y-E Data vendor AVM 0x057c AVM GmbH vendor QUICKSHOT 0x057f Quickshot vendor ROLAND 0x0582 Roland Corp. vendor ROCKFIRE 0x0583 Rockfire vendor ZYXEL 0x0586 ZyXEL Communication Co. vendor ALCOR 0x058f Alcor Micro, Inc. vendor IOMEGA 0x059b Iomega Corp. vendor ATREND 0x059c A-Trend Technology Co., Ltd. vendor AID 0x059d Advanced Input Devices vendor LACIE 0x059f LaCie vendor OMNIVISION 0x05a9 OmniVision vendor INSYSTEM 0x05ab In-System Design vendor APPLE 0x05ac Apple Computer vendor DIGI 0x05c5 Digi International vendor QTRONIX 0x05c7 Qtronix Corp vendor ELSA 0x05cc ELSA Gmbh vendor BRAINBOXES 0x05d1 Brainboxes Limited vendor ULTIMA 0x05d8 Ultima vendor AXIOHM 0x05d9 Axiohm Transaction Solutions vendor MICROTEK 0x05da Microtek vendor LEXAR 0x05dc Lexar Media vendor SYMBOL 0x05e0 Symbol Technologies vendor GENESYS 0x05e3 Genesys Logic, Inc. vendor FUJI 0x05e5 Fuji Electric Co., Ltd. vendor KEITHLEY 0x05e6 Keithley Instruments vendor EIZONANAO 0x05e7 EIZO Nanao vendor KLSI 0x05e9 Kawasaki LSI vendor FFC 0x05eb FFC Limited vendor ANKO 0x05ef Anko Electronic Co., Ltd. vendor PIENGINEERING 0x05f3 P.I. Engineering vendor AOC 0x05f6 AOC International vendor CHIC 0x05fe Chic Technology vendor BARCO 0x0600 Barco Display Systems vendor BRIDGE 0x0607 Bridge Information Co., Ltd. vendor SOLIDYEAR 0x060b Solid Year vendor BIORAD 0x0614 Bio-Rad Laboratories vendor MACALLY 0x0618 Macally vendor ACTLABS 0x061c Act Labs, Ltd. vendor ALARIS 0x0620 Alaris, Inc. vendor APEX 0x0624 Apex, Inc. vendor AVISION 0x0638 Avision, Inc. vendor TEAC 0x0644 TEAC vendor LINKSYS 0x066b Linksys, Inc. vendor ACERSA 0x066e Acer Semiconductor America, Inc. vendor AIWA 0x0677 Aiwa Co., Ltd. vendor ACARD 0x0678 ACARD Technology Corp. vendor PROLIFIC 0x067b Prolific Technology Inc. vendor ADVANCELOGIC 0x0680 Avance Logic, Inc. vendor HAGIWARA 0x0693 Hagiwara Sys-Com vendor CTX 0x0698 Chuntex vendor ASKEY 0x069a Askey Computer Corp. vendor ALCATELT 0x06b9 Alcatel Telecom vendor AGFA 0x06bd AGFA-Gevaert NV vendor ASIAMD 0x06be Asia Microelectronic Development, Inc. vendor BIZLINK 0x06c4 Bizlink International Corp. vendor KEYSPAN 0x06cd Keyspan vendor AASHIMA 0x06d6 Aashima Technology B.V. vendor MULTITECH 0x06e0 MultiTech vendor ADS 0x06e1 ADS Technologies, Inc. vendor ALCATELM 0x06e4 Alcatel Microelectronics vendor SIRIUS 0x06ea Sirius Technologies vendor BOSTON 0x06fd Boston Acoustics vendor SMC 0x0707 Standard Microsystems Corp vendor PUTERCOM 0x0708 Putercom Co., Ltd. vendor MCT 0x0711 MCT Corp. vendor AUREAL 0x0755 Aureal Semiconductor vendor MIDIMAN 0x0763 Midiman vendor GRIFFIN 0x077d Griffin Technology, Inc. vendor SANDISK 0x0781 SanDisk Corp vendor BRIMAX 0x078e Brimax, Inc. vendor AXIS 0x0792 Axis Communications AB vendor ABL 0x0794 ABL Electronics Corp. vendor ALFADATA 0x079d Alfadata Computer Corp. vendor NATIONALTECH 0x07a2 National Technical Systems vendor ONNTO 0x07a3 Onnto Corp. vendor BE 0x07a4 Be, Inc. vendor ADMTEK 0x07a6 ADMtek, Inc. vendor COREGA 0x07aa Corega vendor FREECOM 0x07ab Freecom vendor MICROTECH 0x07af Microtech vendor OLYMPUS 0x07b4 Olympus vendor ABOCOM 0x07b8 AboCom Systems, Inc. vendor KEISOKUGIKEN 0x07c1 Keisokugiken Corp. vendor APG 0x07c5 APG Cash Drawer vendor BUG 0x07c8 B.U.G., Inc. vendor ALLIEDTELESYN 0x07c9 Allied Telesyn International vendor AVERMEDIA 0x07ca AVerMedia Technologies, Inc. vendor SIIG 0x07cc SIIG vendor CASIO 0x07cf CASIO vendor APTIO 0x07d2 Aptio Products, Inc. vendor ARASAN 0x07da Arasan Chip Systems vendor ALLIEDCABLE 0x07e6 Allied Cable Corp. vendor STSN 0x07ef STSN vendor ZOOM 0x0803 Zoom Telephonics, Inc. vendor BROADLOGIC 0x0827 BroadLogic, Inc. vendor HANDSPRING 0x082d Handspring, Inc. vendor ACTIONSTAR 0x0835 Action Star Enterprise Co., Ltd. vendor PALM 0x0830 Palm Computing, Inc. vendor ACCTON 0x083a Accton Technology Corp. vendor DIAMOND 0x0841 Diamond vendor NETGEAR 0x0846 BayNETGEAR, Inc. vendor ACTIVEWIRE 0x0854 ActiveWire, Inc. vendor METRICOM 0x0870 Metricom vendor ADESSOKBTEK 0x087c ADESSO/Kbtek America, Inc. vendor APT 0x0880 APT Technologies, Inc. vendor BOCARESEARCH 0x0885 Boca Research, Inc. vendor ANDREA 0x08a8 Andrea Electronics vendor BURRBROWN 0x08bb Burr-Brown Japan, Ltd. vendor 2WIRE 0x08c8 2Wire, Inc vendor AIPTEK 0x08ca AIPTEK International, Inc. vendor SMARTBRIDGES 0x08d1 SmartBridges Pte Ltd. vendor BILLIONTON 0x08dd Billionton Systems, Inc. vendor EXTENDED 0x08e9 Extended Systems, Inc. vendor MSYSTEMS 0x08ec M-Systems vendor AUTHENTEC 0x08ff AuthenTec, Inc. vendor ALATION 0x0910 Alation Systems, Inc. vendor BIOMETRIC 0x0929 American Biometric Company vendor YANO 0x094f Yano vendor KINGSTON 0x0951 Kingston Technology vendor BLUEWATER 0x0956 BlueWater Systems, Inc. vendor AGILENT 0x0957 Agilent Technologies, Inc. vendor ADIRONDACK 0x0976 Adirondack Wire & Cable vendor BECKHOFF 0x0978 Beckhoff Gmbh vendor ALTIUS 0x09b3 Altius Solutions, Inc. vendor ARRIS 0x09c1 Arris Interactive LLC vendor ACTIVCARD 0x09c3 ACTIVCARD, INC. vendor ACTISYS 0x09c4 ACTiSYS Corp. vendor AFOURTECH 0x09da A-FOUR TECH CO., LTD. vendor AIMEX 0x09dc AIMEX Corp. vendor ADDONICS 0x09df Addonics Technologies Corp. vendor AKAI 0x09e8 AKAI professional M.I. Corp. vendor ARESCOM 0x09f5 ARESCOM vendor BAY 0x09f9 Bay Associates vendor ALTERA 0x09fb Altera vendor TREK 0x0a16 Trek Technology vendor ASAHIOPTICAL 0x0a17 Asahi Optical Co., Ltd. vendor BOCASYSTEMS 0x0a43 Boca Systems, Inc. vendor BROADCOM 0x0a5c Broadcom Corp. vendor GREENHOUSE 0x0a6b GREENHOUSE Co., Ltd. vendor GEOCAST 0x0a79 Geocast Network Systems vendor AGATE 0x0c08 Agate Technologies vendor MOTOROLA 0x1063 Motorola vendor PLX 0x10b5 PLX vendor BELKIN2 0x1293 Belkin Components (2nd) vendor SILICONPORTALS 0x1527 Silicon Portals Inc. vendor UMAX 0x1606 UMAX Data Systems, Inc. vendor INSIDEOUT 0x1608 Inside Out Networks vendor ENTREGA 0x1645 Entrega vendor ACTIONTEC 0x1668 Actiontec Electronics, Inc. vendor DLINK 0x2001 D-Link Corp +vendor DAISY 0x3579 Daisy Technology vendor INTEL 0x8086 Intel vendor HP2 0xf003 Hewlett-Packard /* * List of known products. Grouped by vendor. */ /* 3Com products */ product 3COM HOMECONN 0x009d HomeConnect USB Camera product 3COM 3C19250 0x03E8 3C19250 Ethernet adapter product 3COM USR56K 0x3021 U.S.Robotics 56000 Voice Faxmodem Pro product 3COM 3C460 0x11f8 HomeConnect Ethernet USB Adapter product 3COMUSR OFFICECONN 0x0082 3Com OfficeConnect Analog Modem product 3COMUSR USRISDN 0x008f 3Com U.S. Robotics Pro ISDN TA product 3COMUSR HOMECONN 0x009d 3Com HomeConnect camera product 3COMUSR USR56K 0x3021 U.S.Robotics 56000 Voice Faxmodem Pro /* AboCom products */ product ABOCOM URE450 0x4000 URE450 Ethernet Adapter product ABOCOM DSB650TX_PNA 0x4003 1/10/100 ethernet adapter /* Accton Technology Corp. products */ product ACCTON USB320_EC 0x1046 USB320-EC Ethernet Adapter /* Acer Peripherals, Inc. products */ product ACERP ACERSCAN_C310U 0x12a6 Acerscan C310U product ACERP ACERSCAN_320U 0x2022 Acerscan 320U product ACERP ACERSCAN_640U 0x2040 Acerscan 640U product ACERP ACERSCAN_620U 0x2060 Acerscan 620U /* ActiveWire, Inc. products */ product ACTIVEWIRE IOBOARD 0x0100 I/O Board product ACTIVEWIRE IOBOARD_FW1 0x0101 I/O Board, rev. 1 firmware /* ADMtek products */ product ADMTEK PEGASUS 0x0986 AN986 USB Ethernet adapter /* ADS products */ product ADS UBS10BT 0x0008 UBS-10BT Ethernet adapter /* Agate Technologies products */ product AGATE QDRIVE 0x0378 Q-Drive /* AGFA products */ product AGFA SNAPSCAN1212U 0x0001 SnapScan 1212U product AGFA SNAPSCAN1236U 0x0002 SnapScan 1236U product AGFA SNAPSCANTOUCH 0x0100 SnapScan Touch product AGFA SNAPSCAN1212U2 0x2061 SnapScan 1212U product AGFA SNAPSCANE40 0x208d SnapScan e40 product AGFA SNAPSCANE50 0x208f SnapScan e50 product AGFA SNAPSCANE20 0x2091 SnapScan e20 product AGFA SNAPSCANE25 0x2095 SnapScan e25 product AGFA SNAPSCANE26 0x2097 SnapScan e26 product AGFA SNAPSCANE52 0x20fd SnapScan e52 /* Agiler products */ product ELECOM MOUSE29UO 0x0002 mouse 29UO /* AKS products */ product AKS USBHASP 0x0001 USB-HASP 0.06 /* Alcor Micro, Inc. products */ product ALCOR2 KBD_HUB 0x2802 Kbd Hub product ALCOR MA_KBD_HUB 0x9213 MacAlly Kbd Hub product ALCOR AU9814 0x9215 AU9814 Hub product ALCOR SM_KBD 0x9410 MicroConnectors/StrongMan Keyboard product ALCOR NEC_KBD_HUB 0x9472 NEC Kbd Hub /* Altec Lansing products */ product ALTEC ADA70 0x0070 ADA70 Speakers product ALTEC ASC495 0xff05 ASC495 Speakers /* American Power Conversion products */ product APC UPSPRO500 0x0002 Back-UPS Pro 500 /* Anchor products */ product ANCHOR EZUSB 0x2131 EZUSB product ANCHOR EZLINK 0x2720 EZLINK /* AOX, Inc. products */ product AOX USB101 0x0008 USB ethernet controller engine /* Apple Computer products */ product APPLE OPTMOUSE 0x0302 Optical mouse product APPLE SPEAKERS 0x1101 Speakers /* ATen products */ product ATEN UC1284 0x2001 Parallel printer adapter product ATEN UC10T 0x2002 10Mbps ethernet adapter product ATEN UC232A 0x2008 Serial adapter /* Atmel Comp. products */ product ATMEL UHB124 0x3301 UHB124 hub product ATMEL DWL120 0x7602 DWL-120 Wireless adapter /* Avision products */ product AVISION 1200U 0x0268 1200U scanner /* Belkin products */ /*product BELKIN F5U111 0x???? F5U111 Ethernet adapter*/ product BELKIN2 F5U002 0x0002 F5U002 Parallel printer adapter /* Billionton products */ product BILLIONTON USB100 0x0986 USB100N 10/100 FastEthernet Adapter /* Brother Industries products */ product BROTHER HL1050 0x0002 HL-1050 laser printer /* Behavior Technology Computer products */ product BTC BTC7932 0x6782 Keyboard with mouse port /* Canon, Inc. products */ product CANON N656U 0x2206 CANOSCAN N656U product CANON S10 0x3041 PowerShot S10 product CANON S100 0x3045 PowerShot S100 /* CATC products */ product CATC NETMATE 0x000a Netmate ethernet adapter product CATC NETMATE2 0x000c Netmate2 ethernet adapter product CATC CHIEF 0x000d USB Chief Bus & Protocol Analyzer product CATC ANDROMEDA 0x1237 Andromeda hub /* CASIO products */ product CASIO NAMELAND 0x4001 CASIO Nameland EZ-USB /* Cherry products */ product CHERRY MY3000KBD 0x0001 My3000 keyboard product CHERRY MY3000HUB 0x0003 My3000 hub /* Chic Technology products */ product CHIC MOUSE1 0x0001 mouse product CHIC CYPRESS 0x0003 Cypress USB Mouse /* Chicony products */ product CHICONY KB8933 0x0001 KB-8933 keyboard /* Compaq products */ product COMPAQ PJB100 0x504a Personal Jukebox PJB100 /* Connectix products */ product CONNECTIX QUICKCAM 0x0001 QuickCam /* Corega products */ product COREGA ETHER_USB_T 0x0001 Ether USB-T product COREGA FETHER_USB_TX 0x0004 FEther USB-TX /* Creative products */ product CREATIVE NOMAD_II 0x1002 Nomad II MP3 player /* CTX products */ product CTX EX1300 0x9999 Ex1300 hub /* Cypress Semiconductor products */ product CYPRESS MOUSE 0x0001 mouse product CYPRESS THERMO 0x0002 thermometer product CYPRESS FMRADIO 0x1002 FM Radio /* D-Link products */ /*product DLINK DSBS25 0x0100 DSB-S25 serial adapter*/ product DLINK DSB650C 0x4000 10Mbps ethernet adapter product DLINK DSB650TX 0x4002 10/100 ethernet adapter product DLINK DSB650TX_PNA 0x4003 1/10/100 ethernet adapter product DLINK DSB650 0xABC1 10/100 ethernet adapter + +/* Daisy Technology products */ +product DAISY DMC 0x6901 PhotoClip Camera /* Dallas Semiconductor products */ product DALLAS J6502 0x4201 J-6502 speakers /* Diamond products */ product DIAMOND RIO500USB 0x0001 Rio 500 USB /* Digi International products */ product DIGI ACCELEPORT2 0x0002 AccelePort USB 2 product DIGI ACCELEPORT4 0x0004 AccelePort USB 4 product DIGI ACCELEPORT8 0x0008 AccelePort USB 8 /* EIZO products */ product EIZO HUB 0x0000 hub product EIZO MONITOR 0x0001 monitor /* Elsa products */ product ELSA MODEM1 0x2265 ELSA Modem Board /* Entrega products */ product ENTREGA 1S 0x0001 1S serial connector product ENTREGA 2S 0x0002 2S serial connector product ENTREGA 1S25 0x0003 1S25 serial connector product ENTREGA 4S 0x0004 4S serial connector product ENTREGA E45 0x0005 E45 Ethernet adapter product ENTREGA CENTRONICS 0x0006 Centronics connector product ENTREGA 1S9 0x0093 1S9 serial connector product ENTREGA EZUSB 0x8000 EZ-USB /*product ENTREGA SERIAL 0x8001 DB25 Serial connector*/ product ENTREGA 2U4S 0x8004 2U4S serial connector/usb hub /*product ENTREGA SERIAL_DB9 0x8093 DB9 Serial connector*/ /* Epson products */ product EPSON PRINTER1 0x0001 USB Printer product EPSON PRINTER2 0x0002 ISD USB Smart Cable for Mac product EPSON PRINTER3 0x0003 ISD USB Smart Cable product EPSON PRINTER5 0x0005 USB Printer product EPSON 636 0x0101 Perfection 636U / 636Photo scanner product EPSON 610 0x0103 Perfection 610 scanner product EPSON 1200 0x0104 Perfection 1200U / 1200Photo scanner product EPSON 1600 0x0107 Expression 1600 scanner product EPSON 1640 0x010a Perfection 1640SU scanner product EPSON 1240 0x010b Perfection 1240U / 1240Photo scanner /* e-TEK Labs products */ product ETEK 1COM 0x8007 Serial port /* Extended Systems products */ product EXTENDED XTNDACCESS 0x0100 XTNDAccess IrDA /* Gravis products */ product GRAVIS GAMEPADPRO 0x4001 GamePad Pro /* GREENHOUSE products */ product GREENHOUSE KANA21 0x0001 CF-writer with Portable MP3 Player /* Griffin Technology */ product GRIFFIN IMATE 0x0405 iMate, ADB adapter /* Freecom products */ product FREECOM DVD 0xfc01 Connector for DVD drive /* Future Technology Devices products */ product FTDI SERIAL 0x8372 Serial converter /* Fuji photo products */ product FUJIPHOTO MASS0100 0x0100 Mass Storage /* Hagiwara products */ product HAGIWARA FGSM 0x0002 FlashGate SmartMedia Card Reader product HAGIWARA FGCF 0x0003 FlashGate CompactFlash Card Reader product HAGIWARA FG 0x0005 FlashGate /* Handspring, Inc. */ product HANDSPRING VISOR 0x0100 Handspring Visor /* Hauppauge Computer Works */ product HAUPPAUGE WINTV_USB_FM 0x4d12 WinTV USB FM /* HP products */ product HP 895C 0x0004 DeskJet 895C product HP 4100C 0x0101 Scanjet 4100C product HP S20 0x0102 Photosmart S20 product HP 880C 0x0104 DeskJet 880C product HP 4200C 0x0105 ScanJet 4200C product HP CDWRITERPLUS 0x0107 CD-Writer Plus product HP KBDHUB 0x010c Multimedia Keyboard Hub product HP 6200C 0x0201 ScanJet 6200C product HP S20b 0x0202 PhotoSmart S20 product HP 815C 0x0204 DeskJet 815C product HP 3300C 0x0205 ScanJet 3300C product HP CDW8200 0x0207 CD-Writer Plus 8200e product HP 810C 0x0304 DeskJet 810C/812C product HP 4300C 0x0305 Scanjet 4300C product HP G85XI 0x0311 OfficeJet G85xi product HP 5200C 0x0401 Scanjet 5200C product HP 830C 0x0404 DeskJet 830C product HP 3400CSE 0x0405 ScanJet 3400cse product HP 6300C 0x0601 Scanjet 6300C product HP 840C 0x0604 DeskJet 840c product HP 5300C 0x0701 Scanjet 5300C product HP 970CSE 0x1004 Deskjet 970Cse product HP 930C 0x1204 DeskJet 930c product HP 640C 0x2004 DeskJet 640c product HP P1100 0x3102 Photosmart P1100 /* HP products */ product HP2 C500 0x6002 PhotoSmart C500 /* IBM Corporation */ product IBM USBCDROMDRIVE 0x4427 USB CD-ROM Drive /* Inside Out Networks products */ product INSIDEOUT EDGEPORT4 0x0001 EdgePort/4 serial ports /* In-System products */ product INSYSTEM F5U002 0x0002 Parallel printer adapter product INSYSTEM ATAPI 0x0031 ATAPI adapter product INSYSTEM ISD110 0x0200 IDE adapter ISD110 product INSYSTEM ISD105 0x0202 IDE adapter ISD105 product INSYSTEM USBCABLE 0x081a USB cable /* Intel products */ product INTEL EASYPC_CAMERA 0x0110 Easy PC Camera product INTEL TESTBOARD 0x9890 82930 test board /* I/O DATA products */ product IODATA USBETT 0x0901 USB ETT product IODATA USBETTX 0x0904 USB ETTX product IODATA USBRSAQ 0x0a03 USB serial adapter USB-RSAQ1 /* Iomega products */ product IOMEGA ZIP100 0x0001 Zip 100 product IOMEGA ZIP250 0x0030 Zip 250 /* Kawasaki products */ product KLSI DUH3E10BT 0x0008 USB ethernet controller engine /* Kawatsu products */ product KAWATSU MH4000P 0x0003 MiniHub 4000P /* Keisokugiken Corp. products */ product KEISOKUGIKEN USBDAQ 0x0068 HKS-0200 USBDAQ /* Kawasaki LSI products (?) */ product KLSI DUH3E10BT 0x0008 10BT Ethernet adapter, in the DU-H3E /* Kensington products */ product KENSINGTON ORBIT 0x1003 Orbit USB/PS2 trackball product KENSINGTON TURBOBALL 0x1005 TurboBall /* Keyspan products */ product KEYSPAN USA28 0x0101 USA-28 serial adapter product KEYSPAN USA28X 0x0102 USA-28X serial adapter product KEYSPAN USA19 0x0103 USA-19 serial adapter product KEYSPAN USA18X 0x0105 USA-18X serial adapter product KEYSPAN USA19W 0x0106 USA-19W serial adapter product KEYSPAN USA49W 0x0109 USA-49W serial adapter /* Kingston products */ product KINGSTON KNU101TX 0x000a KNU101TX USB Ethernet /* Kodak products */ product KODAK DC220 0x0100 Digital Science DC220 product KODAK DC260 0x0110 Digital Science DC260 product KODAK DC265 0x0111 Digital Science DC265 product KODAK DC290 0x0112 Digital Science DC290 product KODAK DC240 0x0120 Digital Science DC240 product KODAK DC280 0x0130 Digital Science DC280 /* Konica Corp. Products */ product KONICA CAMERA 0x0720 Digital Color Camera /* KYE products */ product KYE NICHE 0x0001 Niche mouse product KYE NETSCROLL 0x0003 Genius NetScroll mouse product KYE FLIGHT2000 0x1004 Flight 2000 joystick product KYE VIVIDPRO 0x2001 ColorPage Vivid-Pro scanner /* LaCie products */ product LACIE HD 0xa601 Hard Disk product LACIE CDRW 0xa602 CD R/W /* Lexar products */ product LEXAR JUMPSHOT 0x0001 jumpSHOT CompactFlash Reader /* Lexmark products */ product LEXMARK S2450 0x0009 Optra S 2450 /* Linksys products */ product LINKSYS MAUSB2 0x0105 Camedia MAUSB-2 product LINKSYS USB10T 0x2202 USB10T Ethernet product LINKSYS USB100TX 0x2203 USB100TX Ethernet product LINKSYS USB100H1 0x2204 USB100H1 Ethernet/HPNA product LINKSYS USB10TA 0x2206 USB10TA Ethernet product LINKSYS USB10TX2 0x400b USB10TX /* Logitech products */ product LOGITECH M2452 0x0203 M2452 keyboard product LOGITECH M4848 0x0301 M4848 mouse product LOGITECH PAGESCAN 0x040f PageScan product LOGITECH QUICKCAMWEB 0x0801 QuickCam Web product LOGITECH QUICKCAMPRO 0x0810 QuickCam Pro product LOGITECH QUICKCAMEXP 0x0840 QuickCam Express product LOGITECH QUICKCAM 0x0850 QuickCam product LOGITECH N43 0xc000 N43 product LOGITECH N48 0xc001 N48 mouse product LOGITECH MBA47 0xc002 M-BA47 mouse product LOGITECH WMMOUSE 0xc004 WingMan Gaming Mouse product LOGITECH BD58 0xc00c BD58 mouse product LOGITECH UN58A 0xc030 iFeel Mouse product LOGITECH BB13 0xc401 USB-PS/2 Trackball product LOGITECH WMPAD 0xc208 WingMan GamePad Extreme product LOGITECH WMJOY 0xc281 WingMan Force joystick product LOGITECH RK53 0xc501 Cordless mouse product LOGITECH RB6 0xc503 Cordless keyboard product LOGITECH QUICKCAMPRO2 0xd001 QuickCam Pro /* Lucent products */ product LUCENT EVALKIT 0x1001 USS-720 evaluation kit /* Macally products */ product MACALLY MOUSE1 0x0101 mouse /* MCT Corp. */ product MCT HUB0100 0x0100 Hub product MCT USB232 0x0210 USB-232 Interface product MCT SITECOM_USB232 0x0230 Sitecom USB-232 Products product MCT DU_H3SP_USB232 0x0200 D-Link DU-H3SP USB BAY Hub /* Melco, Inc products */ product MELCO LUATX1 0x0001 LUA-TX Ethernet product MELCO LUATX5 0x0005 LUA-TX Ethernet product MELCO LUA2TX5 0x0009 LUA2-TX Ethernet /* Metricom products */ product METRICOM RICOCHET_GS 0x0001 Ricochet GS /* Microsoft products */ product MICROSOFT SIDEPREC 0x0008 SideWinder Precision Pro product MICROSOFT INTELLIMOUSE 0x0009 IntelliMouse product MICROSOFT NATURALKBD 0x000b Natural Keyboard Elite product MICROSOFT DDS80 0x0014 Digital Sound System 80 product MICROSOFT SIDEWINDER 0x001a Sidewinder Precision Racing Wheel product MICROSOFT INTELLIEYE 0x0025 IntelliEye mouse product MICROSOFT INETPRO 0x002b Internet Keyboard Pro /* Microtech products */ product MICROTECH SCSIDB25 0x0004 USB-SCSI-DB25 product MICROTECH SCSIHD50 0x0005 USB-SCSI-HD50 product MICROTECH DPCM 0x0006 USB CameraMate product MICROTECH FREECOM 0xfc01 Freecom USB-IDE /* Microtek products */ product MICROTEK 336CX 0x0094 Phantom 336CX - C3 scanner product MICROTEK X6U 0x0099 ScanMaker X6 - X6U product MICROTEK C6 0x009a Phantom C6 scanner product MICROTEK 336CX2 0x00a0 Phantom 336CX - C3 scanner product MICROTEK V6USL 0x00a3 ScanMaker V6USL product MICROTEK V6USL2 0x80a3 ScanMaker V6USL product MICROTEK V6UL 0x80ac ScanMaker V6UL /* Midiman products */ product MIDIMAN MIDISPORT2X2 0x1001 Midisport 2x2 /* Mitsumi products */ product MITSUMI CDRRW 0x0000 CD-R/RW Drive /* Motorola products */ product MOTOROLA MC141555 0x1555 MC141555 hub controller /* MultiTech products */ product MULTITECH ATLAS 0xf101 MT5634ZBA-USB modem /* Mustek products */ product MUSTEK 1200CU 0x0001 1200 CU scanner product MUSTEK 600CU 0x0002 600 CU scanner product MUSTEK 1200USB 0x0003 1200 USB scanner product MUSTEK 1200UB 0x0006 1200 UB scanner product MUSTEK 1200USBPLUS 0x0007 1200 USB Plus scanner product MUSTEK 1200CUPLUS 0x0008 1200 CU Plus scanner product MUSTEK BEARPAW1200F 0x0010 BearPaw 1200F scanner product MUSTEK 600USB 0x0873 600 USB scanner product MUSTEK MDC800 0xa800 MDC-800 digital camera /* M-Systems products */ product MSYSTEMS DISKONKEY 0x0010 DiskOnKey /* National Semiconductor */ product NATIONAL BEARPAW1200 0x1000 BearPaw 1200 scanner product NATIONAL BEARPAW2400 0x1001 BearPaw 2400 scanner /* NEC products */ product NEC HUB 0x55aa hub product NEC HUB_B 0x55ab hub /* NetChip Technology Products */ product NETCHIP TURBOCONNECT 0x1080 Turbo-Connect /* Netgear products */ product NETGEAR EA101 0x1001 Ethernet adapter /* Nikon products */ product NIKON E990 0x0102 Digital Camera E990 /* Olympus products */ product OLYMPUS C1 0x0102 C-1 Digital Camera product OLYMPUS C700 0x0105 C-700 Ultra Zoom /* OmniVision Technologies, Inc. products */ product OMNIVISION OV511 0x0511 OV511 Camera product OMNIVISION OV511PLUS 0xa511 OV511+ Camera /* Palm Computing, Inc. product */ product PALM SERIAL 0x0080 USB Serial Adaptor /* Panasonic products */ product PANASONIC SDCAAE 0x1b00 MultiMediaCard Adapter /* Peracom products */ product PERACOM SERIAL1 0x0001 Serial Converter product PERACOM ENET 0x0002 Ethernet adapter product PERACOM ENET3 0x0003 At Home Ethernet Adapter product PERACOM ENET2 0x0005 Ethernet adapter /* Philips products */ product PHILIPS DSS350 0x0101 DSS 350 Digital Speaker System product PHILIPS DSS 0x0104 DSS XXX Digital Speaker System product PHILIPS HUB 0x0201 hub product PHILIPS PCA646VC 0x0303 PCA646VC PC Camera product PHILIPS PCVC680K 0x0308 PCVC680K Vesta Pro PC Camera product PHILIPS DSS150 0x0471 DSS 150 Digital Speaker System product PHILIPS DIVAUSB 0x1801 DIVA USB mp3 player /* Philips Semiconductor products */ product PHILIPSSEMI HUB1122 0x1122 hub /* P.I. Engineering products */ product PIENGINEERING PS2USB 0x020b PS2 to Mac USB Adapter /* PLX products */ product PLX TESTBOARD 0x9060 test board /* Primax products */ product PRIMAX G2X300 0x0300 G2-200 scanner product PRIMAX G2E300 0x0301 G2E-300 scanner product PRIMAX G2300 0x0302 G2-300 scanner product PRIMAX G2E3002 0x0303 G2E-300 scanner product PRIMAX 9600 0x0340 Colorado USB 9600 scanner product PRIMAX 600U 0x0341 Colorado 600u scanner product PRIMAX 19200 0x0360 Colorado USB 19200 scanner product PRIMAX 1200U 0x0361 Colorado 1200u scanner product PRIMAX G600 0x0380 G2-600 scanner product PRIMAX 636I 0x0381 ReadyScan 636i product PRIMAX G2600 0x0382 G2-600 scanner product PRIMAX G2E600 0x0383 G2E-600 scanner product PRIMAX COMFORT 0x4d01 Comfort product PRIMAX MOUSEINABOX 0x4d02 Mouse-in-a-Box product PRIMAX PCGAUMS1 0x4d04 Sony PCGA-UMS1 /* Prolific products */ product PROLIFIC PL2301 0x0000 PL2301 Host-Host interface product PROLIFIC PL2302 0x0001 PL2302 Host-Host interface product PROLIFIC RSAQ2 0x04bb PL2303 Serial adapter (IODATA USB-RSAQ2) product PROLIFIC PL2303 0x2303 PL2303 Serial adapter (ATEN/IOGEAR UC232A) product PROLIFIC PL2305 0x2305 Parallel printer adapter product PROLIFIC ATAPI4 0x2307 ATAPI-4 Bridge Controller /* Putercom products */ product PUTERCOM UPA100 0x047e USB-1284 BRIDGE /* Qtronix products */ product QTRONIX 980N 0x2011 Scorpion-980N keyboard /* Quickshot products */ product QUICKSHOT STRIKEPAD 0x6238 USB StrikePad /* Rainbow Technologies products */ product RAINBOW IKEY2000 0x1200 i-Key 2000 /* Roland products */ product ROLAND UM1 0x0009 UM-1 MIDI I/F /* Rockfire products */ product ROCKFIRE GAMEPAD 0x2033 gamepad 203USB /* SanDisk products */ product SANDISK SDDR05A 0x0001 ImageMate SDDR-05a product SANDISK SDDR31 0x0002 ImageMate SDDR-31 product SANDISK SDDR12 0x0100 ImageMate SDDR-12 product SANDISK SDDR09 0x0200 ImageMate SDDR-09 /* ScanLogic products */ product SCANLOGIC 336CX 0x0300 Phantom 336CX - C3 scanner /* Shuttle Technology products */ product SHUTTLE EUSB 0x0001 E-USB Bridge product SHUTTLE EUSCSI 0x0002 eUSCSI Bridge product SHUTTLE SDDR09 0x0003 ImageMate SDDR09 product SHUTTLE ZIOMMC 0x0006 eUSB MultiMediaCard Adapter product SHUTTLE HIFD 0x0007 Sony Hifd product SHUTTLE EUSBATAPI 0x0009 eUSB ATA/ATAPI Adapter product SHUTTLE CF 0x000a eUSB CompactFlash Adapter product SHUTTLE EUSCSI_B 0x000b eUSCSI Bridge product SHUTTLE EUSCSI_C 0x000c eUSCSI Bridge product SHUTTLE CDRW 0x0101 CD-RW Device /* SIIG products */ product SIIG DIGIFILMREADER 0x0004 DigiFilm-Combo Reader /* Silicon Portals Inc. */ product SILICONPORTALS YAPPH_NF 0x0200 YAP Phone (no firmware) product SILICONPORTALS YAPPHONE 0x0201 YAP Phone /* Sirius Technologies products */ product SIRIUS ROADSTER 0x0001 NetComm Roadster II 56 USB /* SmartBridges products */ product SMARTBRIDGES SMARTLINK 0x0001 SmartLink USB ethernet adapter /* SMC products */ product SMC 2102USB 0x0100 10Mbps ethernet adapter product SMC 2202USB 0x0200 10/100 ethernet adapter /* SOLID YEAR products */ product SOLIDYEAR KEYBOARD 0x2101 Solid Year USB keyboard /* SONY products */ product SONY DSC 0x0010 DSC cameras product SONY MSACUS1 0x002d Memorystick MSAC-US1 product SONY MSC 0x0032 MSC memory stick slot /* STMicroelectronics products */ product STMICRO COMMUNICATOR 0x7554 USB Communicator /* STSN products */ product STSN STSN0001 0x0001 Internet Access Device /* Sun Microsystems products */ product SUN KEYBOARD 0x0005 Type 6 USB keyboard /* XXX The above is a North American PC style keyboard possibly */ product SUN MOUSE 0x0100 Type 6 USB mouse /* Supra products */ product DIAMOND2 SUPRAEXPRESS56K 0x07da Supra Express 56K modem product DIAMOND2 SUPRA2890 0x0b4a SupraMax 2890 56K Modem product DIAMOND2 RIO600USB 0x5001 Rio 600 USB product DIAMOND2 RIO800USB 0x5002 Rio 800 USB /* Taugagreining products */ product TAUGA CAMERAMATE 0x0005 CameraMate (DPCM_USB) /* TDK products */ product TDK UPA9664 0x0115 USB-PDC Adapter UPA9664 product TDK UCA1464 0x0116 USB-cdmaOne Adapter UCA1464 product TDK UHA6400 0x0117 USB-PHS Adapter UHA6400 product TDK UPA6400 0x0118 USB-PHS Adapter UPA6400 /* TEAC products */ product TEAC FD05PUB 0x0000 FD-05PUB floppy /* Telex Communications products */ product TELEX MIC1 0x0001 Enhanced USB Microphone /* Texas Intel products */ product TI UTUSB41 0x1446 UT-USB41 hub product TI TUSB2046 0x2046 TUSB2046 hub /* Thrustmaster products */ product THRUST FUSION_PAD 0xa0a3 Fusion Digital Gamepad /* Trek Technology products */ product TREK THUMBDRIVE 0x1111 ThumbDrive /* Ultima products */ product ULTIMA 1200UBPLUS 0x4002 1200 UB Plus scanner /* UMAX products */ product UMAX ASTRA1236U 0x0002 Astra 1236U Scanner product UMAX ASTRA1220U 0x0010 Astra 1220U Scanner product UMAX ASTRA2000U 0x0030 Astra 2000U Scanner product UMAX ASTRA2100U 0x0130 Astra 2100U Scanner product UMAX ASTRA2200U 0x0230 Astra 2200U Scanner /* Universal Access products */ product UNIACCESS PANACHE 0x0101 Panache Surf USB ISDN Adapter /* Vision products */ product VISION VC6452V002 0x0002 CPiA Camera /* Visioneer products */ product VISIONEER 7600 0x0211 OneTouch 7600 product VISIONEER 5300 0x0221 OneTouch 5300 product VISIONEER 6100 0x0231 OneTouch 6100 product VISIONEER 6200 0x0311 OneTouch 6200 product VISIONEER 8100 0x0321 OneTouch 8100 product VISIONEER 8600 0x0331 OneTouch 8600 /* Wacom products */ product WACOM CT0405U 0x0000 CT-0405-U Tablet product WACOM GRAPHIRE 0x0010 Graphire product WACOM INTUOSA5 0x0021 Intuos A5 /* Xirlink products */ product XIRLINK PCCAM 0x8080 IBM PC Camera /* Y-E Data products */ product YEDATA FLASHBUSTERU 0x0000 Flashbuster-U /* Yano products */ product YANO U640MO 0x0101 U640MO-03 /* Yamaha products */ product YAMAHA UX256 0x1000 UX256 MIDI I/F product YAMAHA UX96 0x1008 UX96 MIDI I/F /* Zoom Telephonics, Inc. products */ product ZOOM 2986L 0x9700 2986L Fax modem /* ZyXEL Communication Co. products */ product ZYXEL OMNI56K 0x1500 Omni 56K Plus product ZYXEL 980N 0x2011 Scorpion-980N keyboard Index: head/sys/dev/usb/usbdevs.h =================================================================== --- head/sys/dev/usb/usbdevs.h (revision 90014) +++ head/sys/dev/usb/usbdevs.h (revision 90015) @@ -1,1021 +1,1025 @@ /* $FreeBSD$ */ /* * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: * FreeBSD: src/sys/dev/usb/usbdevs,v 1.72 2002/01/03 18:56:35 joe Exp */ /* * Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Lennart Augustsson (lennart@augustsson.net) at * Carlstedt Research & Technology. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the NetBSD * Foundation, Inc. and its contributors. * 4. Neither the name of The NetBSD Foundation nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * List of known USB vendors * * Adding an ID and its string description for a device to the usbdevs file, * enables the USB stack to print a useful description of the device that was * connected. * * The ID should be added in usbdevs and then the files usbdevs.h and * usbdevs_data.h need to be regenerated. * * # edit usbdevs * make -f Makefile.usbdevs * # test your change * cd ../../modules/usb * make * # commit, if appropriate * cvs -m "ID for device XYZ" commit usbdevs * # commit the derived files after the $ FreeBSD $ has been updated. * cvs commit usbdevs.h usbdevs_data.h * * Please note that these IDs do not do anything. Adding an ID in usbdevs and * regenerating the usbdevs.h and usbdevs_data.h only makes a symbolic name * available to the source code and does not change any functionality, nor does * it make your device available to a specific driver. It will however make * the descriptive string available if a device does not provide the string * itself. * * After adding a vendor ID VNDR and a product ID PRDCT you will have the * following extra defines: * #define USB_VENDOR_VNDR 0x???? * #define USB_PRODUCT_VNDR_PRDCT 0x???? * * You will have to add these defines to the respective probe routines to make * the device recognised by the appropriate device driver. */ #define USB_VENDOR_AOX 0x03e8 /* AOX, Inc. */ #define USB_VENDOR_ATMEL 0x03eb /* Atmel Corp. */ #define USB_VENDOR_MITSUMI 0x03ee /* Mitsumi */ #define USB_VENDOR_HP 0x03f0 /* Hewlett-Packard */ #define USB_VENDOR_ADAPTEC 0x03f3 /* Adaptec, Inc. */ #define USB_VENDOR_NATIONAL 0x0400 /* National Semiconductor */ #define USB_VENDOR_ACERLABS 0x0402 /* Acer Labs, Inc. */ #define USB_VENDOR_FTDI 0x0403 /* Future Technology Devices */ #define USB_VENDOR_NEC 0x0409 /* NEC */ #define USB_VENDOR_KODAK 0x040a /* Eastman Kodak Corp. */ #define USB_VENDOR_MELCO 0x0411 /* Melco, Inc. */ #define USB_VENDOR_CREATIVE 0x041e /* Creative */ #define USB_VENDOR_ADI 0x0422 /* ADI Systems, Inc. */ #define USB_VENDOR_CATC 0x0423 /* Computer Access Technology Corp. */ #define USB_VENDOR_GRAVIS 0x0428 /* Advanced Gravis Computer Tech. Ltd. */ #define USB_VENDOR_SUN 0x0430 /* Sun Microsystems */ #define USB_VENDOR_TAUGA 0x0436 /* Taugagreining HF */ #define USB_VENDOR_AMD 0x0438 /* Advanced Micro Devices */ #define USB_VENDOR_LEXMARK 0x043d /* Lexmark International, Inc. */ #define USB_VENDOR_NANAO 0x0440 /* NANAO Corp. */ #define USB_VENDOR_ALPS 0x044e /* Alps Electric Co., Ltd. */ #define USB_VENDOR_THRUST 0x044f /* Thrustmaster */ #define USB_VENDOR_TI 0x0451 /* Texas Instruments */ #define USB_VENDOR_ANALOGDEVICES 0x0456 /* Analog Devices, Inc. */ #define USB_VENDOR_KYE 0x0458 /* KYE Systems Corp. */ #define USB_VENDOR_DIAMOND2 0x045a /* Diamond (Supra) */ #define USB_VENDOR_MICROSOFT 0x045e /* Microsoft */ #define USB_VENDOR_PRIMAX 0x0461 /* Primax Electronics */ #define USB_VENDOR_AMP 0x0464 /* AMP, Inc. */ #define USB_VENDOR_CHERRY 0x046a /* Cherry Mikroschalter GmbH */ #define USB_VENDOR_MEGATRENDS 0x046b /* American Megatrends */ #define USB_VENDOR_LOGITECH 0x046d /* Logitech, Inc. */ #define USB_VENDOR_BTC 0x046e /* Behavior Tech. Computer */ #define USB_VENDOR_PHILIPS 0x0471 /* Philips */ #define USB_VENDOR_CONNECTIX 0x0478 /* Connectix Corp. */ #define USB_VENDOR_KENSINGTON 0x047d /* Kensington */ #define USB_VENDOR_LUCENT 0x047e /* Lucent */ #define USB_VENDOR_STMICRO 0x0483 /* STMicroelectronics */ #define USB_VENDOR_YAMAHA 0x0499 /* YAMAHA Corp. */ #define USB_VENDOR_COMPAQ 0x049f /* Compaq Computers */ #define USB_VENDOR_ACERP 0x04a5 /* Acer Peripherals, Inc. */ #define USB_VENDOR_VISIONEER 0x04a7 /* Visioneer */ #define USB_VENDOR_CANON 0x04a9 /* Canon, Inc. */ #define USB_VENDOR_NIKON 0x04b0 /* Nikon */ #define USB_VENDOR_IBM 0x04b3 /* IBM Corporation */ #define USB_VENDOR_CYPRESS 0x04b4 /* Cypress Semiconductor */ #define USB_VENDOR_EPSON 0x04b8 /* Seiko Epson Corp. */ #define USB_VENDOR_RAINBOW 0x04b9 /* Rainbow Technologies */ #define USB_VENDOR_IODATA 0x04bb /* I/O Data */ #define USB_VENDOR_TDK 0x04bf /* TDK Corp. */ #define USB_VENDOR_3COMUSR 0x04c1 /* U.S. Robotics */ #define USB_VENDOR_METHODE 0x04c2 /* Methode Electronics Far East PTE Ltd. */ #define USB_VENDOR_MAXISWITCH 0x04c3 /* Maxi Switch, Inc. */ #define USB_VENDOR_LOCKHEEDMER 0x04c4 /* Lockheed Martin Energy Research */ #define USB_VENDOR_FUJITSU 0x04c5 /* Fujitsu Ltd. */ #define USB_VENDOR_TOSHIBAAM 0x04c6 /* Toshiba America Electronic Components */ #define USB_VENDOR_MICROMACRO 0x04c7 /* Micro Macro Technologies */ #define USB_VENDOR_KONICA 0x04c8 /* Konica Corp. */ #define USB_VENDOR_LITEON 0x04ca /* Lite-On Technology Corp. */ #define USB_VENDOR_FUJIPHOTO 0x04cb /* Fuji Photo Film Co., Ltd. */ #define USB_VENDOR_PHILIPSSEMI 0x04cc /* Philips Semiconductors */ #define USB_VENDOR_TATUNG 0x04cd /* Tatung Co. Of America */ #define USB_VENDOR_SCANLOGIC 0x04ce /* ScanLogic Corp. */ #define USB_VENDOR_MYSON 0x04cf /* Myson Technology Inc. */ #define USB_VENDOR_DIGI2 0x04d0 /* Digi International */ #define USB_VENDOR_ITTCANON 0x04d1 /* ITT Canon */ #define USB_VENDOR_ALTEC 0x04d2 /* Altec Lansing Technologies, Inc. */ #define USB_VENDOR_PANASONIC 0x04da /* Panasonic (Matsushita) */ #define USB_VENDOR_SHUTTLE 0x04e6 /* Shuttle Technology */ #define USB_VENDOR_ANNABOOKS 0x04ed /* Annabooks */ #define USB_VENDOR_CHICONY 0x04f2 /* Chicony Electronics Co., Ltd. */ #define USB_VENDOR_BROTHER 0x04f9 /* Brother Industries, Ltd. */ #define USB_VENDOR_DALLAS 0x04fa /* Dallas Semiconductor */ #define USB_VENDOR_ACER 0x0502 /* Acer, Inc. */ #define USB_VENDOR_3COM 0x0506 /* 3Com Corp. */ #define USB_VENDOR_AZTECH 0x0509 /* Aztech Systems Ltd */ #define USB_VENDOR_BELKIN 0x050d /* Belkin Components */ #define USB_VENDOR_KAWATSU 0x050f /* Kawatsu Semiconductor, Inc. */ #define USB_VENDOR_APC 0x051d /* American Power Conversion */ #define USB_VENDOR_CONNECTEK 0x0522 /* Advanced Connectek USA, Inc. */ #define USB_VENDOR_NETCHIP 0x0525 /* NetChip Technology */ #define USB_VENDOR_ALTRA 0x0527 /* ALTRA */ #define USB_VENDOR_ATI 0x0528 /* ATI Technologies, Inc. */ #define USB_VENDOR_AKS 0x0529 /* Aladdin Knowledge Systems */ #define USB_VENDOR_UNIACCESS 0x0540 /* Universal Access */ #define USB_VENDOR_XIRLINK 0x0545 /* Xirlink, Inc. */ #define USB_VENDOR_ANCHOR 0x0547 /* Anchor Chips, Inc. */ #define USB_VENDOR_SONY 0x054c /* Sony Corp. */ #define USB_VENDOR_VISION 0x0553 /* VLSI Vision Ltd. */ #define USB_VENDOR_ASAHIKASEI 0x0556 /* Asahi Kasei Microsystems Co., Ltd */ #define USB_VENDOR_ATEN 0x0557 /* ATEN International Co. Ltd. */ #define USB_VENDOR_MUSTEK 0x055f /* Mustek Systems, Inc. */ #define USB_VENDOR_TELEX 0x0562 /* Telex Communications, Inc. */ #define USB_VENDOR_PERACOM 0x0565 /* Peracom Networks, Inc. */ #define USB_VENDOR_ALCOR2 0x0566 /* Alcor Micro, Inc. */ #define USB_VENDOR_WACOM 0x056a /* WACOM Corp. Ltd. */ #define USB_VENDOR_ETEK 0x056c /* e-TEK Labs */ #define USB_VENDOR_EIZO 0x056d /* EIZO */ #define USB_VENDOR_ELECOM 0x056e /* Elecom Corp. Ltd. */ #define USB_VENDOR_HAUPPAUGE 0x0573 /* Hauppauge Computer Works */ #define USB_VENDOR_BAFO 0x0576 /* BAFO/Quality Computer Accessories */ #define USB_VENDOR_YEDATA 0x057b /* Y-E Data */ #define USB_VENDOR_AVM 0x057c /* AVM GmbH */ #define USB_VENDOR_QUICKSHOT 0x057f /* Quickshot */ #define USB_VENDOR_ROLAND 0x0582 /* Roland Corp. */ #define USB_VENDOR_ROCKFIRE 0x0583 /* Rockfire */ #define USB_VENDOR_ZYXEL 0x0586 /* ZyXEL Communication Co. */ #define USB_VENDOR_ALCOR 0x058f /* Alcor Micro, Inc. */ #define USB_VENDOR_IOMEGA 0x059b /* Iomega Corp. */ #define USB_VENDOR_ATREND 0x059c /* A-Trend Technology Co., Ltd. */ #define USB_VENDOR_AID 0x059d /* Advanced Input Devices */ #define USB_VENDOR_LACIE 0x059f /* LaCie */ #define USB_VENDOR_OMNIVISION 0x05a9 /* OmniVision */ #define USB_VENDOR_INSYSTEM 0x05ab /* In-System Design */ #define USB_VENDOR_APPLE 0x05ac /* Apple Computer */ #define USB_VENDOR_DIGI 0x05c5 /* Digi International */ #define USB_VENDOR_QTRONIX 0x05c7 /* Qtronix Corp */ #define USB_VENDOR_ELSA 0x05cc /* ELSA Gmbh */ #define USB_VENDOR_BRAINBOXES 0x05d1 /* Brainboxes Limited */ #define USB_VENDOR_ULTIMA 0x05d8 /* Ultima */ #define USB_VENDOR_AXIOHM 0x05d9 /* Axiohm Transaction Solutions */ #define USB_VENDOR_MICROTEK 0x05da /* Microtek */ #define USB_VENDOR_LEXAR 0x05dc /* Lexar Media */ #define USB_VENDOR_SYMBOL 0x05e0 /* Symbol Technologies */ #define USB_VENDOR_GENESYS 0x05e3 /* Genesys Logic, Inc. */ #define USB_VENDOR_FUJI 0x05e5 /* Fuji Electric Co., Ltd. */ #define USB_VENDOR_KEITHLEY 0x05e6 /* Keithley Instruments */ #define USB_VENDOR_EIZONANAO 0x05e7 /* EIZO Nanao */ #define USB_VENDOR_KLSI 0x05e9 /* Kawasaki LSI */ #define USB_VENDOR_FFC 0x05eb /* FFC Limited */ #define USB_VENDOR_ANKO 0x05ef /* Anko Electronic Co., Ltd. */ #define USB_VENDOR_PIENGINEERING 0x05f3 /* P.I. Engineering */ #define USB_VENDOR_AOC 0x05f6 /* AOC International */ #define USB_VENDOR_CHIC 0x05fe /* Chic Technology */ #define USB_VENDOR_BARCO 0x0600 /* Barco Display Systems */ #define USB_VENDOR_BRIDGE 0x0607 /* Bridge Information Co., Ltd. */ #define USB_VENDOR_SOLIDYEAR 0x060b /* Solid Year */ #define USB_VENDOR_BIORAD 0x0614 /* Bio-Rad Laboratories */ #define USB_VENDOR_MACALLY 0x0618 /* Macally */ #define USB_VENDOR_ACTLABS 0x061c /* Act Labs, Ltd. */ #define USB_VENDOR_ALARIS 0x0620 /* Alaris, Inc. */ #define USB_VENDOR_APEX 0x0624 /* Apex, Inc. */ #define USB_VENDOR_AVISION 0x0638 /* Avision, Inc. */ #define USB_VENDOR_TEAC 0x0644 /* TEAC */ #define USB_VENDOR_LINKSYS 0x066b /* Linksys, Inc. */ #define USB_VENDOR_ACERSA 0x066e /* Acer Semiconductor America, Inc. */ #define USB_VENDOR_AIWA 0x0677 /* Aiwa Co., Ltd. */ #define USB_VENDOR_ACARD 0x0678 /* ACARD Technology Corp. */ #define USB_VENDOR_PROLIFIC 0x067b /* Prolific Technology Inc. */ #define USB_VENDOR_ADVANCELOGIC 0x0680 /* Avance Logic, Inc. */ #define USB_VENDOR_HAGIWARA 0x0693 /* Hagiwara Sys-Com */ #define USB_VENDOR_CTX 0x0698 /* Chuntex */ #define USB_VENDOR_ASKEY 0x069a /* Askey Computer Corp. */ #define USB_VENDOR_ALCATELT 0x06b9 /* Alcatel Telecom */ #define USB_VENDOR_AGFA 0x06bd /* AGFA-Gevaert NV */ #define USB_VENDOR_ASIAMD 0x06be /* Asia Microelectronic Development, Inc. */ #define USB_VENDOR_BIZLINK 0x06c4 /* Bizlink International Corp. */ #define USB_VENDOR_KEYSPAN 0x06cd /* Keyspan */ #define USB_VENDOR_AASHIMA 0x06d6 /* Aashima Technology B.V. */ #define USB_VENDOR_MULTITECH 0x06e0 /* MultiTech */ #define USB_VENDOR_ADS 0x06e1 /* ADS Technologies, Inc. */ #define USB_VENDOR_ALCATELM 0x06e4 /* Alcatel Microelectronics */ #define USB_VENDOR_SIRIUS 0x06ea /* Sirius Technologies */ #define USB_VENDOR_BOSTON 0x06fd /* Boston Acoustics */ #define USB_VENDOR_SMC 0x0707 /* Standard Microsystems Corp */ #define USB_VENDOR_PUTERCOM 0x0708 /* Putercom Co., Ltd. */ #define USB_VENDOR_MCT 0x0711 /* MCT Corp. */ #define USB_VENDOR_AUREAL 0x0755 /* Aureal Semiconductor */ #define USB_VENDOR_MIDIMAN 0x0763 /* Midiman */ #define USB_VENDOR_GRIFFIN 0x077d /* Griffin Technology, Inc. */ #define USB_VENDOR_SANDISK 0x0781 /* SanDisk Corp */ #define USB_VENDOR_BRIMAX 0x078e /* Brimax, Inc. */ #define USB_VENDOR_AXIS 0x0792 /* Axis Communications AB */ #define USB_VENDOR_ABL 0x0794 /* ABL Electronics Corp. */ #define USB_VENDOR_ALFADATA 0x079d /* Alfadata Computer Corp. */ #define USB_VENDOR_NATIONALTECH 0x07a2 /* National Technical Systems */ #define USB_VENDOR_ONNTO 0x07a3 /* Onnto Corp. */ #define USB_VENDOR_BE 0x07a4 /* Be, Inc. */ #define USB_VENDOR_ADMTEK 0x07a6 /* ADMtek, Inc. */ #define USB_VENDOR_COREGA 0x07aa /* Corega */ #define USB_VENDOR_FREECOM 0x07ab /* Freecom */ #define USB_VENDOR_MICROTECH 0x07af /* Microtech */ #define USB_VENDOR_OLYMPUS 0x07b4 /* Olympus */ #define USB_VENDOR_ABOCOM 0x07b8 /* AboCom Systems, Inc. */ #define USB_VENDOR_KEISOKUGIKEN 0x07c1 /* Keisokugiken Corp. */ #define USB_VENDOR_APG 0x07c5 /* APG Cash Drawer */ #define USB_VENDOR_BUG 0x07c8 /* B.U.G., Inc. */ #define USB_VENDOR_ALLIEDTELESYN 0x07c9 /* Allied Telesyn International */ #define USB_VENDOR_AVERMEDIA 0x07ca /* AVerMedia Technologies, Inc. */ #define USB_VENDOR_SIIG 0x07cc /* SIIG */ #define USB_VENDOR_CASIO 0x07cf /* CASIO */ #define USB_VENDOR_APTIO 0x07d2 /* Aptio Products, Inc. */ #define USB_VENDOR_ARASAN 0x07da /* Arasan Chip Systems */ #define USB_VENDOR_ALLIEDCABLE 0x07e6 /* Allied Cable Corp. */ #define USB_VENDOR_STSN 0x07ef /* STSN */ #define USB_VENDOR_ZOOM 0x0803 /* Zoom Telephonics, Inc. */ #define USB_VENDOR_BROADLOGIC 0x0827 /* BroadLogic, Inc. */ #define USB_VENDOR_HANDSPRING 0x082d /* Handspring, Inc. */ #define USB_VENDOR_ACTIONSTAR 0x0835 /* Action Star Enterprise Co., Ltd. */ #define USB_VENDOR_PALM 0x0830 /* Palm Computing, Inc. */ #define USB_VENDOR_ACCTON 0x083a /* Accton Technology Corp. */ #define USB_VENDOR_DIAMOND 0x0841 /* Diamond */ #define USB_VENDOR_NETGEAR 0x0846 /* BayNETGEAR, Inc. */ #define USB_VENDOR_ACTIVEWIRE 0x0854 /* ActiveWire, Inc. */ #define USB_VENDOR_METRICOM 0x0870 /* Metricom */ #define USB_VENDOR_ADESSOKBTEK 0x087c /* ADESSO/Kbtek America, Inc. */ #define USB_VENDOR_APT 0x0880 /* APT Technologies, Inc. */ #define USB_VENDOR_BOCARESEARCH 0x0885 /* Boca Research, Inc. */ #define USB_VENDOR_ANDREA 0x08a8 /* Andrea Electronics */ #define USB_VENDOR_BURRBROWN 0x08bb /* Burr-Brown Japan, Ltd. */ #define USB_VENDOR_2WIRE 0x08c8 /* 2Wire, Inc */ #define USB_VENDOR_AIPTEK 0x08ca /* AIPTEK International, Inc. */ #define USB_VENDOR_SMARTBRIDGES 0x08d1 /* SmartBridges Pte Ltd. */ #define USB_VENDOR_BILLIONTON 0x08dd /* Billionton Systems, Inc. */ #define USB_VENDOR_EXTENDED 0x08e9 /* Extended Systems, Inc. */ #define USB_VENDOR_MSYSTEMS 0x08ec /* M-Systems */ #define USB_VENDOR_AUTHENTEC 0x08ff /* AuthenTec, Inc. */ #define USB_VENDOR_ALATION 0x0910 /* Alation Systems, Inc. */ #define USB_VENDOR_BIOMETRIC 0x0929 /* American Biometric Company */ #define USB_VENDOR_YANO 0x094f /* Yano */ #define USB_VENDOR_KINGSTON 0x0951 /* Kingston Technology */ #define USB_VENDOR_BLUEWATER 0x0956 /* BlueWater Systems, Inc. */ #define USB_VENDOR_AGILENT 0x0957 /* Agilent Technologies, Inc. */ #define USB_VENDOR_ADIRONDACK 0x0976 /* Adirondack Wire & Cable */ #define USB_VENDOR_BECKHOFF 0x0978 /* Beckhoff Gmbh */ #define USB_VENDOR_ALTIUS 0x09b3 /* Altius Solutions, Inc. */ #define USB_VENDOR_ARRIS 0x09c1 /* Arris Interactive LLC */ #define USB_VENDOR_ACTIVCARD 0x09c3 /* ACTIVCARD, INC. */ #define USB_VENDOR_ACTISYS 0x09c4 /* ACTiSYS Corp. */ #define USB_VENDOR_AFOURTECH 0x09da /* A-FOUR TECH CO., LTD. */ #define USB_VENDOR_AIMEX 0x09dc /* AIMEX Corp. */ #define USB_VENDOR_ADDONICS 0x09df /* Addonics Technologies Corp. */ #define USB_VENDOR_AKAI 0x09e8 /* AKAI professional M.I. Corp. */ #define USB_VENDOR_ARESCOM 0x09f5 /* ARESCOM */ #define USB_VENDOR_BAY 0x09f9 /* Bay Associates */ #define USB_VENDOR_ALTERA 0x09fb /* Altera */ #define USB_VENDOR_TREK 0x0a16 /* Trek Technology */ #define USB_VENDOR_ASAHIOPTICAL 0x0a17 /* Asahi Optical Co., Ltd. */ #define USB_VENDOR_BOCASYSTEMS 0x0a43 /* Boca Systems, Inc. */ #define USB_VENDOR_BROADCOM 0x0a5c /* Broadcom Corp. */ #define USB_VENDOR_GREENHOUSE 0x0a6b /* GREENHOUSE Co., Ltd. */ #define USB_VENDOR_GEOCAST 0x0a79 /* Geocast Network Systems */ #define USB_VENDOR_AGATE 0x0c08 /* Agate Technologies */ #define USB_VENDOR_MOTOROLA 0x1063 /* Motorola */ #define USB_VENDOR_PLX 0x10b5 /* PLX */ #define USB_VENDOR_BELKIN2 0x1293 /* Belkin Components (2nd) */ #define USB_VENDOR_SILICONPORTALS 0x1527 /* Silicon Portals Inc. */ #define USB_VENDOR_UMAX 0x1606 /* UMAX Data Systems, Inc. */ #define USB_VENDOR_INSIDEOUT 0x1608 /* Inside Out Networks */ #define USB_VENDOR_ENTREGA 0x1645 /* Entrega */ #define USB_VENDOR_ACTIONTEC 0x1668 /* Actiontec Electronics, Inc. */ #define USB_VENDOR_DLINK 0x2001 /* D-Link Corp */ +#define USB_VENDOR_DAISY 0x3579 /* Daisy Technology */ #define USB_VENDOR_INTEL 0x8086 /* Intel */ #define USB_VENDOR_HP2 0xf003 /* Hewlett-Packard */ /* * List of known products. Grouped by vendor. */ /* 3Com products */ #define USB_PRODUCT_3COM_HOMECONN 0x009d /* HomeConnect USB Camera */ #define USB_PRODUCT_3COM_3C19250 0x03E8 /* 3C19250 Ethernet adapter */ #define USB_PRODUCT_3COM_USR56K 0x3021 /* U.S.Robotics 56000 Voice Faxmodem Pro */ #define USB_PRODUCT_3COM_3C460 0x11f8 /* HomeConnect Ethernet USB Adapter */ #define USB_PRODUCT_3COMUSR_OFFICECONN 0x0082 /* 3Com OfficeConnect Analog Modem */ #define USB_PRODUCT_3COMUSR_USRISDN 0x008f /* 3Com U.S. Robotics Pro ISDN TA */ #define USB_PRODUCT_3COMUSR_HOMECONN 0x009d /* 3Com HomeConnect camera */ #define USB_PRODUCT_3COMUSR_USR56K 0x3021 /* U.S.Robotics 56000 Voice Faxmodem Pro */ /* AboCom products */ #define USB_PRODUCT_ABOCOM_URE450 0x4000 /* URE450 Ethernet Adapter */ #define USB_PRODUCT_ABOCOM_DSB650TX_PNA 0x4003 /* 1/10/100 ethernet adapter */ /* Accton Technology Corp. products */ #define USB_PRODUCT_ACCTON_USB320_EC 0x1046 /* USB320-EC Ethernet Adapter */ /* Acer Peripherals, Inc. products */ #define USB_PRODUCT_ACERP_ACERSCAN_C310U 0x12a6 /* Acerscan C310U */ #define USB_PRODUCT_ACERP_ACERSCAN_320U 0x2022 /* Acerscan 320U */ #define USB_PRODUCT_ACERP_ACERSCAN_640U 0x2040 /* Acerscan 640U */ #define USB_PRODUCT_ACERP_ACERSCAN_620U 0x2060 /* Acerscan 620U */ /* ActiveWire, Inc. products */ #define USB_PRODUCT_ACTIVEWIRE_IOBOARD 0x0100 /* I/O Board */ #define USB_PRODUCT_ACTIVEWIRE_IOBOARD_FW1 0x0101 /* I/O Board, rev. 1 firmware */ /* ADMtek products */ #define USB_PRODUCT_ADMTEK_PEGASUS 0x0986 /* AN986 USB Ethernet adapter */ /* ADS products */ #define USB_PRODUCT_ADS_UBS10BT 0x0008 /* UBS-10BT Ethernet adapter */ /* Agate Technologies products */ #define USB_PRODUCT_AGATE_QDRIVE 0x0378 /* Q-Drive */ /* AGFA products */ #define USB_PRODUCT_AGFA_SNAPSCAN1212U 0x0001 /* SnapScan 1212U */ #define USB_PRODUCT_AGFA_SNAPSCAN1236U 0x0002 /* SnapScan 1236U */ #define USB_PRODUCT_AGFA_SNAPSCANTOUCH 0x0100 /* SnapScan Touch */ #define USB_PRODUCT_AGFA_SNAPSCAN1212U2 0x2061 /* SnapScan 1212U */ #define USB_PRODUCT_AGFA_SNAPSCANE40 0x208d /* SnapScan e40 */ #define USB_PRODUCT_AGFA_SNAPSCANE50 0x208f /* SnapScan e50 */ #define USB_PRODUCT_AGFA_SNAPSCANE20 0x2091 /* SnapScan e20 */ #define USB_PRODUCT_AGFA_SNAPSCANE25 0x2095 /* SnapScan e25 */ #define USB_PRODUCT_AGFA_SNAPSCANE26 0x2097 /* SnapScan e26 */ #define USB_PRODUCT_AGFA_SNAPSCANE52 0x20fd /* SnapScan e52 */ /* Agiler products */ #define USB_PRODUCT_ELECOM_MOUSE29UO 0x0002 /* mouse 29UO */ /* AKS products */ #define USB_PRODUCT_AKS_USBHASP 0x0001 /* USB-HASP 0.06 */ /* Alcor Micro, Inc. products */ #define USB_PRODUCT_ALCOR2_KBD_HUB 0x2802 /* Kbd Hub */ #define USB_PRODUCT_ALCOR_MA_KBD_HUB 0x9213 /* MacAlly Kbd Hub */ #define USB_PRODUCT_ALCOR_AU9814 0x9215 /* AU9814 Hub */ #define USB_PRODUCT_ALCOR_SM_KBD 0x9410 /* MicroConnectors/StrongMan Keyboard */ #define USB_PRODUCT_ALCOR_NEC_KBD_HUB 0x9472 /* NEC Kbd Hub */ /* Altec Lansing products */ #define USB_PRODUCT_ALTEC_ADA70 0x0070 /* ADA70 Speakers */ #define USB_PRODUCT_ALTEC_ASC495 0xff05 /* ASC495 Speakers */ /* American Power Conversion products */ #define USB_PRODUCT_APC_UPSPRO500 0x0002 /* Back-UPS Pro 500 */ /* Anchor products */ #define USB_PRODUCT_ANCHOR_EZUSB 0x2131 /* EZUSB */ #define USB_PRODUCT_ANCHOR_EZLINK 0x2720 /* EZLINK */ /* AOX, Inc. products */ #define USB_PRODUCT_AOX_USB101 0x0008 /* USB ethernet controller engine */ /* Apple Computer products */ #define USB_PRODUCT_APPLE_OPTMOUSE 0x0302 /* Optical mouse */ #define USB_PRODUCT_APPLE_SPEAKERS 0x1101 /* Speakers */ /* ATen products */ #define USB_PRODUCT_ATEN_UC1284 0x2001 /* Parallel printer adapter */ #define USB_PRODUCT_ATEN_UC10T 0x2002 /* 10Mbps ethernet adapter */ #define USB_PRODUCT_ATEN_UC232A 0x2008 /* Serial adapter */ /* Atmel Comp. products */ #define USB_PRODUCT_ATMEL_UHB124 0x3301 /* UHB124 hub */ #define USB_PRODUCT_ATMEL_DWL120 0x7602 /* DWL-120 Wireless adapter */ /* Avision products */ #define USB_PRODUCT_AVISION_1200U 0x0268 /* 1200U scanner */ /* Belkin products */ /*product BELKIN F5U111 0x???? F5U111 Ethernet adapter*/ #define USB_PRODUCT_BELKIN2_F5U002 0x0002 /* F5U002 Parallel printer adapter */ /* Billionton products */ #define USB_PRODUCT_BILLIONTON_USB100 0x0986 /* USB100N 10/100 FastEthernet Adapter */ /* Brother Industries products */ #define USB_PRODUCT_BROTHER_HL1050 0x0002 /* HL-1050 laser printer */ /* Behavior Technology Computer products */ #define USB_PRODUCT_BTC_BTC7932 0x6782 /* Keyboard with mouse port */ /* Canon, Inc. products */ #define USB_PRODUCT_CANON_N656U 0x2206 /* CANOSCAN N656U */ #define USB_PRODUCT_CANON_S10 0x3041 /* PowerShot S10 */ #define USB_PRODUCT_CANON_S100 0x3045 /* PowerShot S100 */ /* CATC products */ #define USB_PRODUCT_CATC_NETMATE 0x000a /* Netmate ethernet adapter */ #define USB_PRODUCT_CATC_NETMATE2 0x000c /* Netmate2 ethernet adapter */ #define USB_PRODUCT_CATC_CHIEF 0x000d /* USB Chief Bus & Protocol Analyzer */ #define USB_PRODUCT_CATC_ANDROMEDA 0x1237 /* Andromeda hub */ /* CASIO products */ #define USB_PRODUCT_CASIO_NAMELAND 0x4001 /* CASIO Nameland EZ-USB */ /* Cherry products */ #define USB_PRODUCT_CHERRY_MY3000KBD 0x0001 /* My3000 keyboard */ #define USB_PRODUCT_CHERRY_MY3000HUB 0x0003 /* My3000 hub */ /* Chic Technology products */ #define USB_PRODUCT_CHIC_MOUSE1 0x0001 /* mouse */ #define USB_PRODUCT_CHIC_CYPRESS 0x0003 /* Cypress USB Mouse */ /* Chicony products */ #define USB_PRODUCT_CHICONY_KB8933 0x0001 /* KB-8933 keyboard */ /* Compaq products */ #define USB_PRODUCT_COMPAQ_PJB100 0x504a /* Personal Jukebox PJB100 */ /* Connectix products */ #define USB_PRODUCT_CONNECTIX_QUICKCAM 0x0001 /* QuickCam */ /* Corega products */ #define USB_PRODUCT_COREGA_ETHER_USB_T 0x0001 /* Ether USB-T */ #define USB_PRODUCT_COREGA_FETHER_USB_TX 0x0004 /* FEther USB-TX */ /* Creative products */ #define USB_PRODUCT_CREATIVE_NOMAD_II 0x1002 /* Nomad II MP3 player */ /* CTX products */ #define USB_PRODUCT_CTX_EX1300 0x9999 /* Ex1300 hub */ /* Cypress Semiconductor products */ #define USB_PRODUCT_CYPRESS_MOUSE 0x0001 /* mouse */ #define USB_PRODUCT_CYPRESS_THERMO 0x0002 /* thermometer */ #define USB_PRODUCT_CYPRESS_FMRADIO 0x1002 /* FM Radio */ /* D-Link products */ /*product DLINK DSBS25 0x0100 DSB-S25 serial adapter*/ #define USB_PRODUCT_DLINK_DSB650C 0x4000 /* 10Mbps ethernet adapter */ #define USB_PRODUCT_DLINK_DSB650TX 0x4002 /* 10/100 ethernet adapter */ #define USB_PRODUCT_DLINK_DSB650TX_PNA 0x4003 /* 1/10/100 ethernet adapter */ #define USB_PRODUCT_DLINK_DSB650 0xABC1 /* 10/100 ethernet adapter */ + +/* Daisy Technology products */ +#define USB_PRODUCT_DAISY_DMC 0x6901 /* PhotoClip Camera */ /* Dallas Semiconductor products */ #define USB_PRODUCT_DALLAS_J6502 0x4201 /* J-6502 speakers */ /* Diamond products */ #define USB_PRODUCT_DIAMOND_RIO500USB 0x0001 /* Rio 500 USB */ /* Digi International products */ #define USB_PRODUCT_DIGI_ACCELEPORT2 0x0002 /* AccelePort USB 2 */ #define USB_PRODUCT_DIGI_ACCELEPORT4 0x0004 /* AccelePort USB 4 */ #define USB_PRODUCT_DIGI_ACCELEPORT8 0x0008 /* AccelePort USB 8 */ /* EIZO products */ #define USB_PRODUCT_EIZO_HUB 0x0000 /* hub */ #define USB_PRODUCT_EIZO_MONITOR 0x0001 /* monitor */ /* Elsa products */ #define USB_PRODUCT_ELSA_MODEM1 0x2265 /* ELSA Modem Board */ /* Entrega products */ #define USB_PRODUCT_ENTREGA_1S 0x0001 /* 1S serial connector */ #define USB_PRODUCT_ENTREGA_2S 0x0002 /* 2S serial connector */ #define USB_PRODUCT_ENTREGA_1S25 0x0003 /* 1S25 serial connector */ #define USB_PRODUCT_ENTREGA_4S 0x0004 /* 4S serial connector */ #define USB_PRODUCT_ENTREGA_E45 0x0005 /* E45 Ethernet adapter */ #define USB_PRODUCT_ENTREGA_CENTRONICS 0x0006 /* Centronics connector */ #define USB_PRODUCT_ENTREGA_1S9 0x0093 /* 1S9 serial connector */ #define USB_PRODUCT_ENTREGA_EZUSB 0x8000 /* EZ-USB */ /*product ENTREGA SERIAL 0x8001 DB25 Serial connector*/ #define USB_PRODUCT_ENTREGA_2U4S 0x8004 /* 2U4S serial connector/usb hub */ /*product ENTREGA SERIAL_DB9 0x8093 DB9 Serial connector*/ /* Epson products */ #define USB_PRODUCT_EPSON_PRINTER1 0x0001 /* USB Printer */ #define USB_PRODUCT_EPSON_PRINTER2 0x0002 /* ISD USB Smart Cable for Mac */ #define USB_PRODUCT_EPSON_PRINTER3 0x0003 /* ISD USB Smart Cable */ #define USB_PRODUCT_EPSON_PRINTER5 0x0005 /* USB Printer */ #define USB_PRODUCT_EPSON_636 0x0101 /* Perfection 636U / 636Photo scanner */ #define USB_PRODUCT_EPSON_610 0x0103 /* Perfection 610 scanner */ #define USB_PRODUCT_EPSON_1200 0x0104 /* Perfection 1200U / 1200Photo scanner */ #define USB_PRODUCT_EPSON_1600 0x0107 /* Expression 1600 scanner */ #define USB_PRODUCT_EPSON_1640 0x010a /* Perfection 1640SU scanner */ #define USB_PRODUCT_EPSON_1240 0x010b /* Perfection 1240U / 1240Photo scanner */ /* e-TEK Labs products */ #define USB_PRODUCT_ETEK_1COM 0x8007 /* Serial port */ /* Extended Systems products */ #define USB_PRODUCT_EXTENDED_XTNDACCESS 0x0100 /* XTNDAccess IrDA */ /* Gravis products */ #define USB_PRODUCT_GRAVIS_GAMEPADPRO 0x4001 /* GamePad Pro */ /* GREENHOUSE products */ #define USB_PRODUCT_GREENHOUSE_KANA21 0x0001 /* CF-writer with Portable MP3 Player */ /* Griffin Technology */ #define USB_PRODUCT_GRIFFIN_IMATE 0x0405 /* iMate, ADB adapter */ /* Freecom products */ #define USB_PRODUCT_FREECOM_DVD 0xfc01 /* Connector for DVD drive */ /* Future Technology Devices products */ #define USB_PRODUCT_FTDI_SERIAL 0x8372 /* Serial converter */ /* Fuji photo products */ #define USB_PRODUCT_FUJIPHOTO_MASS0100 0x0100 /* Mass Storage */ /* Hagiwara products */ #define USB_PRODUCT_HAGIWARA_FGSM 0x0002 /* FlashGate SmartMedia Card Reader */ #define USB_PRODUCT_HAGIWARA_FGCF 0x0003 /* FlashGate CompactFlash Card Reader */ #define USB_PRODUCT_HAGIWARA_FG 0x0005 /* FlashGate */ /* Handspring, Inc. */ #define USB_PRODUCT_HANDSPRING_VISOR 0x0100 /* Handspring Visor */ /* Hauppauge Computer Works */ #define USB_PRODUCT_HAUPPAUGE_WINTV_USB_FM 0x4d12 /* WinTV USB FM */ /* HP products */ #define USB_PRODUCT_HP_895C 0x0004 /* DeskJet 895C */ #define USB_PRODUCT_HP_4100C 0x0101 /* Scanjet 4100C */ #define USB_PRODUCT_HP_S20 0x0102 /* Photosmart S20 */ #define USB_PRODUCT_HP_880C 0x0104 /* DeskJet 880C */ #define USB_PRODUCT_HP_4200C 0x0105 /* ScanJet 4200C */ #define USB_PRODUCT_HP_CDWRITERPLUS 0x0107 /* CD-Writer Plus */ #define USB_PRODUCT_HP_KBDHUB 0x010c /* Multimedia Keyboard Hub */ #define USB_PRODUCT_HP_6200C 0x0201 /* ScanJet 6200C */ #define USB_PRODUCT_HP_S20b 0x0202 /* PhotoSmart S20 */ #define USB_PRODUCT_HP_815C 0x0204 /* DeskJet 815C */ #define USB_PRODUCT_HP_3300C 0x0205 /* ScanJet 3300C */ #define USB_PRODUCT_HP_CDW8200 0x0207 /* CD-Writer Plus 8200e */ #define USB_PRODUCT_HP_810C 0x0304 /* DeskJet 810C/812C */ #define USB_PRODUCT_HP_4300C 0x0305 /* Scanjet 4300C */ #define USB_PRODUCT_HP_G85XI 0x0311 /* OfficeJet G85xi */ #define USB_PRODUCT_HP_5200C 0x0401 /* Scanjet 5200C */ #define USB_PRODUCT_HP_830C 0x0404 /* DeskJet 830C */ #define USB_PRODUCT_HP_3400CSE 0x0405 /* ScanJet 3400cse */ #define USB_PRODUCT_HP_6300C 0x0601 /* Scanjet 6300C */ #define USB_PRODUCT_HP_840C 0x0604 /* DeskJet 840c */ #define USB_PRODUCT_HP_5300C 0x0701 /* Scanjet 5300C */ #define USB_PRODUCT_HP_970CSE 0x1004 /* Deskjet 970Cse */ #define USB_PRODUCT_HP_930C 0x1204 /* DeskJet 930c */ #define USB_PRODUCT_HP_640C 0x2004 /* DeskJet 640c */ #define USB_PRODUCT_HP_P1100 0x3102 /* Photosmart P1100 */ /* HP products */ #define USB_PRODUCT_HP2_C500 0x6002 /* PhotoSmart C500 */ /* IBM Corporation */ #define USB_PRODUCT_IBM_USBCDROMDRIVE 0x4427 /* USB CD-ROM Drive */ /* Inside Out Networks products */ #define USB_PRODUCT_INSIDEOUT_EDGEPORT4 0x0001 /* EdgePort/4 serial ports */ /* In-System products */ #define USB_PRODUCT_INSYSTEM_F5U002 0x0002 /* Parallel printer adapter */ #define USB_PRODUCT_INSYSTEM_ATAPI 0x0031 /* ATAPI adapter */ #define USB_PRODUCT_INSYSTEM_ISD110 0x0200 /* IDE adapter ISD110 */ #define USB_PRODUCT_INSYSTEM_ISD105 0x0202 /* IDE adapter ISD105 */ #define USB_PRODUCT_INSYSTEM_USBCABLE 0x081a /* USB cable */ /* Intel products */ #define USB_PRODUCT_INTEL_EASYPC_CAMERA 0x0110 /* Easy PC Camera */ #define USB_PRODUCT_INTEL_TESTBOARD 0x9890 /* 82930 test board */ /* I/O DATA products */ #define USB_PRODUCT_IODATA_USBETT 0x0901 /* USB ETT */ #define USB_PRODUCT_IODATA_USBETTX 0x0904 /* USB ETTX */ #define USB_PRODUCT_IODATA_USBRSAQ 0x0a03 /* USB serial adapter USB-RSAQ1 */ /* Iomega products */ #define USB_PRODUCT_IOMEGA_ZIP100 0x0001 /* Zip 100 */ #define USB_PRODUCT_IOMEGA_ZIP250 0x0030 /* Zip 250 */ /* Kawasaki products */ #define USB_PRODUCT_KLSI_DUH3E10BT 0x0008 /* USB ethernet controller engine */ /* Kawatsu products */ #define USB_PRODUCT_KAWATSU_MH4000P 0x0003 /* MiniHub 4000P */ /* Keisokugiken Corp. products */ #define USB_PRODUCT_KEISOKUGIKEN_USBDAQ 0x0068 /* HKS-0200 USBDAQ */ /* Kawasaki LSI products (?) */ #define USB_PRODUCT_KLSI_DUH3E10BT 0x0008 /* 10BT Ethernet adapter, in the DU-H3E */ /* Kensington products */ #define USB_PRODUCT_KENSINGTON_ORBIT 0x1003 /* Orbit USB/PS2 trackball */ #define USB_PRODUCT_KENSINGTON_TURBOBALL 0x1005 /* TurboBall */ /* Keyspan products */ #define USB_PRODUCT_KEYSPAN_USA28 0x0101 /* USA-28 serial adapter */ #define USB_PRODUCT_KEYSPAN_USA28X 0x0102 /* USA-28X serial adapter */ #define USB_PRODUCT_KEYSPAN_USA19 0x0103 /* USA-19 serial adapter */ #define USB_PRODUCT_KEYSPAN_USA18X 0x0105 /* USA-18X serial adapter */ #define USB_PRODUCT_KEYSPAN_USA19W 0x0106 /* USA-19W serial adapter */ #define USB_PRODUCT_KEYSPAN_USA49W 0x0109 /* USA-49W serial adapter */ /* Kingston products */ #define USB_PRODUCT_KINGSTON_KNU101TX 0x000a /* KNU101TX USB Ethernet */ /* Kodak products */ #define USB_PRODUCT_KODAK_DC220 0x0100 /* Digital Science DC220 */ #define USB_PRODUCT_KODAK_DC260 0x0110 /* Digital Science DC260 */ #define USB_PRODUCT_KODAK_DC265 0x0111 /* Digital Science DC265 */ #define USB_PRODUCT_KODAK_DC290 0x0112 /* Digital Science DC290 */ #define USB_PRODUCT_KODAK_DC240 0x0120 /* Digital Science DC240 */ #define USB_PRODUCT_KODAK_DC280 0x0130 /* Digital Science DC280 */ /* Konica Corp. Products */ #define USB_PRODUCT_KONICA_CAMERA 0x0720 /* Digital Color Camera */ /* KYE products */ #define USB_PRODUCT_KYE_NICHE 0x0001 /* Niche mouse */ #define USB_PRODUCT_KYE_NETSCROLL 0x0003 /* Genius NetScroll mouse */ #define USB_PRODUCT_KYE_FLIGHT2000 0x1004 /* Flight 2000 joystick */ #define USB_PRODUCT_KYE_VIVIDPRO 0x2001 /* ColorPage Vivid-Pro scanner */ /* LaCie products */ #define USB_PRODUCT_LACIE_HD 0xa601 /* Hard Disk */ #define USB_PRODUCT_LACIE_CDRW 0xa602 /* CD R/W */ /* Lexar products */ #define USB_PRODUCT_LEXAR_JUMPSHOT 0x0001 /* jumpSHOT CompactFlash Reader */ /* Lexmark products */ #define USB_PRODUCT_LEXMARK_S2450 0x0009 /* Optra S 2450 */ /* Linksys products */ #define USB_PRODUCT_LINKSYS_MAUSB2 0x0105 /* Camedia MAUSB-2 */ #define USB_PRODUCT_LINKSYS_USB10T 0x2202 /* USB10T Ethernet */ #define USB_PRODUCT_LINKSYS_USB100TX 0x2203 /* USB100TX Ethernet */ #define USB_PRODUCT_LINKSYS_USB100H1 0x2204 /* USB100H1 Ethernet/HPNA */ #define USB_PRODUCT_LINKSYS_USB10TA 0x2206 /* USB10TA Ethernet */ #define USB_PRODUCT_LINKSYS_USB10TX2 0x400b /* USB10TX */ /* Logitech products */ #define USB_PRODUCT_LOGITECH_M2452 0x0203 /* M2452 keyboard */ #define USB_PRODUCT_LOGITECH_M4848 0x0301 /* M4848 mouse */ #define USB_PRODUCT_LOGITECH_PAGESCAN 0x040f /* PageScan */ #define USB_PRODUCT_LOGITECH_QUICKCAMWEB 0x0801 /* QuickCam Web */ #define USB_PRODUCT_LOGITECH_QUICKCAMPRO 0x0810 /* QuickCam Pro */ #define USB_PRODUCT_LOGITECH_QUICKCAMEXP 0x0840 /* QuickCam Express */ #define USB_PRODUCT_LOGITECH_QUICKCAM 0x0850 /* QuickCam */ #define USB_PRODUCT_LOGITECH_N43 0xc000 /* N43 */ #define USB_PRODUCT_LOGITECH_N48 0xc001 /* N48 mouse */ #define USB_PRODUCT_LOGITECH_MBA47 0xc002 /* M-BA47 mouse */ #define USB_PRODUCT_LOGITECH_WMMOUSE 0xc004 /* WingMan Gaming Mouse */ #define USB_PRODUCT_LOGITECH_BD58 0xc00c /* BD58 mouse */ #define USB_PRODUCT_LOGITECH_UN58A 0xc030 /* iFeel Mouse */ #define USB_PRODUCT_LOGITECH_BB13 0xc401 /* USB-PS/2 Trackball */ #define USB_PRODUCT_LOGITECH_WMPAD 0xc208 /* WingMan GamePad Extreme */ #define USB_PRODUCT_LOGITECH_WMJOY 0xc281 /* WingMan Force joystick */ #define USB_PRODUCT_LOGITECH_RK53 0xc501 /* Cordless mouse */ #define USB_PRODUCT_LOGITECH_RB6 0xc503 /* Cordless keyboard */ #define USB_PRODUCT_LOGITECH_QUICKCAMPRO2 0xd001 /* QuickCam Pro */ /* Lucent products */ #define USB_PRODUCT_LUCENT_EVALKIT 0x1001 /* USS-720 evaluation kit */ /* Macally products */ #define USB_PRODUCT_MACALLY_MOUSE1 0x0101 /* mouse */ /* MCT Corp. */ #define USB_PRODUCT_MCT_HUB0100 0x0100 /* Hub */ #define USB_PRODUCT_MCT_USB232 0x0210 /* USB-232 Interface */ #define USB_PRODUCT_MCT_SITECOM_USB232 0x0230 /* Sitecom USB-232 Products */ #define USB_PRODUCT_MCT_DU_H3SP_USB232 0x0200 /* D-Link DU-H3SP USB BAY Hub */ /* Melco, Inc products */ #define USB_PRODUCT_MELCO_LUATX1 0x0001 /* LUA-TX Ethernet */ #define USB_PRODUCT_MELCO_LUATX5 0x0005 /* LUA-TX Ethernet */ #define USB_PRODUCT_MELCO_LUA2TX5 0x0009 /* LUA2-TX Ethernet */ /* Metricom products */ #define USB_PRODUCT_METRICOM_RICOCHET_GS 0x0001 /* Ricochet GS */ /* Microsoft products */ #define USB_PRODUCT_MICROSOFT_SIDEPREC 0x0008 /* SideWinder Precision Pro */ #define USB_PRODUCT_MICROSOFT_INTELLIMOUSE 0x0009 /* IntelliMouse */ #define USB_PRODUCT_MICROSOFT_NATURALKBD 0x000b /* Natural Keyboard Elite */ #define USB_PRODUCT_MICROSOFT_DDS80 0x0014 /* Digital Sound System 80 */ #define USB_PRODUCT_MICROSOFT_SIDEWINDER 0x001a /* Sidewinder Precision Racing Wheel */ #define USB_PRODUCT_MICROSOFT_INTELLIEYE 0x0025 /* IntelliEye mouse */ #define USB_PRODUCT_MICROSOFT_INETPRO 0x002b /* Internet Keyboard Pro */ /* Microtech products */ #define USB_PRODUCT_MICROTECH_SCSIDB25 0x0004 /* USB-SCSI-DB25 */ #define USB_PRODUCT_MICROTECH_SCSIHD50 0x0005 /* USB-SCSI-HD50 */ #define USB_PRODUCT_MICROTECH_DPCM 0x0006 /* USB CameraMate */ #define USB_PRODUCT_MICROTECH_FREECOM 0xfc01 /* Freecom USB-IDE */ /* Microtek products */ #define USB_PRODUCT_MICROTEK_336CX 0x0094 /* Phantom 336CX - C3 scanner */ #define USB_PRODUCT_MICROTEK_X6U 0x0099 /* ScanMaker X6 - X6U */ #define USB_PRODUCT_MICROTEK_C6 0x009a /* Phantom C6 scanner */ #define USB_PRODUCT_MICROTEK_336CX2 0x00a0 /* Phantom 336CX - C3 scanner */ #define USB_PRODUCT_MICROTEK_V6USL 0x00a3 /* ScanMaker V6USL */ #define USB_PRODUCT_MICROTEK_V6USL2 0x80a3 /* ScanMaker V6USL */ #define USB_PRODUCT_MICROTEK_V6UL 0x80ac /* ScanMaker V6UL */ /* Midiman products */ #define USB_PRODUCT_MIDIMAN_MIDISPORT2X2 0x1001 /* Midisport 2x2 */ /* Mitsumi products */ #define USB_PRODUCT_MITSUMI_CDRRW 0x0000 /* CD-R/RW Drive */ /* Motorola products */ #define USB_PRODUCT_MOTOROLA_MC141555 0x1555 /* MC141555 hub controller */ /* MultiTech products */ #define USB_PRODUCT_MULTITECH_ATLAS 0xf101 /* MT5634ZBA-USB modem */ /* Mustek products */ #define USB_PRODUCT_MUSTEK_1200CU 0x0001 /* 1200 CU scanner */ #define USB_PRODUCT_MUSTEK_600CU 0x0002 /* 600 CU scanner */ #define USB_PRODUCT_MUSTEK_1200USB 0x0003 /* 1200 USB scanner */ #define USB_PRODUCT_MUSTEK_1200UB 0x0006 /* 1200 UB scanner */ #define USB_PRODUCT_MUSTEK_1200USBPLUS 0x0007 /* 1200 USB Plus scanner */ #define USB_PRODUCT_MUSTEK_1200CUPLUS 0x0008 /* 1200 CU Plus scanner */ #define USB_PRODUCT_MUSTEK_BEARPAW1200F 0x0010 /* BearPaw 1200F scanner */ #define USB_PRODUCT_MUSTEK_600USB 0x0873 /* 600 USB scanner */ #define USB_PRODUCT_MUSTEK_MDC800 0xa800 /* MDC-800 digital camera */ /* M-Systems products */ #define USB_PRODUCT_MSYSTEMS_DISKONKEY 0x0010 /* DiskOnKey */ /* National Semiconductor */ #define USB_PRODUCT_NATIONAL_BEARPAW1200 0x1000 /* BearPaw 1200 scanner */ #define USB_PRODUCT_NATIONAL_BEARPAW2400 0x1001 /* BearPaw 2400 scanner */ /* NEC products */ #define USB_PRODUCT_NEC_HUB 0x55aa /* hub */ #define USB_PRODUCT_NEC_HUB_B 0x55ab /* hub */ /* NetChip Technology Products */ #define USB_PRODUCT_NETCHIP_TURBOCONNECT 0x1080 /* Turbo-Connect */ /* Netgear products */ #define USB_PRODUCT_NETGEAR_EA101 0x1001 /* Ethernet adapter */ /* Nikon products */ #define USB_PRODUCT_NIKON_E990 0x0102 /* Digital Camera E990 */ /* Olympus products */ #define USB_PRODUCT_OLYMPUS_C1 0x0102 /* C-1 Digital Camera */ #define USB_PRODUCT_OLYMPUS_C700 0x0105 /* C-700 Ultra Zoom */ /* OmniVision Technologies, Inc. products */ #define USB_PRODUCT_OMNIVISION_OV511 0x0511 /* OV511 Camera */ #define USB_PRODUCT_OMNIVISION_OV511PLUS 0xa511 /* OV511+ Camera */ /* Palm Computing, Inc. product */ #define USB_PRODUCT_PALM_SERIAL 0x0080 /* USB Serial Adaptor */ /* Panasonic products */ #define USB_PRODUCT_PANASONIC_SDCAAE 0x1b00 /* MultiMediaCard Adapter */ /* Peracom products */ #define USB_PRODUCT_PERACOM_SERIAL1 0x0001 /* Serial Converter */ #define USB_PRODUCT_PERACOM_ENET 0x0002 /* Ethernet adapter */ #define USB_PRODUCT_PERACOM_ENET3 0x0003 /* At Home Ethernet Adapter */ #define USB_PRODUCT_PERACOM_ENET2 0x0005 /* Ethernet adapter */ /* Philips products */ #define USB_PRODUCT_PHILIPS_DSS350 0x0101 /* DSS 350 Digital Speaker System */ #define USB_PRODUCT_PHILIPS_DSS 0x0104 /* DSS XXX Digital Speaker System */ #define USB_PRODUCT_PHILIPS_HUB 0x0201 /* hub */ #define USB_PRODUCT_PHILIPS_PCA646VC 0x0303 /* PCA646VC PC Camera */ #define USB_PRODUCT_PHILIPS_PCVC680K 0x0308 /* PCVC680K Vesta Pro PC Camera */ #define USB_PRODUCT_PHILIPS_DSS150 0x0471 /* DSS 150 Digital Speaker System */ #define USB_PRODUCT_PHILIPS_DIVAUSB 0x1801 /* DIVA USB mp3 player */ /* Philips Semiconductor products */ #define USB_PRODUCT_PHILIPSSEMI_HUB1122 0x1122 /* hub */ /* P.I. Engineering products */ #define USB_PRODUCT_PIENGINEERING_PS2USB 0x020b /* PS2 to Mac USB Adapter */ /* PLX products */ #define USB_PRODUCT_PLX_TESTBOARD 0x9060 /* test board */ /* Primax products */ #define USB_PRODUCT_PRIMAX_G2X300 0x0300 /* G2-200 scanner */ #define USB_PRODUCT_PRIMAX_G2E300 0x0301 /* G2E-300 scanner */ #define USB_PRODUCT_PRIMAX_G2300 0x0302 /* G2-300 scanner */ #define USB_PRODUCT_PRIMAX_G2E3002 0x0303 /* G2E-300 scanner */ #define USB_PRODUCT_PRIMAX_9600 0x0340 /* Colorado USB 9600 scanner */ #define USB_PRODUCT_PRIMAX_600U 0x0341 /* Colorado 600u scanner */ #define USB_PRODUCT_PRIMAX_19200 0x0360 /* Colorado USB 19200 scanner */ #define USB_PRODUCT_PRIMAX_1200U 0x0361 /* Colorado 1200u scanner */ #define USB_PRODUCT_PRIMAX_G600 0x0380 /* G2-600 scanner */ #define USB_PRODUCT_PRIMAX_636I 0x0381 /* ReadyScan 636i */ #define USB_PRODUCT_PRIMAX_G2600 0x0382 /* G2-600 scanner */ #define USB_PRODUCT_PRIMAX_G2E600 0x0383 /* G2E-600 scanner */ #define USB_PRODUCT_PRIMAX_COMFORT 0x4d01 /* Comfort */ #define USB_PRODUCT_PRIMAX_MOUSEINABOX 0x4d02 /* Mouse-in-a-Box */ #define USB_PRODUCT_PRIMAX_PCGAUMS1 0x4d04 /* Sony PCGA-UMS1 */ /* Prolific products */ #define USB_PRODUCT_PROLIFIC_PL2301 0x0000 /* PL2301 Host-Host interface */ #define USB_PRODUCT_PROLIFIC_PL2302 0x0001 /* PL2302 Host-Host interface */ #define USB_PRODUCT_PROLIFIC_RSAQ2 0x04bb /* PL2303 Serial adapter (IODATA USB-RSAQ2) */ #define USB_PRODUCT_PROLIFIC_PL2303 0x2303 /* PL2303 Serial adapter (ATEN/IOGEAR UC232A) */ #define USB_PRODUCT_PROLIFIC_PL2305 0x2305 /* Parallel printer adapter */ #define USB_PRODUCT_PROLIFIC_ATAPI4 0x2307 /* ATAPI-4 Bridge Controller */ /* Putercom products */ #define USB_PRODUCT_PUTERCOM_UPA100 0x047e /* USB-1284 BRIDGE */ /* Qtronix products */ #define USB_PRODUCT_QTRONIX_980N 0x2011 /* Scorpion-980N keyboard */ /* Quickshot products */ #define USB_PRODUCT_QUICKSHOT_STRIKEPAD 0x6238 /* USB StrikePad */ /* Rainbow Technologies products */ #define USB_PRODUCT_RAINBOW_IKEY2000 0x1200 /* i-Key 2000 */ /* Roland products */ #define USB_PRODUCT_ROLAND_UM1 0x0009 /* UM-1 MIDI I/F */ /* Rockfire products */ #define USB_PRODUCT_ROCKFIRE_GAMEPAD 0x2033 /* gamepad 203USB */ /* SanDisk products */ #define USB_PRODUCT_SANDISK_SDDR05A 0x0001 /* ImageMate SDDR-05a */ #define USB_PRODUCT_SANDISK_SDDR31 0x0002 /* ImageMate SDDR-31 */ #define USB_PRODUCT_SANDISK_SDDR12 0x0100 /* ImageMate SDDR-12 */ #define USB_PRODUCT_SANDISK_SDDR09 0x0200 /* ImageMate SDDR-09 */ /* ScanLogic products */ #define USB_PRODUCT_SCANLOGIC_336CX 0x0300 /* Phantom 336CX - C3 scanner */ /* Shuttle Technology products */ #define USB_PRODUCT_SHUTTLE_EUSB 0x0001 /* E-USB Bridge */ #define USB_PRODUCT_SHUTTLE_EUSCSI 0x0002 /* eUSCSI Bridge */ #define USB_PRODUCT_SHUTTLE_SDDR09 0x0003 /* ImageMate SDDR09 */ #define USB_PRODUCT_SHUTTLE_ZIOMMC 0x0006 /* eUSB MultiMediaCard Adapter */ #define USB_PRODUCT_SHUTTLE_HIFD 0x0007 /* Sony Hifd */ #define USB_PRODUCT_SHUTTLE_EUSBATAPI 0x0009 /* eUSB ATA/ATAPI Adapter */ #define USB_PRODUCT_SHUTTLE_CF 0x000a /* eUSB CompactFlash Adapter */ #define USB_PRODUCT_SHUTTLE_EUSCSI_B 0x000b /* eUSCSI Bridge */ #define USB_PRODUCT_SHUTTLE_EUSCSI_C 0x000c /* eUSCSI Bridge */ #define USB_PRODUCT_SHUTTLE_CDRW 0x0101 /* CD-RW Device */ /* SIIG products */ #define USB_PRODUCT_SIIG_DIGIFILMREADER 0x0004 /* DigiFilm-Combo Reader */ /* Silicon Portals Inc. */ #define USB_PRODUCT_SILICONPORTALS_YAPPH_NF 0x0200 /* YAP Phone (no firmware) */ #define USB_PRODUCT_SILICONPORTALS_YAPPHONE 0x0201 /* YAP Phone */ /* Sirius Technologies products */ #define USB_PRODUCT_SIRIUS_ROADSTER 0x0001 /* NetComm Roadster II 56 USB */ /* SmartBridges products */ #define USB_PRODUCT_SMARTBRIDGES_SMARTLINK 0x0001 /* SmartLink USB ethernet adapter */ /* SMC products */ #define USB_PRODUCT_SMC_2102USB 0x0100 /* 10Mbps ethernet adapter */ #define USB_PRODUCT_SMC_2202USB 0x0200 /* 10/100 ethernet adapter */ /* SOLID YEAR products */ #define USB_PRODUCT_SOLIDYEAR_KEYBOARD 0x2101 /* Solid Year USB keyboard */ /* SONY products */ #define USB_PRODUCT_SONY_DSC 0x0010 /* DSC cameras */ #define USB_PRODUCT_SONY_MSACUS1 0x002d /* Memorystick MSAC-US1 */ #define USB_PRODUCT_SONY_MSC 0x0032 /* MSC memory stick slot */ /* STMicroelectronics products */ #define USB_PRODUCT_STMICRO_COMMUNICATOR 0x7554 /* USB Communicator */ /* STSN products */ #define USB_PRODUCT_STSN_STSN0001 0x0001 /* Internet Access Device */ /* Sun Microsystems products */ #define USB_PRODUCT_SUN_KEYBOARD 0x0005 /* Type 6 USB keyboard */ /* XXX The above is a North American PC style keyboard possibly */ #define USB_PRODUCT_SUN_MOUSE 0x0100 /* Type 6 USB mouse */ /* Supra products */ #define USB_PRODUCT_DIAMOND2_SUPRAEXPRESS56K 0x07da /* Supra Express 56K modem */ #define USB_PRODUCT_DIAMOND2_SUPRA2890 0x0b4a /* SupraMax 2890 56K Modem */ #define USB_PRODUCT_DIAMOND2_RIO600USB 0x5001 /* Rio 600 USB */ #define USB_PRODUCT_DIAMOND2_RIO800USB 0x5002 /* Rio 800 USB */ /* Taugagreining products */ #define USB_PRODUCT_TAUGA_CAMERAMATE 0x0005 /* CameraMate (DPCM_USB) */ /* TDK products */ #define USB_PRODUCT_TDK_UPA9664 0x0115 /* USB-PDC Adapter UPA9664 */ #define USB_PRODUCT_TDK_UCA1464 0x0116 /* USB-cdmaOne Adapter UCA1464 */ #define USB_PRODUCT_TDK_UHA6400 0x0117 /* USB-PHS Adapter UHA6400 */ #define USB_PRODUCT_TDK_UPA6400 0x0118 /* USB-PHS Adapter UPA6400 */ /* TEAC products */ #define USB_PRODUCT_TEAC_FD05PUB 0x0000 /* FD-05PUB floppy */ /* Telex Communications products */ #define USB_PRODUCT_TELEX_MIC1 0x0001 /* Enhanced USB Microphone */ /* Texas Intel products */ #define USB_PRODUCT_TI_UTUSB41 0x1446 /* UT-USB41 hub */ #define USB_PRODUCT_TI_TUSB2046 0x2046 /* TUSB2046 hub */ /* Thrustmaster products */ #define USB_PRODUCT_THRUST_FUSION_PAD 0xa0a3 /* Fusion Digital Gamepad */ /* Trek Technology products */ #define USB_PRODUCT_TREK_THUMBDRIVE 0x1111 /* ThumbDrive */ /* Ultima products */ #define USB_PRODUCT_ULTIMA_1200UBPLUS 0x4002 /* 1200 UB Plus scanner */ /* UMAX products */ #define USB_PRODUCT_UMAX_ASTRA1236U 0x0002 /* Astra 1236U Scanner */ #define USB_PRODUCT_UMAX_ASTRA1220U 0x0010 /* Astra 1220U Scanner */ #define USB_PRODUCT_UMAX_ASTRA2000U 0x0030 /* Astra 2000U Scanner */ #define USB_PRODUCT_UMAX_ASTRA2100U 0x0130 /* Astra 2100U Scanner */ #define USB_PRODUCT_UMAX_ASTRA2200U 0x0230 /* Astra 2200U Scanner */ /* Universal Access products */ #define USB_PRODUCT_UNIACCESS_PANACHE 0x0101 /* Panache Surf USB ISDN Adapter */ /* Vision products */ #define USB_PRODUCT_VISION_VC6452V002 0x0002 /* CPiA Camera */ /* Visioneer products */ #define USB_PRODUCT_VISIONEER_7600 0x0211 /* OneTouch 7600 */ #define USB_PRODUCT_VISIONEER_5300 0x0221 /* OneTouch 5300 */ #define USB_PRODUCT_VISIONEER_6100 0x0231 /* OneTouch 6100 */ #define USB_PRODUCT_VISIONEER_6200 0x0311 /* OneTouch 6200 */ #define USB_PRODUCT_VISIONEER_8100 0x0321 /* OneTouch 8100 */ #define USB_PRODUCT_VISIONEER_8600 0x0331 /* OneTouch 8600 */ /* Wacom products */ #define USB_PRODUCT_WACOM_CT0405U 0x0000 /* CT-0405-U Tablet */ #define USB_PRODUCT_WACOM_GRAPHIRE 0x0010 /* Graphire */ #define USB_PRODUCT_WACOM_INTUOSA5 0x0021 /* Intuos A5 */ /* Xirlink products */ #define USB_PRODUCT_XIRLINK_PCCAM 0x8080 /* IBM PC Camera */ /* Y-E Data products */ #define USB_PRODUCT_YEDATA_FLASHBUSTERU 0x0000 /* Flashbuster-U */ /* Yano products */ #define USB_PRODUCT_YANO_U640MO 0x0101 /* U640MO-03 */ /* Yamaha products */ #define USB_PRODUCT_YAMAHA_UX256 0x1000 /* UX256 MIDI I/F */ #define USB_PRODUCT_YAMAHA_UX96 0x1008 /* UX96 MIDI I/F */ /* Zoom Telephonics, Inc. products */ #define USB_PRODUCT_ZOOM_2986L 0x9700 /* 2986L Fax modem */ /* ZyXEL Communication Co. products */ #define USB_PRODUCT_ZYXEL_OMNI56K 0x1500 /* Omni 56K Plus */ #define USB_PRODUCT_ZYXEL_980N 0x2011 /* Scorpion-980N keyboard */ Index: head/sys/dev/usb/usbdevs_data.h =================================================================== --- head/sys/dev/usb/usbdevs_data.h (revision 90014) +++ head/sys/dev/usb/usbdevs_data.h (revision 90015) @@ -1,3853 +1,3865 @@ /* $FreeBSD$ */ /* * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: * FreeBSD: src/sys/dev/usb/usbdevs,v 1.72 2002/01/03 18:56:35 joe Exp */ /* * Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Lennart Augustsson (lennart@augustsson.net) at * Carlstedt Research & Technology. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the NetBSD * Foundation, Inc. and its contributors. * 4. Neither the name of The NetBSD Foundation nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ struct usb_knowndev usb_knowndevs[] = { { USB_VENDOR_3COM, USB_PRODUCT_3COM_HOMECONN, 0, "3Com Corp.", "HomeConnect USB Camera", }, { USB_VENDOR_3COM, USB_PRODUCT_3COM_3C19250, 0, "3Com Corp.", "3C19250 Ethernet adapter", }, { USB_VENDOR_3COM, USB_PRODUCT_3COM_USR56K, 0, "3Com Corp.", "U.S.Robotics 56000 Voice Faxmodem Pro", }, { USB_VENDOR_3COM, USB_PRODUCT_3COM_3C460, 0, "3Com Corp.", "HomeConnect Ethernet USB Adapter", }, { USB_VENDOR_3COMUSR, USB_PRODUCT_3COMUSR_OFFICECONN, 0, "U.S. Robotics", "3Com OfficeConnect Analog Modem", }, { USB_VENDOR_3COMUSR, USB_PRODUCT_3COMUSR_USRISDN, 0, "U.S. Robotics", "3Com U.S. Robotics Pro ISDN TA", }, { USB_VENDOR_3COMUSR, USB_PRODUCT_3COMUSR_HOMECONN, 0, "U.S. Robotics", "3Com HomeConnect camera", }, { USB_VENDOR_3COMUSR, USB_PRODUCT_3COMUSR_USR56K, 0, "U.S. Robotics", "U.S.Robotics 56000 Voice Faxmodem Pro", }, { USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_URE450, 0, "AboCom Systems, Inc.", "URE450 Ethernet Adapter", }, { USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_DSB650TX_PNA, 0, "AboCom Systems, Inc.", "1/10/100 ethernet adapter", }, { USB_VENDOR_ACCTON, USB_PRODUCT_ACCTON_USB320_EC, 0, "Accton Technology Corp.", "USB320-EC Ethernet Adapter", }, { USB_VENDOR_ACERP, USB_PRODUCT_ACERP_ACERSCAN_C310U, 0, "Acer Peripherals, Inc.", "Acerscan C310U", }, { USB_VENDOR_ACERP, USB_PRODUCT_ACERP_ACERSCAN_320U, 0, "Acer Peripherals, Inc.", "Acerscan 320U", }, { USB_VENDOR_ACERP, USB_PRODUCT_ACERP_ACERSCAN_640U, 0, "Acer Peripherals, Inc.", "Acerscan 640U", }, { USB_VENDOR_ACERP, USB_PRODUCT_ACERP_ACERSCAN_620U, 0, "Acer Peripherals, Inc.", "Acerscan 620U", }, { USB_VENDOR_ACTIVEWIRE, USB_PRODUCT_ACTIVEWIRE_IOBOARD, 0, "ActiveWire, Inc.", "I/O Board", }, { USB_VENDOR_ACTIVEWIRE, USB_PRODUCT_ACTIVEWIRE_IOBOARD_FW1, 0, "ActiveWire, Inc.", "I/O Board, rev. 1 firmware", }, { USB_VENDOR_ADMTEK, USB_PRODUCT_ADMTEK_PEGASUS, 0, "ADMtek, Inc.", "AN986 USB Ethernet adapter", }, { USB_VENDOR_ADS, USB_PRODUCT_ADS_UBS10BT, 0, "ADS Technologies, Inc.", "UBS-10BT Ethernet adapter", }, { USB_VENDOR_AGATE, USB_PRODUCT_AGATE_QDRIVE, 0, "Agate Technologies", "Q-Drive", }, { USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCAN1212U, 0, "AGFA-Gevaert NV", "SnapScan 1212U", }, { USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCAN1236U, 0, "AGFA-Gevaert NV", "SnapScan 1236U", }, { USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANTOUCH, 0, "AGFA-Gevaert NV", "SnapScan Touch", }, { USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCAN1212U2, 0, "AGFA-Gevaert NV", "SnapScan 1212U", }, { USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE40, 0, "AGFA-Gevaert NV", "SnapScan e40", }, { USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE50, 0, "AGFA-Gevaert NV", "SnapScan e50", }, { USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE20, 0, "AGFA-Gevaert NV", "SnapScan e20", }, { USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE25, 0, "AGFA-Gevaert NV", "SnapScan e25", }, { USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE26, 0, "AGFA-Gevaert NV", "SnapScan e26", }, { USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE52, 0, "AGFA-Gevaert NV", "SnapScan e52", }, { USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_MOUSE29UO, 0, "Elecom Corp. Ltd.", "mouse 29UO", }, { USB_VENDOR_AKS, USB_PRODUCT_AKS_USBHASP, 0, "Aladdin Knowledge Systems", "USB-HASP 0.06", }, { USB_VENDOR_ALCOR2, USB_PRODUCT_ALCOR2_KBD_HUB, 0, "Alcor Micro, Inc.", "Kbd Hub", }, { USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_MA_KBD_HUB, 0, "Alcor Micro, Inc.", "MacAlly Kbd Hub", }, { USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_AU9814, 0, "Alcor Micro, Inc.", "AU9814 Hub", }, { USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_SM_KBD, 0, "Alcor Micro, Inc.", "MicroConnectors/StrongMan Keyboard", }, { USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_NEC_KBD_HUB, 0, "Alcor Micro, Inc.", "NEC Kbd Hub", }, { USB_VENDOR_ALTEC, USB_PRODUCT_ALTEC_ADA70, 0, "Altec Lansing Technologies, Inc.", "ADA70 Speakers", }, { USB_VENDOR_ALTEC, USB_PRODUCT_ALTEC_ASC495, 0, "Altec Lansing Technologies, Inc.", "ASC495 Speakers", }, { USB_VENDOR_APC, USB_PRODUCT_APC_UPSPRO500, 0, "American Power Conversion", "Back-UPS Pro 500", }, { USB_VENDOR_ANCHOR, USB_PRODUCT_ANCHOR_EZUSB, 0, "Anchor Chips, Inc.", "EZUSB", }, { USB_VENDOR_ANCHOR, USB_PRODUCT_ANCHOR_EZLINK, 0, "Anchor Chips, Inc.", "EZLINK", }, { USB_VENDOR_AOX, USB_PRODUCT_AOX_USB101, 0, "AOX, Inc.", "USB ethernet controller engine", }, { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_OPTMOUSE, 0, "Apple Computer", "Optical mouse", }, { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_SPEAKERS, 0, "Apple Computer", "Speakers", }, { USB_VENDOR_ATEN, USB_PRODUCT_ATEN_UC1284, 0, "ATEN International Co. Ltd.", "Parallel printer adapter", }, { USB_VENDOR_ATEN, USB_PRODUCT_ATEN_UC10T, 0, "ATEN International Co. Ltd.", "10Mbps ethernet adapter", }, { USB_VENDOR_ATEN, USB_PRODUCT_ATEN_UC232A, 0, "ATEN International Co. Ltd.", "Serial adapter", }, { USB_VENDOR_ATMEL, USB_PRODUCT_ATMEL_UHB124, 0, "Atmel Corp.", "UHB124 hub", }, { USB_VENDOR_ATMEL, USB_PRODUCT_ATMEL_DWL120, 0, "Atmel Corp.", "DWL-120 Wireless adapter", }, { USB_VENDOR_AVISION, USB_PRODUCT_AVISION_1200U, 0, "Avision, Inc.", "1200U scanner", }, { USB_VENDOR_BELKIN2, USB_PRODUCT_BELKIN2_F5U002, 0, "Belkin Components (2nd)", "F5U002 Parallel printer adapter", }, { USB_VENDOR_BILLIONTON, USB_PRODUCT_BILLIONTON_USB100, 0, "Billionton Systems, Inc.", "USB100N 10/100 FastEthernet Adapter", }, { USB_VENDOR_BROTHER, USB_PRODUCT_BROTHER_HL1050, 0, "Brother Industries, Ltd.", "HL-1050 laser printer", }, { USB_VENDOR_BTC, USB_PRODUCT_BTC_BTC7932, 0, "Behavior Tech. Computer", "Keyboard with mouse port", }, { USB_VENDOR_CANON, USB_PRODUCT_CANON_N656U, 0, "Canon, Inc.", "CANOSCAN N656U", }, { USB_VENDOR_CANON, USB_PRODUCT_CANON_S10, 0, "Canon, Inc.", "PowerShot S10", }, { USB_VENDOR_CANON, USB_PRODUCT_CANON_S100, 0, "Canon, Inc.", "PowerShot S100", }, { USB_VENDOR_CATC, USB_PRODUCT_CATC_NETMATE, 0, "Computer Access Technology Corp.", "Netmate ethernet adapter", }, { USB_VENDOR_CATC, USB_PRODUCT_CATC_NETMATE2, 0, "Computer Access Technology Corp.", "Netmate2 ethernet adapter", }, { USB_VENDOR_CATC, USB_PRODUCT_CATC_CHIEF, 0, "Computer Access Technology Corp.", "USB Chief Bus & Protocol Analyzer", }, { USB_VENDOR_CATC, USB_PRODUCT_CATC_ANDROMEDA, 0, "Computer Access Technology Corp.", "Andromeda hub", }, { USB_VENDOR_CASIO, USB_PRODUCT_CASIO_NAMELAND, 0, "CASIO", "CASIO Nameland EZ-USB", }, { USB_VENDOR_CHERRY, USB_PRODUCT_CHERRY_MY3000KBD, 0, "Cherry Mikroschalter GmbH", "My3000 keyboard", }, { USB_VENDOR_CHERRY, USB_PRODUCT_CHERRY_MY3000HUB, 0, "Cherry Mikroschalter GmbH", "My3000 hub", }, { USB_VENDOR_CHIC, USB_PRODUCT_CHIC_MOUSE1, 0, "Chic Technology", "mouse", }, { USB_VENDOR_CHIC, USB_PRODUCT_CHIC_CYPRESS, 0, "Chic Technology", "Cypress USB Mouse", }, { USB_VENDOR_CHICONY, USB_PRODUCT_CHICONY_KB8933, 0, "Chicony Electronics Co., Ltd.", "KB-8933 keyboard", }, { USB_VENDOR_COMPAQ, USB_PRODUCT_COMPAQ_PJB100, 0, "Compaq Computers", "Personal Jukebox PJB100", }, { USB_VENDOR_CONNECTIX, USB_PRODUCT_CONNECTIX_QUICKCAM, 0, "Connectix Corp.", "QuickCam", }, { USB_VENDOR_COREGA, USB_PRODUCT_COREGA_ETHER_USB_T, 0, "Corega", "Ether USB-T", }, { USB_VENDOR_COREGA, USB_PRODUCT_COREGA_FETHER_USB_TX, 0, "Corega", "FEther USB-TX", }, { USB_VENDOR_CREATIVE, USB_PRODUCT_CREATIVE_NOMAD_II, 0, "Creative", "Nomad II MP3 player", }, { USB_VENDOR_CTX, USB_PRODUCT_CTX_EX1300, 0, "Chuntex", "Ex1300 hub", }, { USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_MOUSE, 0, "Cypress Semiconductor", "mouse", }, { USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_THERMO, 0, "Cypress Semiconductor", "thermometer", }, { USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_FMRADIO, 0, "Cypress Semiconductor", "FM Radio", }, { USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650C, 0, "D-Link Corp", "10Mbps ethernet adapter", }, { USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX, 0, "D-Link Corp", "10/100 ethernet adapter", }, { USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX_PNA, 0, "D-Link Corp", "1/10/100 ethernet adapter", }, { USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650, 0, "D-Link Corp", "10/100 ethernet adapter", }, { + USB_VENDOR_DAISY, USB_PRODUCT_DAISY_DMC, + 0, + "Daisy Technology", + "PhotoClip Camera", + }, + { USB_VENDOR_DALLAS, USB_PRODUCT_DALLAS_J6502, 0, "Dallas Semiconductor", "J-6502 speakers", }, { USB_VENDOR_DIAMOND, USB_PRODUCT_DIAMOND_RIO500USB, 0, "Diamond", "Rio 500 USB", }, { USB_VENDOR_DIGI, USB_PRODUCT_DIGI_ACCELEPORT2, 0, "Digi International", "AccelePort USB 2", }, { USB_VENDOR_DIGI, USB_PRODUCT_DIGI_ACCELEPORT4, 0, "Digi International", "AccelePort USB 4", }, { USB_VENDOR_DIGI, USB_PRODUCT_DIGI_ACCELEPORT8, 0, "Digi International", "AccelePort USB 8", }, { USB_VENDOR_EIZO, USB_PRODUCT_EIZO_HUB, 0, "EIZO", "hub", }, { USB_VENDOR_EIZO, USB_PRODUCT_EIZO_MONITOR, 0, "EIZO", "monitor", }, { USB_VENDOR_ELSA, USB_PRODUCT_ELSA_MODEM1, 0, "ELSA Gmbh", "ELSA Modem Board", }, { USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_1S, 0, "Entrega", "1S serial connector", }, { USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_2S, 0, "Entrega", "2S serial connector", }, { USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_1S25, 0, "Entrega", "1S25 serial connector", }, { USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_4S, 0, "Entrega", "4S serial connector", }, { USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_E45, 0, "Entrega", "E45 Ethernet adapter", }, { USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_CENTRONICS, 0, "Entrega", "Centronics connector", }, { USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_1S9, 0, "Entrega", "1S9 serial connector", }, { USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_EZUSB, 0, "Entrega", "EZ-USB", }, { USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_2U4S, 0, "Entrega", "2U4S serial connector/usb hub", }, { USB_VENDOR_EPSON, USB_PRODUCT_EPSON_PRINTER1, 0, "Seiko Epson Corp.", "USB Printer", }, { USB_VENDOR_EPSON, USB_PRODUCT_EPSON_PRINTER2, 0, "Seiko Epson Corp.", "ISD USB Smart Cable for Mac", }, { USB_VENDOR_EPSON, USB_PRODUCT_EPSON_PRINTER3, 0, "Seiko Epson Corp.", "ISD USB Smart Cable", }, { USB_VENDOR_EPSON, USB_PRODUCT_EPSON_PRINTER5, 0, "Seiko Epson Corp.", "USB Printer", }, { USB_VENDOR_EPSON, USB_PRODUCT_EPSON_636, 0, "Seiko Epson Corp.", "Perfection 636U / 636Photo scanner", }, { USB_VENDOR_EPSON, USB_PRODUCT_EPSON_610, 0, "Seiko Epson Corp.", "Perfection 610 scanner", }, { USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1200, 0, "Seiko Epson Corp.", "Perfection 1200U / 1200Photo scanner", }, { USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1600, 0, "Seiko Epson Corp.", "Expression 1600 scanner", }, { USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1640, 0, "Seiko Epson Corp.", "Perfection 1640SU scanner", }, { USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1240, 0, "Seiko Epson Corp.", "Perfection 1240U / 1240Photo scanner", }, { USB_VENDOR_ETEK, USB_PRODUCT_ETEK_1COM, 0, "e-TEK Labs", "Serial port", }, { USB_VENDOR_EXTENDED, USB_PRODUCT_EXTENDED_XTNDACCESS, 0, "Extended Systems, Inc.", "XTNDAccess IrDA", }, { USB_VENDOR_GRAVIS, USB_PRODUCT_GRAVIS_GAMEPADPRO, 0, "Advanced Gravis Computer Tech. Ltd.", "GamePad Pro", }, { USB_VENDOR_GREENHOUSE, USB_PRODUCT_GREENHOUSE_KANA21, 0, "GREENHOUSE Co., Ltd.", "CF-writer with Portable MP3 Player", }, { USB_VENDOR_GRIFFIN, USB_PRODUCT_GRIFFIN_IMATE, 0, "Griffin Technology, Inc.", "iMate, ADB adapter", }, { USB_VENDOR_FREECOM, USB_PRODUCT_FREECOM_DVD, 0, "Freecom", "Connector for DVD drive", }, { USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SERIAL, 0, "Future Technology Devices", "Serial converter", }, { USB_VENDOR_FUJIPHOTO, USB_PRODUCT_FUJIPHOTO_MASS0100, 0, "Fuji Photo Film Co., Ltd.", "Mass Storage", }, { USB_VENDOR_HAGIWARA, USB_PRODUCT_HAGIWARA_FGSM, 0, "Hagiwara Sys-Com", "FlashGate SmartMedia Card Reader", }, { USB_VENDOR_HAGIWARA, USB_PRODUCT_HAGIWARA_FGCF, 0, "Hagiwara Sys-Com", "FlashGate CompactFlash Card Reader", }, { USB_VENDOR_HAGIWARA, USB_PRODUCT_HAGIWARA_FG, 0, "Hagiwara Sys-Com", "FlashGate", }, { USB_VENDOR_HANDSPRING, USB_PRODUCT_HANDSPRING_VISOR, 0, "Handspring, Inc.", "Handspring Visor", }, { USB_VENDOR_HAUPPAUGE, USB_PRODUCT_HAUPPAUGE_WINTV_USB_FM, 0, "Hauppauge Computer Works", "WinTV USB FM", }, { USB_VENDOR_HP, USB_PRODUCT_HP_895C, 0, "Hewlett-Packard", "DeskJet 895C", }, { USB_VENDOR_HP, USB_PRODUCT_HP_4100C, 0, "Hewlett-Packard", "Scanjet 4100C", }, { USB_VENDOR_HP, USB_PRODUCT_HP_S20, 0, "Hewlett-Packard", "Photosmart S20", }, { USB_VENDOR_HP, USB_PRODUCT_HP_880C, 0, "Hewlett-Packard", "DeskJet 880C", }, { USB_VENDOR_HP, USB_PRODUCT_HP_4200C, 0, "Hewlett-Packard", "ScanJet 4200C", }, { USB_VENDOR_HP, USB_PRODUCT_HP_CDWRITERPLUS, 0, "Hewlett-Packard", "CD-Writer Plus", }, { USB_VENDOR_HP, USB_PRODUCT_HP_KBDHUB, 0, "Hewlett-Packard", "Multimedia Keyboard Hub", }, { USB_VENDOR_HP, USB_PRODUCT_HP_6200C, 0, "Hewlett-Packard", "ScanJet 6200C", }, { USB_VENDOR_HP, USB_PRODUCT_HP_S20b, 0, "Hewlett-Packard", "PhotoSmart S20", }, { USB_VENDOR_HP, USB_PRODUCT_HP_815C, 0, "Hewlett-Packard", "DeskJet 815C", }, { USB_VENDOR_HP, USB_PRODUCT_HP_3300C, 0, "Hewlett-Packard", "ScanJet 3300C", }, { USB_VENDOR_HP, USB_PRODUCT_HP_CDW8200, 0, "Hewlett-Packard", "CD-Writer Plus 8200e", }, { USB_VENDOR_HP, USB_PRODUCT_HP_810C, 0, "Hewlett-Packard", "DeskJet 810C/812C", }, { USB_VENDOR_HP, USB_PRODUCT_HP_4300C, 0, "Hewlett-Packard", "Scanjet 4300C", }, { USB_VENDOR_HP, USB_PRODUCT_HP_G85XI, 0, "Hewlett-Packard", "OfficeJet G85xi", }, { USB_VENDOR_HP, USB_PRODUCT_HP_5200C, 0, "Hewlett-Packard", "Scanjet 5200C", }, { USB_VENDOR_HP, USB_PRODUCT_HP_830C, 0, "Hewlett-Packard", "DeskJet 830C", }, { USB_VENDOR_HP, USB_PRODUCT_HP_3400CSE, 0, "Hewlett-Packard", "ScanJet 3400cse", }, { USB_VENDOR_HP, USB_PRODUCT_HP_6300C, 0, "Hewlett-Packard", "Scanjet 6300C", }, { USB_VENDOR_HP, USB_PRODUCT_HP_840C, 0, "Hewlett-Packard", "DeskJet 840c", }, { USB_VENDOR_HP, USB_PRODUCT_HP_5300C, 0, "Hewlett-Packard", "Scanjet 5300C", }, { USB_VENDOR_HP, USB_PRODUCT_HP_970CSE, 0, "Hewlett-Packard", "Deskjet 970Cse", }, { USB_VENDOR_HP, USB_PRODUCT_HP_930C, 0, "Hewlett-Packard", "DeskJet 930c", }, { USB_VENDOR_HP, USB_PRODUCT_HP_640C, 0, "Hewlett-Packard", "DeskJet 640c", }, { USB_VENDOR_HP, USB_PRODUCT_HP_P1100, 0, "Hewlett-Packard", "Photosmart P1100", }, { USB_VENDOR_HP2, USB_PRODUCT_HP2_C500, 0, "Hewlett-Packard", "PhotoSmart C500", }, { USB_VENDOR_IBM, USB_PRODUCT_IBM_USBCDROMDRIVE, 0, "IBM Corporation", "USB CD-ROM Drive", }, { USB_VENDOR_INSIDEOUT, USB_PRODUCT_INSIDEOUT_EDGEPORT4, 0, "Inside Out Networks", "EdgePort/4 serial ports", }, { USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_F5U002, 0, "In-System Design", "Parallel printer adapter", }, { USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_ATAPI, 0, "In-System Design", "ATAPI adapter", }, { USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_ISD110, 0, "In-System Design", "IDE adapter ISD110", }, { USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_ISD105, 0, "In-System Design", "IDE adapter ISD105", }, { USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_USBCABLE, 0, "In-System Design", "USB cable", }, { USB_VENDOR_INTEL, USB_PRODUCT_INTEL_EASYPC_CAMERA, 0, "Intel", "Easy PC Camera", }, { USB_VENDOR_INTEL, USB_PRODUCT_INTEL_TESTBOARD, 0, "Intel", "82930 test board", }, { USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBETT, 0, "I/O Data", "USB ETT", }, { USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBETTX, 0, "I/O Data", "USB ETTX", }, { USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBRSAQ, 0, "I/O Data", "USB serial adapter USB-RSAQ1", }, { USB_VENDOR_IOMEGA, USB_PRODUCT_IOMEGA_ZIP100, 0, "Iomega Corp.", "Zip 100", }, { USB_VENDOR_IOMEGA, USB_PRODUCT_IOMEGA_ZIP250, 0, "Iomega Corp.", "Zip 250", }, { USB_VENDOR_KLSI, USB_PRODUCT_KLSI_DUH3E10BT, 0, "Kawasaki LSI", "USB ethernet controller engine", }, { USB_VENDOR_KAWATSU, USB_PRODUCT_KAWATSU_MH4000P, 0, "Kawatsu Semiconductor, Inc.", "MiniHub 4000P", }, { USB_VENDOR_KEISOKUGIKEN, USB_PRODUCT_KEISOKUGIKEN_USBDAQ, 0, "Keisokugiken Corp.", "HKS-0200 USBDAQ", }, { USB_VENDOR_KLSI, USB_PRODUCT_KLSI_DUH3E10BT, 0, "Kawasaki LSI", "10BT Ethernet adapter, in the DU-H3E", }, { USB_VENDOR_KENSINGTON, USB_PRODUCT_KENSINGTON_ORBIT, 0, "Kensington", "Orbit USB/PS2 trackball", }, { USB_VENDOR_KENSINGTON, USB_PRODUCT_KENSINGTON_TURBOBALL, 0, "Kensington", "TurboBall", }, { USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA28, 0, "Keyspan", "USA-28 serial adapter", }, { USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA28X, 0, "Keyspan", "USA-28X serial adapter", }, { USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA19, 0, "Keyspan", "USA-19 serial adapter", }, { USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA18X, 0, "Keyspan", "USA-18X serial adapter", }, { USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA19W, 0, "Keyspan", "USA-19W serial adapter", }, { USB_VENDOR_KEYSPAN, USB_PRODUCT_KEYSPAN_USA49W, 0, "Keyspan", "USA-49W serial adapter", }, { USB_VENDOR_KINGSTON, USB_PRODUCT_KINGSTON_KNU101TX, 0, "Kingston Technology", "KNU101TX USB Ethernet", }, { USB_VENDOR_KODAK, USB_PRODUCT_KODAK_DC220, 0, "Eastman Kodak Corp.", "Digital Science DC220", }, { USB_VENDOR_KODAK, USB_PRODUCT_KODAK_DC260, 0, "Eastman Kodak Corp.", "Digital Science DC260", }, { USB_VENDOR_KODAK, USB_PRODUCT_KODAK_DC265, 0, "Eastman Kodak Corp.", "Digital Science DC265", }, { USB_VENDOR_KODAK, USB_PRODUCT_KODAK_DC290, 0, "Eastman Kodak Corp.", "Digital Science DC290", }, { USB_VENDOR_KODAK, USB_PRODUCT_KODAK_DC240, 0, "Eastman Kodak Corp.", "Digital Science DC240", }, { USB_VENDOR_KODAK, USB_PRODUCT_KODAK_DC280, 0, "Eastman Kodak Corp.", "Digital Science DC280", }, { USB_VENDOR_KONICA, USB_PRODUCT_KONICA_CAMERA, 0, "Konica Corp.", "Digital Color Camera", }, { USB_VENDOR_KYE, USB_PRODUCT_KYE_NICHE, 0, "KYE Systems Corp.", "Niche mouse", }, { USB_VENDOR_KYE, USB_PRODUCT_KYE_NETSCROLL, 0, "KYE Systems Corp.", "Genius NetScroll mouse", }, { USB_VENDOR_KYE, USB_PRODUCT_KYE_FLIGHT2000, 0, "KYE Systems Corp.", "Flight 2000 joystick", }, { USB_VENDOR_KYE, USB_PRODUCT_KYE_VIVIDPRO, 0, "KYE Systems Corp.", "ColorPage Vivid-Pro scanner", }, { USB_VENDOR_LACIE, USB_PRODUCT_LACIE_HD, 0, "LaCie", "Hard Disk", }, { USB_VENDOR_LACIE, USB_PRODUCT_LACIE_CDRW, 0, "LaCie", "CD R/W", }, { USB_VENDOR_LEXAR, USB_PRODUCT_LEXAR_JUMPSHOT, 0, "Lexar Media", "jumpSHOT CompactFlash Reader", }, { USB_VENDOR_LEXMARK, USB_PRODUCT_LEXMARK_S2450, 0, "Lexmark International, Inc.", "Optra S 2450", }, { USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_MAUSB2, 0, "Linksys, Inc.", "Camedia MAUSB-2", }, { USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10T, 0, "Linksys, Inc.", "USB10T Ethernet", }, { USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB100TX, 0, "Linksys, Inc.", "USB100TX Ethernet", }, { USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB100H1, 0, "Linksys, Inc.", "USB100H1 Ethernet/HPNA", }, { USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10TA, 0, "Linksys, Inc.", "USB10TA Ethernet", }, { USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10TX2, 0, "Linksys, Inc.", "USB10TX", }, { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_M2452, 0, "Logitech, Inc.", "M2452 keyboard", }, { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_M4848, 0, "Logitech, Inc.", "M4848 mouse", }, { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_PAGESCAN, 0, "Logitech, Inc.", "PageScan", }, { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_QUICKCAMWEB, 0, "Logitech, Inc.", "QuickCam Web", }, { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_QUICKCAMPRO, 0, "Logitech, Inc.", "QuickCam Pro", }, { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_QUICKCAMEXP, 0, "Logitech, Inc.", "QuickCam Express", }, { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_QUICKCAM, 0, "Logitech, Inc.", "QuickCam", }, { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_N43, 0, "Logitech, Inc.", "N43", }, { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_N48, 0, "Logitech, Inc.", "N48 mouse", }, { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_MBA47, 0, "Logitech, Inc.", "M-BA47 mouse", }, { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_WMMOUSE, 0, "Logitech, Inc.", "WingMan Gaming Mouse", }, { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_BD58, 0, "Logitech, Inc.", "BD58 mouse", }, { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_UN58A, 0, "Logitech, Inc.", "iFeel Mouse", }, { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_BB13, 0, "Logitech, Inc.", "USB-PS/2 Trackball", }, { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_WMPAD, 0, "Logitech, Inc.", "WingMan GamePad Extreme", }, { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_WMJOY, 0, "Logitech, Inc.", "WingMan Force joystick", }, { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_RK53, 0, "Logitech, Inc.", "Cordless mouse", }, { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_RB6, 0, "Logitech, Inc.", "Cordless keyboard", }, { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_QUICKCAMPRO2, 0, "Logitech, Inc.", "QuickCam Pro", }, { USB_VENDOR_LUCENT, USB_PRODUCT_LUCENT_EVALKIT, 0, "Lucent", "USS-720 evaluation kit", }, { USB_VENDOR_MACALLY, USB_PRODUCT_MACALLY_MOUSE1, 0, "Macally", "mouse", }, { USB_VENDOR_MCT, USB_PRODUCT_MCT_HUB0100, 0, "MCT Corp.", "Hub", }, { USB_VENDOR_MCT, USB_PRODUCT_MCT_USB232, 0, "MCT Corp.", "USB-232 Interface", }, { USB_VENDOR_MCT, USB_PRODUCT_MCT_SITECOM_USB232, 0, "MCT Corp.", "Sitecom USB-232 Products", }, { USB_VENDOR_MCT, USB_PRODUCT_MCT_DU_H3SP_USB232, 0, "MCT Corp.", "D-Link DU-H3SP USB BAY Hub", }, { USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUATX1, 0, "Melco, Inc.", "LUA-TX Ethernet", }, { USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUATX5, 0, "Melco, Inc.", "LUA-TX Ethernet", }, { USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUA2TX5, 0, "Melco, Inc.", "LUA2-TX Ethernet", }, { USB_VENDOR_METRICOM, USB_PRODUCT_METRICOM_RICOCHET_GS, 0, "Metricom", "Ricochet GS", }, { USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_SIDEPREC, 0, "Microsoft", "SideWinder Precision Pro", }, { USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_INTELLIMOUSE, 0, "Microsoft", "IntelliMouse", }, { USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_NATURALKBD, 0, "Microsoft", "Natural Keyboard Elite", }, { USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_DDS80, 0, "Microsoft", "Digital Sound System 80", }, { USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_SIDEWINDER, 0, "Microsoft", "Sidewinder Precision Racing Wheel", }, { USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_INTELLIEYE, 0, "Microsoft", "IntelliEye mouse", }, { USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_INETPRO, 0, "Microsoft", "Internet Keyboard Pro", }, { USB_VENDOR_MICROTECH, USB_PRODUCT_MICROTECH_SCSIDB25, 0, "Microtech", "USB-SCSI-DB25", }, { USB_VENDOR_MICROTECH, USB_PRODUCT_MICROTECH_SCSIHD50, 0, "Microtech", "USB-SCSI-HD50", }, { USB_VENDOR_MICROTECH, USB_PRODUCT_MICROTECH_DPCM, 0, "Microtech", "USB CameraMate", }, { USB_VENDOR_MICROTECH, USB_PRODUCT_MICROTECH_FREECOM, 0, "Microtech", "Freecom USB-IDE", }, { USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_336CX, 0, "Microtek", "Phantom 336CX - C3 scanner", }, { USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_X6U, 0, "Microtek", "ScanMaker X6 - X6U", }, { USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_C6, 0, "Microtek", "Phantom C6 scanner", }, { USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_336CX2, 0, "Microtek", "Phantom 336CX - C3 scanner", }, { USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_V6USL, 0, "Microtek", "ScanMaker V6USL", }, { USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_V6USL2, 0, "Microtek", "ScanMaker V6USL", }, { USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_V6UL, 0, "Microtek", "ScanMaker V6UL", }, { USB_VENDOR_MIDIMAN, USB_PRODUCT_MIDIMAN_MIDISPORT2X2, 0, "Midiman", "Midisport 2x2", }, { USB_VENDOR_MITSUMI, USB_PRODUCT_MITSUMI_CDRRW, 0, "Mitsumi", "CD-R/RW Drive", }, { USB_VENDOR_MOTOROLA, USB_PRODUCT_MOTOROLA_MC141555, 0, "Motorola", "MC141555 hub controller", }, { USB_VENDOR_MULTITECH, USB_PRODUCT_MULTITECH_ATLAS, 0, "MultiTech", "MT5634ZBA-USB modem", }, { USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_1200CU, 0, "Mustek Systems, Inc.", "1200 CU scanner", }, { USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_600CU, 0, "Mustek Systems, Inc.", "600 CU scanner", }, { USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_1200USB, 0, "Mustek Systems, Inc.", "1200 USB scanner", }, { USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_1200UB, 0, "Mustek Systems, Inc.", "1200 UB scanner", }, { USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_1200USBPLUS, 0, "Mustek Systems, Inc.", "1200 USB Plus scanner", }, { USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_1200CUPLUS, 0, "Mustek Systems, Inc.", "1200 CU Plus scanner", }, { USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_BEARPAW1200F, 0, "Mustek Systems, Inc.", "BearPaw 1200F scanner", }, { USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_600USB, 0, "Mustek Systems, Inc.", "600 USB scanner", }, { USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_MDC800, 0, "Mustek Systems, Inc.", "MDC-800 digital camera", }, { USB_VENDOR_MSYSTEMS, USB_PRODUCT_MSYSTEMS_DISKONKEY, 0, "M-Systems", "DiskOnKey", }, { USB_VENDOR_NATIONAL, USB_PRODUCT_NATIONAL_BEARPAW1200, 0, "National Semiconductor", "BearPaw 1200 scanner", }, { USB_VENDOR_NATIONAL, USB_PRODUCT_NATIONAL_BEARPAW2400, 0, "National Semiconductor", "BearPaw 2400 scanner", }, { USB_VENDOR_NEC, USB_PRODUCT_NEC_HUB, 0, "NEC", "hub", }, { USB_VENDOR_NEC, USB_PRODUCT_NEC_HUB_B, 0, "NEC", "hub", }, { USB_VENDOR_NETCHIP, USB_PRODUCT_NETCHIP_TURBOCONNECT, 0, "NetChip Technology", "Turbo-Connect", }, { USB_VENDOR_NETGEAR, USB_PRODUCT_NETGEAR_EA101, 0, "BayNETGEAR, Inc.", "Ethernet adapter", }, { USB_VENDOR_NIKON, USB_PRODUCT_NIKON_E990, 0, "Nikon", "Digital Camera E990", }, { USB_VENDOR_OLYMPUS, USB_PRODUCT_OLYMPUS_C1, 0, "Olympus", "C-1 Digital Camera", }, { USB_VENDOR_OLYMPUS, USB_PRODUCT_OLYMPUS_C700, 0, "Olympus", "C-700 Ultra Zoom", }, { USB_VENDOR_OMNIVISION, USB_PRODUCT_OMNIVISION_OV511, 0, "OmniVision", "OV511 Camera", }, { USB_VENDOR_OMNIVISION, USB_PRODUCT_OMNIVISION_OV511PLUS, 0, "OmniVision", "OV511+ Camera", }, { USB_VENDOR_PALM, USB_PRODUCT_PALM_SERIAL, 0, "Palm Computing, Inc.", "USB Serial Adaptor", }, { USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_SDCAAE, 0, "Panasonic (Matsushita)", "MultiMediaCard Adapter", }, { USB_VENDOR_PERACOM, USB_PRODUCT_PERACOM_SERIAL1, 0, "Peracom Networks, Inc.", "Serial Converter", }, { USB_VENDOR_PERACOM, USB_PRODUCT_PERACOM_ENET, 0, "Peracom Networks, Inc.", "Ethernet adapter", }, { USB_VENDOR_PERACOM, USB_PRODUCT_PERACOM_ENET3, 0, "Peracom Networks, Inc.", "At Home Ethernet Adapter", }, { USB_VENDOR_PERACOM, USB_PRODUCT_PERACOM_ENET2, 0, "Peracom Networks, Inc.", "Ethernet adapter", }, { USB_VENDOR_PHILIPS, USB_PRODUCT_PHILIPS_DSS350, 0, "Philips", "DSS 350 Digital Speaker System", }, { USB_VENDOR_PHILIPS, USB_PRODUCT_PHILIPS_DSS, 0, "Philips", "DSS XXX Digital Speaker System", }, { USB_VENDOR_PHILIPS, USB_PRODUCT_PHILIPS_HUB, 0, "Philips", "hub", }, { USB_VENDOR_PHILIPS, USB_PRODUCT_PHILIPS_PCA646VC, 0, "Philips", "PCA646VC PC Camera", }, { USB_VENDOR_PHILIPS, USB_PRODUCT_PHILIPS_PCVC680K, 0, "Philips", "PCVC680K Vesta Pro PC Camera", }, { USB_VENDOR_PHILIPS, USB_PRODUCT_PHILIPS_DSS150, 0, "Philips", "DSS 150 Digital Speaker System", }, { USB_VENDOR_PHILIPS, USB_PRODUCT_PHILIPS_DIVAUSB, 0, "Philips", "DIVA USB mp3 player", }, { USB_VENDOR_PHILIPSSEMI, USB_PRODUCT_PHILIPSSEMI_HUB1122, 0, "Philips Semiconductors", "hub", }, { USB_VENDOR_PIENGINEERING, USB_PRODUCT_PIENGINEERING_PS2USB, 0, "P.I. Engineering", "PS2 to Mac USB Adapter", }, { USB_VENDOR_PLX, USB_PRODUCT_PLX_TESTBOARD, 0, "PLX", "test board", }, { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2X300, 0, "Primax Electronics", "G2-200 scanner", }, { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2E300, 0, "Primax Electronics", "G2E-300 scanner", }, { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2300, 0, "Primax Electronics", "G2-300 scanner", }, { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2E3002, 0, "Primax Electronics", "G2E-300 scanner", }, { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_9600, 0, "Primax Electronics", "Colorado USB 9600 scanner", }, { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_600U, 0, "Primax Electronics", "Colorado 600u scanner", }, { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_19200, 0, "Primax Electronics", "Colorado USB 19200 scanner", }, { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_1200U, 0, "Primax Electronics", "Colorado 1200u scanner", }, { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G600, 0, "Primax Electronics", "G2-600 scanner", }, { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_636I, 0, "Primax Electronics", "ReadyScan 636i", }, { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2600, 0, "Primax Electronics", "G2-600 scanner", }, { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2E600, 0, "Primax Electronics", "G2E-600 scanner", }, { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_COMFORT, 0, "Primax Electronics", "Comfort", }, { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_MOUSEINABOX, 0, "Primax Electronics", "Mouse-in-a-Box", }, { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_PCGAUMS1, 0, "Primax Electronics", "Sony PCGA-UMS1", }, { USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_PL2301, 0, "Prolific Technology Inc.", "PL2301 Host-Host interface", }, { USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_PL2302, 0, "Prolific Technology Inc.", "PL2302 Host-Host interface", }, { USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_RSAQ2, 0, "Prolific Technology Inc.", "PL2303 Serial adapter (IODATA USB-RSAQ2)", }, { USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_PL2303, 0, "Prolific Technology Inc.", "PL2303 Serial adapter (ATEN/IOGEAR UC232A)", }, { USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_PL2305, 0, "Prolific Technology Inc.", "Parallel printer adapter", }, { USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_ATAPI4, 0, "Prolific Technology Inc.", "ATAPI-4 Bridge Controller", }, { USB_VENDOR_PUTERCOM, USB_PRODUCT_PUTERCOM_UPA100, 0, "Putercom Co., Ltd.", "USB-1284 BRIDGE", }, { USB_VENDOR_QTRONIX, USB_PRODUCT_QTRONIX_980N, 0, "Qtronix Corp", "Scorpion-980N keyboard", }, { USB_VENDOR_QUICKSHOT, USB_PRODUCT_QUICKSHOT_STRIKEPAD, 0, "Quickshot", "USB StrikePad", }, { USB_VENDOR_RAINBOW, USB_PRODUCT_RAINBOW_IKEY2000, 0, "Rainbow Technologies", "i-Key 2000", }, { USB_VENDOR_ROLAND, USB_PRODUCT_ROLAND_UM1, 0, "Roland Corp.", "UM-1 MIDI I/F", }, { USB_VENDOR_ROCKFIRE, USB_PRODUCT_ROCKFIRE_GAMEPAD, 0, "Rockfire", "gamepad 203USB", }, { USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDDR05A, 0, "SanDisk Corp", "ImageMate SDDR-05a", }, { USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDDR31, 0, "SanDisk Corp", "ImageMate SDDR-31", }, { USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDDR12, 0, "SanDisk Corp", "ImageMate SDDR-12", }, { USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDDR09, 0, "SanDisk Corp", "ImageMate SDDR-09", }, { USB_VENDOR_SCANLOGIC, USB_PRODUCT_SCANLOGIC_336CX, 0, "ScanLogic Corp.", "Phantom 336CX - C3 scanner", }, { USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSB, 0, "Shuttle Technology", "E-USB Bridge", }, { USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSCSI, 0, "Shuttle Technology", "eUSCSI Bridge", }, { USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_SDDR09, 0, "Shuttle Technology", "ImageMate SDDR09", }, { USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_ZIOMMC, 0, "Shuttle Technology", "eUSB MultiMediaCard Adapter", }, { USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_HIFD, 0, "Shuttle Technology", "Sony Hifd", }, { USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSBATAPI, 0, "Shuttle Technology", "eUSB ATA/ATAPI Adapter", }, { USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_CF, 0, "Shuttle Technology", "eUSB CompactFlash Adapter", }, { USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSCSI_B, 0, "Shuttle Technology", "eUSCSI Bridge", }, { USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSCSI_C, 0, "Shuttle Technology", "eUSCSI Bridge", }, { USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_CDRW, 0, "Shuttle Technology", "CD-RW Device", }, { USB_VENDOR_SIIG, USB_PRODUCT_SIIG_DIGIFILMREADER, 0, "SIIG", "DigiFilm-Combo Reader", }, { USB_VENDOR_SILICONPORTALS, USB_PRODUCT_SILICONPORTALS_YAPPH_NF, 0, "Silicon Portals Inc.", "YAP Phone (no firmware)", }, { USB_VENDOR_SILICONPORTALS, USB_PRODUCT_SILICONPORTALS_YAPPHONE, 0, "Silicon Portals Inc.", "YAP Phone", }, { USB_VENDOR_SIRIUS, USB_PRODUCT_SIRIUS_ROADSTER, 0, "Sirius Technologies", "NetComm Roadster II 56 USB", }, { USB_VENDOR_SMARTBRIDGES, USB_PRODUCT_SMARTBRIDGES_SMARTLINK, 0, "SmartBridges Pte Ltd.", "SmartLink USB ethernet adapter", }, { USB_VENDOR_SMC, USB_PRODUCT_SMC_2102USB, 0, "Standard Microsystems Corp", "10Mbps ethernet adapter", }, { USB_VENDOR_SMC, USB_PRODUCT_SMC_2202USB, 0, "Standard Microsystems Corp", "10/100 ethernet adapter", }, { USB_VENDOR_SOLIDYEAR, USB_PRODUCT_SOLIDYEAR_KEYBOARD, 0, "Solid Year", "Solid Year USB keyboard", }, { USB_VENDOR_SONY, USB_PRODUCT_SONY_DSC, 0, "Sony Corp.", "DSC cameras", }, { USB_VENDOR_SONY, USB_PRODUCT_SONY_MSACUS1, 0, "Sony Corp.", "Memorystick MSAC-US1", }, { USB_VENDOR_SONY, USB_PRODUCT_SONY_MSC, 0, "Sony Corp.", "MSC memory stick slot", }, { USB_VENDOR_STMICRO, USB_PRODUCT_STMICRO_COMMUNICATOR, 0, "STMicroelectronics", "USB Communicator", }, { USB_VENDOR_STSN, USB_PRODUCT_STSN_STSN0001, 0, "STSN", "Internet Access Device", }, { USB_VENDOR_SUN, USB_PRODUCT_SUN_KEYBOARD, 0, "Sun Microsystems", "Type 6 USB keyboard", }, { USB_VENDOR_SUN, USB_PRODUCT_SUN_MOUSE, 0, "Sun Microsystems", "Type 6 USB mouse", }, { USB_VENDOR_DIAMOND2, USB_PRODUCT_DIAMOND2_SUPRAEXPRESS56K, 0, "Diamond (Supra)", "Supra Express 56K modem", }, { USB_VENDOR_DIAMOND2, USB_PRODUCT_DIAMOND2_SUPRA2890, 0, "Diamond (Supra)", "SupraMax 2890 56K Modem", }, { USB_VENDOR_DIAMOND2, USB_PRODUCT_DIAMOND2_RIO600USB, 0, "Diamond (Supra)", "Rio 600 USB", }, { USB_VENDOR_DIAMOND2, USB_PRODUCT_DIAMOND2_RIO800USB, 0, "Diamond (Supra)", "Rio 800 USB", }, { USB_VENDOR_TAUGA, USB_PRODUCT_TAUGA_CAMERAMATE, 0, "Taugagreining HF", "CameraMate (DPCM_USB)", }, { USB_VENDOR_TDK, USB_PRODUCT_TDK_UPA9664, 0, "TDK Corp.", "USB-PDC Adapter UPA9664", }, { USB_VENDOR_TDK, USB_PRODUCT_TDK_UCA1464, 0, "TDK Corp.", "USB-cdmaOne Adapter UCA1464", }, { USB_VENDOR_TDK, USB_PRODUCT_TDK_UHA6400, 0, "TDK Corp.", "USB-PHS Adapter UHA6400", }, { USB_VENDOR_TDK, USB_PRODUCT_TDK_UPA6400, 0, "TDK Corp.", "USB-PHS Adapter UPA6400", }, { USB_VENDOR_TEAC, USB_PRODUCT_TEAC_FD05PUB, 0, "TEAC", "FD-05PUB floppy", }, { USB_VENDOR_TELEX, USB_PRODUCT_TELEX_MIC1, 0, "Telex Communications, Inc.", "Enhanced USB Microphone", }, { USB_VENDOR_TI, USB_PRODUCT_TI_UTUSB41, 0, "Texas Instruments", "UT-USB41 hub", }, { USB_VENDOR_TI, USB_PRODUCT_TI_TUSB2046, 0, "Texas Instruments", "TUSB2046 hub", }, { USB_VENDOR_THRUST, USB_PRODUCT_THRUST_FUSION_PAD, 0, "Thrustmaster", "Fusion Digital Gamepad", }, { USB_VENDOR_TREK, USB_PRODUCT_TREK_THUMBDRIVE, 0, "Trek Technology", "ThumbDrive", }, { USB_VENDOR_ULTIMA, USB_PRODUCT_ULTIMA_1200UBPLUS, 0, "Ultima", "1200 UB Plus scanner", }, { USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA1236U, 0, "UMAX Data Systems, Inc.", "Astra 1236U Scanner", }, { USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA1220U, 0, "UMAX Data Systems, Inc.", "Astra 1220U Scanner", }, { USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA2000U, 0, "UMAX Data Systems, Inc.", "Astra 2000U Scanner", }, { USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA2100U, 0, "UMAX Data Systems, Inc.", "Astra 2100U Scanner", }, { USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA2200U, 0, "UMAX Data Systems, Inc.", "Astra 2200U Scanner", }, { USB_VENDOR_UNIACCESS, USB_PRODUCT_UNIACCESS_PANACHE, 0, "Universal Access", "Panache Surf USB ISDN Adapter", }, { USB_VENDOR_VISION, USB_PRODUCT_VISION_VC6452V002, 0, "VLSI Vision Ltd.", "CPiA Camera", }, { USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_7600, 0, "Visioneer", "OneTouch 7600", }, { USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_5300, 0, "Visioneer", "OneTouch 5300", }, { USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_6100, 0, "Visioneer", "OneTouch 6100", }, { USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_6200, 0, "Visioneer", "OneTouch 6200", }, { USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_8100, 0, "Visioneer", "OneTouch 8100", }, { USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_8600, 0, "Visioneer", "OneTouch 8600", }, { USB_VENDOR_WACOM, USB_PRODUCT_WACOM_CT0405U, 0, "WACOM Corp. Ltd.", "CT-0405-U Tablet", }, { USB_VENDOR_WACOM, USB_PRODUCT_WACOM_GRAPHIRE, 0, "WACOM Corp. Ltd.", "Graphire", }, { USB_VENDOR_WACOM, USB_PRODUCT_WACOM_INTUOSA5, 0, "WACOM Corp. Ltd.", "Intuos A5", }, { USB_VENDOR_XIRLINK, USB_PRODUCT_XIRLINK_PCCAM, 0, "Xirlink, Inc.", "IBM PC Camera", }, { USB_VENDOR_YEDATA, USB_PRODUCT_YEDATA_FLASHBUSTERU, 0, "Y-E Data", "Flashbuster-U", }, { USB_VENDOR_YANO, USB_PRODUCT_YANO_U640MO, 0, "Yano", "U640MO-03", }, { USB_VENDOR_YAMAHA, USB_PRODUCT_YAMAHA_UX256, 0, "YAMAHA Corp.", "UX256 MIDI I/F", }, { USB_VENDOR_YAMAHA, USB_PRODUCT_YAMAHA_UX96, 0, "YAMAHA Corp.", "UX96 MIDI I/F", }, { USB_VENDOR_ZOOM, USB_PRODUCT_ZOOM_2986L, 0, "Zoom Telephonics, Inc.", "2986L Fax modem", }, { USB_VENDOR_ZYXEL, USB_PRODUCT_ZYXEL_OMNI56K, 0, "ZyXEL Communication Co.", "Omni 56K Plus", }, { USB_VENDOR_ZYXEL, USB_PRODUCT_ZYXEL_980N, 0, "ZyXEL Communication Co.", "Scorpion-980N keyboard", }, { USB_VENDOR_AOX, 0, USB_KNOWNDEV_NOPROD, "AOX, Inc.", NULL, }, { USB_VENDOR_ATMEL, 0, USB_KNOWNDEV_NOPROD, "Atmel Corp.", NULL, }, { USB_VENDOR_MITSUMI, 0, USB_KNOWNDEV_NOPROD, "Mitsumi", NULL, }, { USB_VENDOR_HP, 0, USB_KNOWNDEV_NOPROD, "Hewlett-Packard", NULL, }, { USB_VENDOR_ADAPTEC, 0, USB_KNOWNDEV_NOPROD, "Adaptec, Inc.", NULL, }, { USB_VENDOR_NATIONAL, 0, USB_KNOWNDEV_NOPROD, "National Semiconductor", NULL, }, { USB_VENDOR_ACERLABS, 0, USB_KNOWNDEV_NOPROD, "Acer Labs, Inc.", NULL, }, { USB_VENDOR_FTDI, 0, USB_KNOWNDEV_NOPROD, "Future Technology Devices", NULL, }, { USB_VENDOR_NEC, 0, USB_KNOWNDEV_NOPROD, "NEC", NULL, }, { USB_VENDOR_KODAK, 0, USB_KNOWNDEV_NOPROD, "Eastman Kodak Corp.", NULL, }, { USB_VENDOR_MELCO, 0, USB_KNOWNDEV_NOPROD, "Melco, Inc.", NULL, }, { USB_VENDOR_CREATIVE, 0, USB_KNOWNDEV_NOPROD, "Creative", NULL, }, { USB_VENDOR_ADI, 0, USB_KNOWNDEV_NOPROD, "ADI Systems, Inc.", NULL, }, { USB_VENDOR_CATC, 0, USB_KNOWNDEV_NOPROD, "Computer Access Technology Corp.", NULL, }, { USB_VENDOR_GRAVIS, 0, USB_KNOWNDEV_NOPROD, "Advanced Gravis Computer Tech. Ltd.", NULL, }, { USB_VENDOR_SUN, 0, USB_KNOWNDEV_NOPROD, "Sun Microsystems", NULL, }, { USB_VENDOR_TAUGA, 0, USB_KNOWNDEV_NOPROD, "Taugagreining HF", NULL, }, { USB_VENDOR_AMD, 0, USB_KNOWNDEV_NOPROD, "Advanced Micro Devices", NULL, }, { USB_VENDOR_LEXMARK, 0, USB_KNOWNDEV_NOPROD, "Lexmark International, Inc.", NULL, }, { USB_VENDOR_NANAO, 0, USB_KNOWNDEV_NOPROD, "NANAO Corp.", NULL, }, { USB_VENDOR_ALPS, 0, USB_KNOWNDEV_NOPROD, "Alps Electric Co., Ltd.", NULL, }, { USB_VENDOR_THRUST, 0, USB_KNOWNDEV_NOPROD, "Thrustmaster", NULL, }, { USB_VENDOR_TI, 0, USB_KNOWNDEV_NOPROD, "Texas Instruments", NULL, }, { USB_VENDOR_ANALOGDEVICES, 0, USB_KNOWNDEV_NOPROD, "Analog Devices, Inc.", NULL, }, { USB_VENDOR_KYE, 0, USB_KNOWNDEV_NOPROD, "KYE Systems Corp.", NULL, }, { USB_VENDOR_DIAMOND2, 0, USB_KNOWNDEV_NOPROD, "Diamond (Supra)", NULL, }, { USB_VENDOR_MICROSOFT, 0, USB_KNOWNDEV_NOPROD, "Microsoft", NULL, }, { USB_VENDOR_PRIMAX, 0, USB_KNOWNDEV_NOPROD, "Primax Electronics", NULL, }, { USB_VENDOR_AMP, 0, USB_KNOWNDEV_NOPROD, "AMP, Inc.", NULL, }, { USB_VENDOR_CHERRY, 0, USB_KNOWNDEV_NOPROD, "Cherry Mikroschalter GmbH", NULL, }, { USB_VENDOR_MEGATRENDS, 0, USB_KNOWNDEV_NOPROD, "American Megatrends", NULL, }, { USB_VENDOR_LOGITECH, 0, USB_KNOWNDEV_NOPROD, "Logitech, Inc.", NULL, }, { USB_VENDOR_BTC, 0, USB_KNOWNDEV_NOPROD, "Behavior Tech. Computer", NULL, }, { USB_VENDOR_PHILIPS, 0, USB_KNOWNDEV_NOPROD, "Philips", NULL, }, { USB_VENDOR_CONNECTIX, 0, USB_KNOWNDEV_NOPROD, "Connectix Corp.", NULL, }, { USB_VENDOR_KENSINGTON, 0, USB_KNOWNDEV_NOPROD, "Kensington", NULL, }, { USB_VENDOR_LUCENT, 0, USB_KNOWNDEV_NOPROD, "Lucent", NULL, }, { USB_VENDOR_STMICRO, 0, USB_KNOWNDEV_NOPROD, "STMicroelectronics", NULL, }, { USB_VENDOR_YAMAHA, 0, USB_KNOWNDEV_NOPROD, "YAMAHA Corp.", NULL, }, { USB_VENDOR_COMPAQ, 0, USB_KNOWNDEV_NOPROD, "Compaq Computers", NULL, }, { USB_VENDOR_ACERP, 0, USB_KNOWNDEV_NOPROD, "Acer Peripherals, Inc.", NULL, }, { USB_VENDOR_VISIONEER, 0, USB_KNOWNDEV_NOPROD, "Visioneer", NULL, }, { USB_VENDOR_CANON, 0, USB_KNOWNDEV_NOPROD, "Canon, Inc.", NULL, }, { USB_VENDOR_NIKON, 0, USB_KNOWNDEV_NOPROD, "Nikon", NULL, }, { USB_VENDOR_IBM, 0, USB_KNOWNDEV_NOPROD, "IBM Corporation", NULL, }, { USB_VENDOR_CYPRESS, 0, USB_KNOWNDEV_NOPROD, "Cypress Semiconductor", NULL, }, { USB_VENDOR_EPSON, 0, USB_KNOWNDEV_NOPROD, "Seiko Epson Corp.", NULL, }, { USB_VENDOR_RAINBOW, 0, USB_KNOWNDEV_NOPROD, "Rainbow Technologies", NULL, }, { USB_VENDOR_IODATA, 0, USB_KNOWNDEV_NOPROD, "I/O Data", NULL, }, { USB_VENDOR_TDK, 0, USB_KNOWNDEV_NOPROD, "TDK Corp.", NULL, }, { USB_VENDOR_3COMUSR, 0, USB_KNOWNDEV_NOPROD, "U.S. Robotics", NULL, }, { USB_VENDOR_METHODE, 0, USB_KNOWNDEV_NOPROD, "Methode Electronics Far East PTE Ltd.", NULL, }, { USB_VENDOR_MAXISWITCH, 0, USB_KNOWNDEV_NOPROD, "Maxi Switch, Inc.", NULL, }, { USB_VENDOR_LOCKHEEDMER, 0, USB_KNOWNDEV_NOPROD, "Lockheed Martin Energy Research", NULL, }, { USB_VENDOR_FUJITSU, 0, USB_KNOWNDEV_NOPROD, "Fujitsu Ltd.", NULL, }, { USB_VENDOR_TOSHIBAAM, 0, USB_KNOWNDEV_NOPROD, "Toshiba America Electronic Components", NULL, }, { USB_VENDOR_MICROMACRO, 0, USB_KNOWNDEV_NOPROD, "Micro Macro Technologies", NULL, }, { USB_VENDOR_KONICA, 0, USB_KNOWNDEV_NOPROD, "Konica Corp.", NULL, }, { USB_VENDOR_LITEON, 0, USB_KNOWNDEV_NOPROD, "Lite-On Technology Corp.", NULL, }, { USB_VENDOR_FUJIPHOTO, 0, USB_KNOWNDEV_NOPROD, "Fuji Photo Film Co., Ltd.", NULL, }, { USB_VENDOR_PHILIPSSEMI, 0, USB_KNOWNDEV_NOPROD, "Philips Semiconductors", NULL, }, { USB_VENDOR_TATUNG, 0, USB_KNOWNDEV_NOPROD, "Tatung Co. Of America", NULL, }, { USB_VENDOR_SCANLOGIC, 0, USB_KNOWNDEV_NOPROD, "ScanLogic Corp.", NULL, }, { USB_VENDOR_MYSON, 0, USB_KNOWNDEV_NOPROD, "Myson Technology Inc.", NULL, }, { USB_VENDOR_DIGI2, 0, USB_KNOWNDEV_NOPROD, "Digi International", NULL, }, { USB_VENDOR_ITTCANON, 0, USB_KNOWNDEV_NOPROD, "ITT Canon", NULL, }, { USB_VENDOR_ALTEC, 0, USB_KNOWNDEV_NOPROD, "Altec Lansing Technologies, Inc.", NULL, }, { USB_VENDOR_PANASONIC, 0, USB_KNOWNDEV_NOPROD, "Panasonic (Matsushita)", NULL, }, { USB_VENDOR_SHUTTLE, 0, USB_KNOWNDEV_NOPROD, "Shuttle Technology", NULL, }, { USB_VENDOR_ANNABOOKS, 0, USB_KNOWNDEV_NOPROD, "Annabooks", NULL, }, { USB_VENDOR_CHICONY, 0, USB_KNOWNDEV_NOPROD, "Chicony Electronics Co., Ltd.", NULL, }, { USB_VENDOR_BROTHER, 0, USB_KNOWNDEV_NOPROD, "Brother Industries, Ltd.", NULL, }, { USB_VENDOR_DALLAS, 0, USB_KNOWNDEV_NOPROD, "Dallas Semiconductor", NULL, }, { USB_VENDOR_ACER, 0, USB_KNOWNDEV_NOPROD, "Acer, Inc.", NULL, }, { USB_VENDOR_3COM, 0, USB_KNOWNDEV_NOPROD, "3Com Corp.", NULL, }, { USB_VENDOR_AZTECH, 0, USB_KNOWNDEV_NOPROD, "Aztech Systems Ltd", NULL, }, { USB_VENDOR_BELKIN, 0, USB_KNOWNDEV_NOPROD, "Belkin Components", NULL, }, { USB_VENDOR_KAWATSU, 0, USB_KNOWNDEV_NOPROD, "Kawatsu Semiconductor, Inc.", NULL, }, { USB_VENDOR_APC, 0, USB_KNOWNDEV_NOPROD, "American Power Conversion", NULL, }, { USB_VENDOR_CONNECTEK, 0, USB_KNOWNDEV_NOPROD, "Advanced Connectek USA, Inc.", NULL, }, { USB_VENDOR_NETCHIP, 0, USB_KNOWNDEV_NOPROD, "NetChip Technology", NULL, }, { USB_VENDOR_ALTRA, 0, USB_KNOWNDEV_NOPROD, "ALTRA", NULL, }, { USB_VENDOR_ATI, 0, USB_KNOWNDEV_NOPROD, "ATI Technologies, Inc.", NULL, }, { USB_VENDOR_AKS, 0, USB_KNOWNDEV_NOPROD, "Aladdin Knowledge Systems", NULL, }, { USB_VENDOR_UNIACCESS, 0, USB_KNOWNDEV_NOPROD, "Universal Access", NULL, }, { USB_VENDOR_XIRLINK, 0, USB_KNOWNDEV_NOPROD, "Xirlink, Inc.", NULL, }, { USB_VENDOR_ANCHOR, 0, USB_KNOWNDEV_NOPROD, "Anchor Chips, Inc.", NULL, }, { USB_VENDOR_SONY, 0, USB_KNOWNDEV_NOPROD, "Sony Corp.", NULL, }, { USB_VENDOR_VISION, 0, USB_KNOWNDEV_NOPROD, "VLSI Vision Ltd.", NULL, }, { USB_VENDOR_ASAHIKASEI, 0, USB_KNOWNDEV_NOPROD, "Asahi Kasei Microsystems Co., Ltd", NULL, }, { USB_VENDOR_ATEN, 0, USB_KNOWNDEV_NOPROD, "ATEN International Co. Ltd.", NULL, }, { USB_VENDOR_MUSTEK, 0, USB_KNOWNDEV_NOPROD, "Mustek Systems, Inc.", NULL, }, { USB_VENDOR_TELEX, 0, USB_KNOWNDEV_NOPROD, "Telex Communications, Inc.", NULL, }, { USB_VENDOR_PERACOM, 0, USB_KNOWNDEV_NOPROD, "Peracom Networks, Inc.", NULL, }, { USB_VENDOR_ALCOR2, 0, USB_KNOWNDEV_NOPROD, "Alcor Micro, Inc.", NULL, }, { USB_VENDOR_WACOM, 0, USB_KNOWNDEV_NOPROD, "WACOM Corp. Ltd.", NULL, }, { USB_VENDOR_ETEK, 0, USB_KNOWNDEV_NOPROD, "e-TEK Labs", NULL, }, { USB_VENDOR_EIZO, 0, USB_KNOWNDEV_NOPROD, "EIZO", NULL, }, { USB_VENDOR_ELECOM, 0, USB_KNOWNDEV_NOPROD, "Elecom Corp. Ltd.", NULL, }, { USB_VENDOR_HAUPPAUGE, 0, USB_KNOWNDEV_NOPROD, "Hauppauge Computer Works", NULL, }, { USB_VENDOR_BAFO, 0, USB_KNOWNDEV_NOPROD, "BAFO/Quality Computer Accessories", NULL, }, { USB_VENDOR_YEDATA, 0, USB_KNOWNDEV_NOPROD, "Y-E Data", NULL, }, { USB_VENDOR_AVM, 0, USB_KNOWNDEV_NOPROD, "AVM GmbH", NULL, }, { USB_VENDOR_QUICKSHOT, 0, USB_KNOWNDEV_NOPROD, "Quickshot", NULL, }, { USB_VENDOR_ROLAND, 0, USB_KNOWNDEV_NOPROD, "Roland Corp.", NULL, }, { USB_VENDOR_ROCKFIRE, 0, USB_KNOWNDEV_NOPROD, "Rockfire", NULL, }, { USB_VENDOR_ZYXEL, 0, USB_KNOWNDEV_NOPROD, "ZyXEL Communication Co.", NULL, }, { USB_VENDOR_ALCOR, 0, USB_KNOWNDEV_NOPROD, "Alcor Micro, Inc.", NULL, }, { USB_VENDOR_IOMEGA, 0, USB_KNOWNDEV_NOPROD, "Iomega Corp.", NULL, }, { USB_VENDOR_ATREND, 0, USB_KNOWNDEV_NOPROD, "A-Trend Technology Co., Ltd.", NULL, }, { USB_VENDOR_AID, 0, USB_KNOWNDEV_NOPROD, "Advanced Input Devices", NULL, }, { USB_VENDOR_LACIE, 0, USB_KNOWNDEV_NOPROD, "LaCie", NULL, }, { USB_VENDOR_OMNIVISION, 0, USB_KNOWNDEV_NOPROD, "OmniVision", NULL, }, { USB_VENDOR_INSYSTEM, 0, USB_KNOWNDEV_NOPROD, "In-System Design", NULL, }, { USB_VENDOR_APPLE, 0, USB_KNOWNDEV_NOPROD, "Apple Computer", NULL, }, { USB_VENDOR_DIGI, 0, USB_KNOWNDEV_NOPROD, "Digi International", NULL, }, { USB_VENDOR_QTRONIX, 0, USB_KNOWNDEV_NOPROD, "Qtronix Corp", NULL, }, { USB_VENDOR_ELSA, 0, USB_KNOWNDEV_NOPROD, "ELSA Gmbh", NULL, }, { USB_VENDOR_BRAINBOXES, 0, USB_KNOWNDEV_NOPROD, "Brainboxes Limited", NULL, }, { USB_VENDOR_ULTIMA, 0, USB_KNOWNDEV_NOPROD, "Ultima", NULL, }, { USB_VENDOR_AXIOHM, 0, USB_KNOWNDEV_NOPROD, "Axiohm Transaction Solutions", NULL, }, { USB_VENDOR_MICROTEK, 0, USB_KNOWNDEV_NOPROD, "Microtek", NULL, }, { USB_VENDOR_LEXAR, 0, USB_KNOWNDEV_NOPROD, "Lexar Media", NULL, }, { USB_VENDOR_SYMBOL, 0, USB_KNOWNDEV_NOPROD, "Symbol Technologies", NULL, }, { USB_VENDOR_GENESYS, 0, USB_KNOWNDEV_NOPROD, "Genesys Logic, Inc.", NULL, }, { USB_VENDOR_FUJI, 0, USB_KNOWNDEV_NOPROD, "Fuji Electric Co., Ltd.", NULL, }, { USB_VENDOR_KEITHLEY, 0, USB_KNOWNDEV_NOPROD, "Keithley Instruments", NULL, }, { USB_VENDOR_EIZONANAO, 0, USB_KNOWNDEV_NOPROD, "EIZO Nanao", NULL, }, { USB_VENDOR_KLSI, 0, USB_KNOWNDEV_NOPROD, "Kawasaki LSI", NULL, }, { USB_VENDOR_FFC, 0, USB_KNOWNDEV_NOPROD, "FFC Limited", NULL, }, { USB_VENDOR_ANKO, 0, USB_KNOWNDEV_NOPROD, "Anko Electronic Co., Ltd.", NULL, }, { USB_VENDOR_PIENGINEERING, 0, USB_KNOWNDEV_NOPROD, "P.I. Engineering", NULL, }, { USB_VENDOR_AOC, 0, USB_KNOWNDEV_NOPROD, "AOC International", NULL, }, { USB_VENDOR_CHIC, 0, USB_KNOWNDEV_NOPROD, "Chic Technology", NULL, }, { USB_VENDOR_BARCO, 0, USB_KNOWNDEV_NOPROD, "Barco Display Systems", NULL, }, { USB_VENDOR_BRIDGE, 0, USB_KNOWNDEV_NOPROD, "Bridge Information Co., Ltd.", NULL, }, { USB_VENDOR_SOLIDYEAR, 0, USB_KNOWNDEV_NOPROD, "Solid Year", NULL, }, { USB_VENDOR_BIORAD, 0, USB_KNOWNDEV_NOPROD, "Bio-Rad Laboratories", NULL, }, { USB_VENDOR_MACALLY, 0, USB_KNOWNDEV_NOPROD, "Macally", NULL, }, { USB_VENDOR_ACTLABS, 0, USB_KNOWNDEV_NOPROD, "Act Labs, Ltd.", NULL, }, { USB_VENDOR_ALARIS, 0, USB_KNOWNDEV_NOPROD, "Alaris, Inc.", NULL, }, { USB_VENDOR_APEX, 0, USB_KNOWNDEV_NOPROD, "Apex, Inc.", NULL, }, { USB_VENDOR_AVISION, 0, USB_KNOWNDEV_NOPROD, "Avision, Inc.", NULL, }, { USB_VENDOR_TEAC, 0, USB_KNOWNDEV_NOPROD, "TEAC", NULL, }, { USB_VENDOR_LINKSYS, 0, USB_KNOWNDEV_NOPROD, "Linksys, Inc.", NULL, }, { USB_VENDOR_ACERSA, 0, USB_KNOWNDEV_NOPROD, "Acer Semiconductor America, Inc.", NULL, }, { USB_VENDOR_AIWA, 0, USB_KNOWNDEV_NOPROD, "Aiwa Co., Ltd.", NULL, }, { USB_VENDOR_ACARD, 0, USB_KNOWNDEV_NOPROD, "ACARD Technology Corp.", NULL, }, { USB_VENDOR_PROLIFIC, 0, USB_KNOWNDEV_NOPROD, "Prolific Technology Inc.", NULL, }, { USB_VENDOR_ADVANCELOGIC, 0, USB_KNOWNDEV_NOPROD, "Avance Logic, Inc.", NULL, }, { USB_VENDOR_HAGIWARA, 0, USB_KNOWNDEV_NOPROD, "Hagiwara Sys-Com", NULL, }, { USB_VENDOR_CTX, 0, USB_KNOWNDEV_NOPROD, "Chuntex", NULL, }, { USB_VENDOR_ASKEY, 0, USB_KNOWNDEV_NOPROD, "Askey Computer Corp.", NULL, }, { USB_VENDOR_ALCATELT, 0, USB_KNOWNDEV_NOPROD, "Alcatel Telecom", NULL, }, { USB_VENDOR_AGFA, 0, USB_KNOWNDEV_NOPROD, "AGFA-Gevaert NV", NULL, }, { USB_VENDOR_ASIAMD, 0, USB_KNOWNDEV_NOPROD, "Asia Microelectronic Development, Inc.", NULL, }, { USB_VENDOR_BIZLINK, 0, USB_KNOWNDEV_NOPROD, "Bizlink International Corp.", NULL, }, { USB_VENDOR_KEYSPAN, 0, USB_KNOWNDEV_NOPROD, "Keyspan", NULL, }, { USB_VENDOR_AASHIMA, 0, USB_KNOWNDEV_NOPROD, "Aashima Technology B.V.", NULL, }, { USB_VENDOR_MULTITECH, 0, USB_KNOWNDEV_NOPROD, "MultiTech", NULL, }, { USB_VENDOR_ADS, 0, USB_KNOWNDEV_NOPROD, "ADS Technologies, Inc.", NULL, }, { USB_VENDOR_ALCATELM, 0, USB_KNOWNDEV_NOPROD, "Alcatel Microelectronics", NULL, }, { USB_VENDOR_SIRIUS, 0, USB_KNOWNDEV_NOPROD, "Sirius Technologies", NULL, }, { USB_VENDOR_BOSTON, 0, USB_KNOWNDEV_NOPROD, "Boston Acoustics", NULL, }, { USB_VENDOR_SMC, 0, USB_KNOWNDEV_NOPROD, "Standard Microsystems Corp", NULL, }, { USB_VENDOR_PUTERCOM, 0, USB_KNOWNDEV_NOPROD, "Putercom Co., Ltd.", NULL, }, { USB_VENDOR_MCT, 0, USB_KNOWNDEV_NOPROD, "MCT Corp.", NULL, }, { USB_VENDOR_AUREAL, 0, USB_KNOWNDEV_NOPROD, "Aureal Semiconductor", NULL, }, { USB_VENDOR_MIDIMAN, 0, USB_KNOWNDEV_NOPROD, "Midiman", NULL, }, { USB_VENDOR_GRIFFIN, 0, USB_KNOWNDEV_NOPROD, "Griffin Technology, Inc.", NULL, }, { USB_VENDOR_SANDISK, 0, USB_KNOWNDEV_NOPROD, "SanDisk Corp", NULL, }, { USB_VENDOR_BRIMAX, 0, USB_KNOWNDEV_NOPROD, "Brimax, Inc.", NULL, }, { USB_VENDOR_AXIS, 0, USB_KNOWNDEV_NOPROD, "Axis Communications AB", NULL, }, { USB_VENDOR_ABL, 0, USB_KNOWNDEV_NOPROD, "ABL Electronics Corp.", NULL, }, { USB_VENDOR_ALFADATA, 0, USB_KNOWNDEV_NOPROD, "Alfadata Computer Corp.", NULL, }, { USB_VENDOR_NATIONALTECH, 0, USB_KNOWNDEV_NOPROD, "National Technical Systems", NULL, }, { USB_VENDOR_ONNTO, 0, USB_KNOWNDEV_NOPROD, "Onnto Corp.", NULL, }, { USB_VENDOR_BE, 0, USB_KNOWNDEV_NOPROD, "Be, Inc.", NULL, }, { USB_VENDOR_ADMTEK, 0, USB_KNOWNDEV_NOPROD, "ADMtek, Inc.", NULL, }, { USB_VENDOR_COREGA, 0, USB_KNOWNDEV_NOPROD, "Corega", NULL, }, { USB_VENDOR_FREECOM, 0, USB_KNOWNDEV_NOPROD, "Freecom", NULL, }, { USB_VENDOR_MICROTECH, 0, USB_KNOWNDEV_NOPROD, "Microtech", NULL, }, { USB_VENDOR_OLYMPUS, 0, USB_KNOWNDEV_NOPROD, "Olympus", NULL, }, { USB_VENDOR_ABOCOM, 0, USB_KNOWNDEV_NOPROD, "AboCom Systems, Inc.", NULL, }, { USB_VENDOR_KEISOKUGIKEN, 0, USB_KNOWNDEV_NOPROD, "Keisokugiken Corp.", NULL, }, { USB_VENDOR_APG, 0, USB_KNOWNDEV_NOPROD, "APG Cash Drawer", NULL, }, { USB_VENDOR_BUG, 0, USB_KNOWNDEV_NOPROD, "B.U.G., Inc.", NULL, }, { USB_VENDOR_ALLIEDTELESYN, 0, USB_KNOWNDEV_NOPROD, "Allied Telesyn International", NULL, }, { USB_VENDOR_AVERMEDIA, 0, USB_KNOWNDEV_NOPROD, "AVerMedia Technologies, Inc.", NULL, }, { USB_VENDOR_SIIG, 0, USB_KNOWNDEV_NOPROD, "SIIG", NULL, }, { USB_VENDOR_CASIO, 0, USB_KNOWNDEV_NOPROD, "CASIO", NULL, }, { USB_VENDOR_APTIO, 0, USB_KNOWNDEV_NOPROD, "Aptio Products, Inc.", NULL, }, { USB_VENDOR_ARASAN, 0, USB_KNOWNDEV_NOPROD, "Arasan Chip Systems", NULL, }, { USB_VENDOR_ALLIEDCABLE, 0, USB_KNOWNDEV_NOPROD, "Allied Cable Corp.", NULL, }, { USB_VENDOR_STSN, 0, USB_KNOWNDEV_NOPROD, "STSN", NULL, }, { USB_VENDOR_ZOOM, 0, USB_KNOWNDEV_NOPROD, "Zoom Telephonics, Inc.", NULL, }, { USB_VENDOR_BROADLOGIC, 0, USB_KNOWNDEV_NOPROD, "BroadLogic, Inc.", NULL, }, { USB_VENDOR_HANDSPRING, 0, USB_KNOWNDEV_NOPROD, "Handspring, Inc.", NULL, }, { USB_VENDOR_ACTIONSTAR, 0, USB_KNOWNDEV_NOPROD, "Action Star Enterprise Co., Ltd.", NULL, }, { USB_VENDOR_PALM, 0, USB_KNOWNDEV_NOPROD, "Palm Computing, Inc.", NULL, }, { USB_VENDOR_ACCTON, 0, USB_KNOWNDEV_NOPROD, "Accton Technology Corp.", NULL, }, { USB_VENDOR_DIAMOND, 0, USB_KNOWNDEV_NOPROD, "Diamond", NULL, }, { USB_VENDOR_NETGEAR, 0, USB_KNOWNDEV_NOPROD, "BayNETGEAR, Inc.", NULL, }, { USB_VENDOR_ACTIVEWIRE, 0, USB_KNOWNDEV_NOPROD, "ActiveWire, Inc.", NULL, }, { USB_VENDOR_METRICOM, 0, USB_KNOWNDEV_NOPROD, "Metricom", NULL, }, { USB_VENDOR_ADESSOKBTEK, 0, USB_KNOWNDEV_NOPROD, "ADESSO/Kbtek America, Inc.", NULL, }, { USB_VENDOR_APT, 0, USB_KNOWNDEV_NOPROD, "APT Technologies, Inc.", NULL, }, { USB_VENDOR_BOCARESEARCH, 0, USB_KNOWNDEV_NOPROD, "Boca Research, Inc.", NULL, }, { USB_VENDOR_ANDREA, 0, USB_KNOWNDEV_NOPROD, "Andrea Electronics", NULL, }, { USB_VENDOR_BURRBROWN, 0, USB_KNOWNDEV_NOPROD, "Burr-Brown Japan, Ltd.", NULL, }, { USB_VENDOR_2WIRE, 0, USB_KNOWNDEV_NOPROD, "2Wire, Inc", NULL, }, { USB_VENDOR_AIPTEK, 0, USB_KNOWNDEV_NOPROD, "AIPTEK International, Inc.", NULL, }, { USB_VENDOR_SMARTBRIDGES, 0, USB_KNOWNDEV_NOPROD, "SmartBridges Pte Ltd.", NULL, }, { USB_VENDOR_BILLIONTON, 0, USB_KNOWNDEV_NOPROD, "Billionton Systems, Inc.", NULL, }, { USB_VENDOR_EXTENDED, 0, USB_KNOWNDEV_NOPROD, "Extended Systems, Inc.", NULL, }, { USB_VENDOR_MSYSTEMS, 0, USB_KNOWNDEV_NOPROD, "M-Systems", NULL, }, { USB_VENDOR_AUTHENTEC, 0, USB_KNOWNDEV_NOPROD, "AuthenTec, Inc.", NULL, }, { USB_VENDOR_ALATION, 0, USB_KNOWNDEV_NOPROD, "Alation Systems, Inc.", NULL, }, { USB_VENDOR_BIOMETRIC, 0, USB_KNOWNDEV_NOPROD, "American Biometric Company", NULL, }, { USB_VENDOR_YANO, 0, USB_KNOWNDEV_NOPROD, "Yano", NULL, }, { USB_VENDOR_KINGSTON, 0, USB_KNOWNDEV_NOPROD, "Kingston Technology", NULL, }, { USB_VENDOR_BLUEWATER, 0, USB_KNOWNDEV_NOPROD, "BlueWater Systems, Inc.", NULL, }, { USB_VENDOR_AGILENT, 0, USB_KNOWNDEV_NOPROD, "Agilent Technologies, Inc.", NULL, }, { USB_VENDOR_ADIRONDACK, 0, USB_KNOWNDEV_NOPROD, "Adirondack Wire & Cable", NULL, }, { USB_VENDOR_BECKHOFF, 0, USB_KNOWNDEV_NOPROD, "Beckhoff Gmbh", NULL, }, { USB_VENDOR_ALTIUS, 0, USB_KNOWNDEV_NOPROD, "Altius Solutions, Inc.", NULL, }, { USB_VENDOR_ARRIS, 0, USB_KNOWNDEV_NOPROD, "Arris Interactive LLC", NULL, }, { USB_VENDOR_ACTIVCARD, 0, USB_KNOWNDEV_NOPROD, "ACTIVCARD, INC.", NULL, }, { USB_VENDOR_ACTISYS, 0, USB_KNOWNDEV_NOPROD, "ACTiSYS Corp.", NULL, }, { USB_VENDOR_AFOURTECH, 0, USB_KNOWNDEV_NOPROD, "A-FOUR TECH CO., LTD.", NULL, }, { USB_VENDOR_AIMEX, 0, USB_KNOWNDEV_NOPROD, "AIMEX Corp.", NULL, }, { USB_VENDOR_ADDONICS, 0, USB_KNOWNDEV_NOPROD, "Addonics Technologies Corp.", NULL, }, { USB_VENDOR_AKAI, 0, USB_KNOWNDEV_NOPROD, "AKAI professional M.I. Corp.", NULL, }, { USB_VENDOR_ARESCOM, 0, USB_KNOWNDEV_NOPROD, "ARESCOM", NULL, }, { USB_VENDOR_BAY, 0, USB_KNOWNDEV_NOPROD, "Bay Associates", NULL, }, { USB_VENDOR_ALTERA, 0, USB_KNOWNDEV_NOPROD, "Altera", NULL, }, { USB_VENDOR_TREK, 0, USB_KNOWNDEV_NOPROD, "Trek Technology", NULL, }, { USB_VENDOR_ASAHIOPTICAL, 0, USB_KNOWNDEV_NOPROD, "Asahi Optical Co., Ltd.", NULL, }, { USB_VENDOR_BOCASYSTEMS, 0, USB_KNOWNDEV_NOPROD, "Boca Systems, Inc.", NULL, }, { USB_VENDOR_BROADCOM, 0, USB_KNOWNDEV_NOPROD, "Broadcom Corp.", NULL, }, { USB_VENDOR_GREENHOUSE, 0, USB_KNOWNDEV_NOPROD, "GREENHOUSE Co., Ltd.", NULL, }, { USB_VENDOR_GEOCAST, 0, USB_KNOWNDEV_NOPROD, "Geocast Network Systems", NULL, }, { USB_VENDOR_AGATE, 0, USB_KNOWNDEV_NOPROD, "Agate Technologies", NULL, }, { USB_VENDOR_MOTOROLA, 0, USB_KNOWNDEV_NOPROD, "Motorola", NULL, }, { USB_VENDOR_PLX, 0, USB_KNOWNDEV_NOPROD, "PLX", NULL, }, { USB_VENDOR_BELKIN2, 0, USB_KNOWNDEV_NOPROD, "Belkin Components (2nd)", NULL, }, { USB_VENDOR_SILICONPORTALS, 0, USB_KNOWNDEV_NOPROD, "Silicon Portals Inc.", NULL, }, { USB_VENDOR_UMAX, 0, USB_KNOWNDEV_NOPROD, "UMAX Data Systems, Inc.", NULL, }, { USB_VENDOR_INSIDEOUT, 0, USB_KNOWNDEV_NOPROD, "Inside Out Networks", NULL, }, { USB_VENDOR_ENTREGA, 0, USB_KNOWNDEV_NOPROD, "Entrega", NULL, }, { USB_VENDOR_ACTIONTEC, 0, USB_KNOWNDEV_NOPROD, "Actiontec Electronics, Inc.", NULL, }, { USB_VENDOR_DLINK, 0, USB_KNOWNDEV_NOPROD, "D-Link Corp", + NULL, + }, + { + USB_VENDOR_DAISY, 0, + USB_KNOWNDEV_NOPROD, + "Daisy Technology", NULL, }, { USB_VENDOR_INTEL, 0, USB_KNOWNDEV_NOPROD, "Intel", NULL, }, { USB_VENDOR_HP2, 0, USB_KNOWNDEV_NOPROD, "Hewlett-Packard", NULL, }, { 0, 0, 0, NULL, NULL, } };