freebsd-dev/sys/dev/usb/usbdevs.h

852 lines
39 KiB
C
Raw Normal View History

/* $FreeBSD$ */
/*
* THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT.
*
* generated from:
2001-02-05 11:03:21 +00:00
* FreeBSD: src/sys/dev/usb/usbdevs,v 1.48 2001/02/05 11:02:50 n_hibma Exp
*/
/*
2000-04-03 15:15:50 +00:00
* Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc.
* All rights reserved.
*
* This code is derived from software contributed to The NetBSD Foundation
2000-05-07 19:44:44 +00:00
* 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
*/
2000-04-03 15:15:50 +00:00
#define USB_VENDOR_AOX 0x03e8 /* AOX, Inc. */
#define USB_VENDOR_ATMEL 0x03eb /* Atmel Corp. */
#define USB_VENDOR_HP 0x03f0 /* Hewlett Packard */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_ADAPTEC 0x03f3 /* Adaptec, Inc. */
2000-10-25 10:14:44 +00:00
#define USB_VENDOR_NATIONAL 0x0400 /* National Semiconductor */
2000-04-03 15:15:50 +00:00
#define USB_VENDOR_ACERLABS 0x0402 /* Acer Labs, Inc. */
2000-05-07 19:44:44 +00:00
#define USB_VENDOR_FTDI 0x0403 /* Future Technology Devices */
#define USB_VENDOR_NEC 0x0409 /* NEC */
1999-08-28 09:39:54 +00:00
#define USB_VENDOR_KODAK 0x040a /* Eastman Kodak Corp. */
2000-04-03 15:15:50 +00:00
#define USB_VENDOR_MELCO 0x0411 /* Melco, Inc. */
2001-02-05 11:00:35 +00:00
#define USB_VENDOR_CREATIVE 0x041e /* Creative */
2000-04-03 15:15:50 +00:00
#define USB_VENDOR_ADI 0x0422 /* ADI Systems, Inc. */
1999-08-28 09:39:54 +00:00
#define USB_VENDOR_CATC 0x0423 /* Computer Access Technology Corp. */
#define USB_VENDOR_GRAVIS 0x0428 /* Advanced Gravis Computer Tech. Ltd. */
2000-01-13 20:17:11 +00:00
#define USB_VENDOR_SUN 0x0430 /* Sun Microsystems */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_AMD 0x0438 /* Advanced Micro Devices */
2000-04-03 15:15:50 +00:00
#define USB_VENDOR_LEXMARK 0x043d /* Lexmark International, Inc. */
1999-08-28 09:39:54 +00:00
#define USB_VENDOR_NANAO 0x0440 /* NANAO Corp. */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_ALPS 0x044e /* Alps Electric Co., Ltd. */
#define USB_VENDOR_THRUST 0x044f /* Thrustmaster */
1999-08-28 09:39:54 +00:00
#define USB_VENDOR_TI 0x0451 /* Texas Instruments */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_ANALOGDEVICES 0x0456 /* Analog Devices, Inc. */
#define USB_VENDOR_KYE 0x0458 /* KYE Systems Corp. */
2000-10-07 11:11:12 +00:00
#define USB_VENDOR_DIAMOND2 0x045a /* Diamond (Supra) */
2000-08-06 23:27:36 +00:00
#define USB_VENDOR_MICROSOFT 0x045e /* Microsoft */
#define USB_VENDOR_PRIMAX 0x0461 /* Primax Electronics */
2000-04-03 15:15:50 +00:00
#define USB_VENDOR_AMP 0x0464 /* AMP, Inc. */
1999-08-28 09:39:54 +00:00
#define USB_VENDOR_CHERRY 0x046a /* Cherry Mikroschalter GmbH */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_MEGATRENDS 0x046b /* American Megatrends */
2000-04-03 15:15:50 +00:00
#define USB_VENDOR_LOGITECH 0x046d /* Logitech, Inc. */
#define USB_VENDOR_BTC 0x046e /* Behavior Tech. Computer */
#define USB_VENDOR_PHILIPS 0x0471 /* Philips */
1999-08-28 09:39:54 +00:00
#define USB_VENDOR_CONNECTIX 0x0478 /* Connectix Corp. */
2000-04-03 15:15:50 +00:00
#define USB_VENDOR_KENSINGTON 0x047d /* Kensington */
#define USB_VENDOR_LUCENT 0x047e /* Lucent */
1999-08-28 09:39:54 +00:00
#define USB_VENDOR_STMICRO 0x0483 /* STMicroelectronics */
2001-02-05 11:03:21 +00:00
#define USB_VENDOR_YAMAHA 0x0499 /* YAMAHA Corp. */
2000-07-17 09:56:01 +00:00
#define USB_VENDOR_COMPAQ 0x049f /* Compaq Computers */
2000-04-03 15:15:50 +00:00
#define USB_VENDOR_ACERP 0x04a5 /* Acer Peripherals, Inc. */
2000-09-05 12:28:33 +00:00
#define USB_VENDOR_VISIONEER 0x04a7 /* Visioneer */
2000-10-07 11:11:12 +00:00
#define USB_VENDOR_CANON 0x04a9 /* Canon, Inc. */
2001-02-05 11:00:35 +00:00
#define USB_VENDOR_NIKON 0x04b0 /* Nikon */
2000-08-26 05:08:11 +00:00
#define USB_VENDOR_IBM 0x04b3 /* IBM Corporation */
#define USB_VENDOR_CYPRESS 0x04b4 /* Cypress Semiconductor */
1999-08-28 09:39:54 +00:00
#define USB_VENDOR_EPSON 0x04b8 /* Seiko Epson Corp. */
2000-10-07 11:11:12 +00:00
#define USB_VENDOR_RAINBOW 0x04b9 /* Rainbow Technologies */
2000-04-03 15:15:50 +00:00
#define USB_VENDOR_IODATA 0x04bb /* I/O Data */
#define USB_VENDOR_3COMUSR 0x04c1 /* U.S. Robotics */
2000-10-07 11:11:12 +00:00
#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 */
1999-08-28 09:39:54 +00:00
#define USB_VENDOR_KONICA 0x04c8 /* Konica Corp. */
2000-10-07 11:11:12 +00:00
#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 */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_ALTEC 0x04d2 /* Altec Lansing Technologies, Inc. */
#define USB_VENDOR_SHUTTLE 0x04e6 /* Shuttle Technology */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_ANNABOOKS 0x04ed /* Annabooks */
#define USB_VENDOR_CHICONY 0x04f2 /* Chicony Electronics Co., Ltd. */
2000-03-20 19:49:50 +00:00
#define USB_VENDOR_BROTHER 0x04f9 /* Brother Industries, Ltd. */
#define USB_VENDOR_DALLAS 0x04fa /* Dallas Semiconductor */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_ACER 0x0502 /* Acer, Inc. */
2000-04-03 15:15:50 +00:00
#define USB_VENDOR_3COM 0x0506 /* 3Com Corp. */
2000-03-20 18:30:34 +00:00
#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 */
2000-04-03 15:15:50 +00:00
#define USB_VENDOR_CONNECTEK 0x0522 /* Advanced Connectek USA, Inc. */
2000-01-13 20:17:11 +00:00
#define USB_VENDOR_NETCHIP 0x0525 /* NetChip Technology */
2000-03-20 18:30:34 +00:00
#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 */
2000-04-03 15:15:50 +00:00
#define USB_VENDOR_ANCHOR 0x0547 /* Anchor Chips, Inc. */
2000-09-05 01:10:33 +00:00
#define USB_VENDOR_SONY 0x054c /* Sony Corp. */
#define USB_VENDOR_VISION 0x0553 /* VLSI Vision Ltd. */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_ASAHIKASEI 0x0556 /* Asahi Kasei Microsystems Co., Ltd */
#define USB_VENDOR_ATEN 0x0557 /* ATEN International Co. Ltd. */
2000-04-03 15:15:50 +00:00
#define USB_VENDOR_MUSTEK 0x055f /* Mustek Systems, Inc. */
#define USB_VENDOR_TELEX 0x0562 /* Telex Communications, Inc. */
#define USB_VENDOR_PERACOM 0x0565 /* Peracom Networks, Inc. */
2000-07-17 09:56:01 +00:00
#define USB_VENDOR_ALCOR2 0x0566 /* Alcor Micro, Inc. */
1999-08-28 09:39:54 +00:00
#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. */
2000-03-20 19:49:50 +00:00
#define USB_VENDOR_BAFO 0x0576 /* BAFO/Quality Computer Accessories */
2000-03-15 22:04:01 +00:00
#define USB_VENDOR_YEDATA 0x057b /* Y-E Data */
2000-03-20 19:49:50 +00:00
#define USB_VENDOR_AVM 0x057c /* AVM GmbH */
2000-04-03 15:15:50 +00:00
#define USB_VENDOR_QUICKSHOT 0x057f /* Quickshot */
2001-02-05 11:03:21 +00:00
#define USB_VENDOR_ROLAND 0x0582 /* Roland Corp. */
#define USB_VENDOR_ROCKFIRE 0x0583 /* Rockfire */
2000-10-07 11:02:25 +00:00
#define USB_VENDOR_ZYXEL 0x0586 /* ZyXEL Communication Co. */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_ALCOR 0x058f /* Alcor Micro, Inc. */
1999-08-28 09:39:54 +00:00
#define USB_VENDOR_IOMEGA 0x059b /* Iomega Corp. */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_ATREND 0x059c /* A-Trend Technology Co., Ltd. */
#define USB_VENDOR_AID 0x059d /* Advanced Input Devices */
2000-10-07 11:11:12 +00:00
#define USB_VENDOR_LACIE 0x059f /* LaCie */
1999-05-01 13:16:35 +00:00
#define USB_VENDOR_OMNIVISION 0x05a9 /* OmniVision */
#define USB_VENDOR_INSYSTEM 0x05ab /* In-System Design */
1999-08-28 09:39:54 +00:00
#define USB_VENDOR_APPLE 0x05ac /* Apple Computer */
2000-04-03 15:15:50 +00:00
#define USB_VENDOR_DIGI 0x05c5 /* Digi International */
#define USB_VENDOR_QTRONIX 0x05c7 /* Qtronix Corp */
Synchronisation with NetBSD as of 1999/11/16: Cleaning up the code: - Declare many functions static - Change variable names to make them more self explanatory - Change usbd_request_handle -> usbd_xfer_handle - Syntactical changes - Remove some unused code - Other KNF changes Interrupt context handling - Change delay to usbd_delay_ms were possible (takes polling mode into account) - Change detection mechanism for interrupt context Add support for pre-allocation DMA-able memory by device driver Add preliminary support for isochronous to the UHCI driver (not for OHCI yet). usb.c, uhci.c, ohci.c - Initial attempt at detachable USB host controllers - Handle the use_polling flag with a lttle more care and only set it if we are cold booting. usb.c, uhci.c ohci.c, usbdi.c usbdi_util.c usb_subr.c - Make sure an aborted pipe is marked as not running. - Start queued request in the right order. - Insert some more DIAGNOSTIC sanity checks. - Remove (almost) unused definitions USBD_XFER_OUT and USBD_XFER_IN. usb.c, usb_subr.c - Add an event mechanism so that a userland process can watch devices come and go. ohci.c - Handle the case when a USB transfer is so long that it crosses two page (4K) boundaries. OHCI cannot do that with a single TD so we make a chain. ulpt.c - Use a bigger buffer when transferring data. - Pre-allocate the DMA buffer. This makes the driver slightly more efficient. - Comment out the GET_DEVICE_ID code, because for some unknown reason it causes printing to fail sometimes. usb.h - Add a macro to extract the isoc type. - Add a macro to check whether the routine has been entered after splusb and if not, complain. usbdi.c - Fix a glitch in dequeueing and aborting requests on interrupt pipes. - Add a flag in the request to determine if the data copying is done by the driver or the usbdi layer.
1999-11-17 22:33:51 +00:00
#define USB_VENDOR_ELSA 0x05cc /* ELSA Gmbh */
2000-03-20 19:49:50 +00:00
#define USB_VENDOR_BRAINBOXES 0x05d1 /* Brainboxes Limited */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_AXIOHM 0x05d9 /* Axiohm Transaction Solutions */
2000-09-05 12:28:33 +00:00
#define USB_VENDOR_MICROTEK 0x05da /* Microtek */
2000-10-07 11:11:12 +00:00
#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 */
2000-10-07 11:11:12 +00:00
#define USB_VENDOR_FFC 0x05eb /* FFC Limited */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_ANKO 0x05ef /* Anko Electronic Co., Ltd. */
#define USB_VENDOR_PIENGINEERING 0x05f3 /* P.I. Engineering */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_AOC 0x05f6 /* AOC International */
#define USB_VENDOR_CHIC 0x05fe /* Chic Technology */
2000-03-20 19:49:50 +00:00
#define USB_VENDOR_BARCO 0x0600 /* Barco Display Systems */
#define USB_VENDOR_BRIDGE 0x0607 /* Bridge Information Co., Ltd. */
2000-01-20 07:39:19 +00:00
#define USB_VENDOR_SOLIDYEAR 0x060b /* Solid Year */
2000-03-20 19:49:50 +00:00
#define USB_VENDOR_BIORAD 0x0614 /* Bio-Rad Laboratories */
#define USB_VENDOR_MACALLY 0x0618 /* Macally */
2000-03-20 18:30:34 +00:00
#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. */
2000-07-17 09:56:01 +00:00
#define USB_VENDOR_TEAC 0x0644 /* TEAC */
2000-04-03 15:15:50 +00:00
#define USB_VENDOR_LINKSYS 0x066b /* Linksys, Inc. */
2000-03-20 18:30:34 +00:00
#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. */
2000-05-07 19:44:44 +00:00
#define USB_VENDOR_PROLIFIC 0x067b /* Prolific Technology Inc. */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_ADVANCELOGIC 0x0680 /* Avance Logic, Inc. */
2000-07-17 09:56:01 +00:00
#define USB_VENDOR_CTX 0x0698 /* Chuntex */
2000-04-03 15:15:50 +00:00
#define USB_VENDOR_ASKEY 0x069a /* Askey Computer Corp. */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_ALCATELT 0x06b9 /* Alcatel Telecom */
#define USB_VENDOR_AGFA 0x06bd /* AGFA-Gevaert NV */
#define USB_VENDOR_ASIAMD 0x06be /* Asia Microelectronic Development, Inc. */
2000-04-03 15:15:50 +00:00
#define USB_VENDOR_BIZLINK 0x06c4 /* Bizlink International Corp. */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_AASHIMA 0x06d6 /* Aashima Technology B.V. */
1999-06-27 22:28:02 +00:00
#define USB_VENDOR_MULTITECH 0x06e0 /* MultiTech */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_ADS 0x06e1 /* ADS Technologies, Inc. */
#define USB_VENDOR_ALCATELM 0x06e4 /* Alcatel Microelectronics */
2000-01-20 07:39:19 +00:00
#define USB_VENDOR_SIRIUS 0x06ea /* Sirius Technologies */
2000-03-20 19:49:50 +00:00
#define USB_VENDOR_BOSTON 0x06fd /* Boston Acoustics */
#define USB_VENDOR_SMC 0x0707 /* Standard Microsystems Corp */
2000-05-07 19:44:44 +00:00
#define USB_VENDOR_MCT 0x0711 /* MCT Corp. */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_AUREAL 0x0755 /* Aureal Semiconductor */
#define USB_VENDOR_MIDIMAN 0x0763 /* Midiman */
2000-10-07 11:11:12 +00:00
#define USB_VENDOR_GRIFFIN 0x077d /* Griffin Technology, Inc. */
#define USB_VENDOR_SANDISK 0x0781 /* SanDisk Corp */
2000-04-03 15:15:50 +00:00
#define USB_VENDOR_BRIMAX 0x078e /* Brimax, Inc. */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_AXIS 0x0792 /* Axis Communications AB */
2000-04-03 15:15:50 +00:00
#define USB_VENDOR_ABL 0x0794 /* ABL Electronics Corp. */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_ALFADATA 0x079d /* Alfadata Computer Corp. */
2000-10-07 11:11:12 +00:00
#define USB_VENDOR_NATIONALTECH 0x07a2 /* National Technical Systems */
#define USB_VENDOR_ONNTO 0x07a3 /* Onnto Corp. */
2000-04-03 15:15:50 +00:00
#define USB_VENDOR_BE 0x07a4 /* Be, Inc. */
#define USB_VENDOR_ADMTEK 0x07a6 /* ADMtek, Inc. */
2000-01-13 20:17:11 +00:00
#define USB_VENDOR_COREGA 0x07aa /* Corega */
2000-04-03 15:15:50 +00:00
#define USB_VENDOR_FREECOM 0x07ab /* Freecom */
2000-10-07 11:11:12 +00:00
#define USB_VENDOR_MICROTECH 0x07af /* Microtech */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_ABOCOM 0x07b8 /* AboCom Systems, Inc. */
2000-03-29 15:08:02 +00:00
#define USB_VENDOR_KEISOKUGIKEN 0x07c1 /* Keisokugiken Corp. */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_APG 0x07c5 /* APG Cash Drawer */
2000-03-20 19:49:50 +00:00
#define USB_VENDOR_BUG 0x07c8 /* B.U.G., Inc. */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_ALLIEDTELESYN 0x07c9 /* Allied Telesyn International */
#define USB_VENDOR_AVERMEDIA 0x07ca /* AVerMedia Technologies, Inc. */
#define USB_VENDOR_SIIG 0x07cc /* SIIG */
2000-04-03 15:15:50 +00:00
#define USB_VENDOR_APTIO 0x07d2 /* Aptio Products, Inc. */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_ARASAN 0x07da /* Arasan Chip Systems */
2000-04-03 15:15:50 +00:00
#define USB_VENDOR_ALLIEDCABLE 0x07e6 /* Allied Cable Corp. */
2001-01-04 11:23:21 +00:00
#define USB_VENDOR_STSN 0x07ef /* STSN */
2000-04-03 15:15:50 +00:00
#define USB_VENDOR_ZOOM 0x0803 /* Zoom Telephonics, Inc. */
2000-03-20 19:49:50 +00:00
#define USB_VENDOR_BROADLOGIC 0x0827 /* BroadLogic, Inc. */
2000-04-03 15:15:50 +00:00
#define USB_VENDOR_HANDSPRING 0x082d /* Handspring, Inc. */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_ACTIONSTAR 0x0835 /* Action Star Enterprise Co., Ltd. */
2000-04-03 15:15:50 +00:00
#define USB_VENDOR_PALM 0x0830 /* Palm Computing, Inc. */
#define USB_VENDOR_ACCTON 0x083a /* Accton Technology Corp. */
2000-01-20 07:39:19 +00:00
#define USB_VENDOR_DIAMOND 0x0841 /* Diamond */
2000-04-03 15:15:50 +00:00
#define USB_VENDOR_NETGEAR 0x0846 /* BayNETGEAR, Inc. */
#define USB_VENDOR_ACTIVEWIRE 0x0854 /* ActiveWire, Inc. */
2000-10-25 10:14:44 +00:00
#define USB_VENDOR_METRICOM 0x0870 /* Metricom */
2000-04-03 15:15:50 +00:00
#define USB_VENDOR_ADESSOKBTEK 0x087c /* ADESSO/Kbtek America, Inc. */
#define USB_VENDOR_APT 0x0880 /* APT Technologies, Inc. */
2000-03-20 19:49:50 +00:00
#define USB_VENDOR_BOCARESEARCH 0x0885 /* Boca Research, Inc. */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_ANDREA 0x08a8 /* Andrea Electronics */
2000-03-20 19:49:50 +00:00
#define USB_VENDOR_BURRBROWN 0x08bb /* Burr-Brown Japan, Ltd. */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_2WIRE 0x08c8 /* 2Wire, Inc */
2000-04-03 15:15:50 +00:00
#define USB_VENDOR_AIPTEK 0x08ca /* AIPTEK International, Inc. */
2000-04-14 14:44:54 +00:00
#define USB_VENDOR_SMARTBRIDGES 0x08d1 /* SmartBridges Pte Ltd. */
2000-03-20 19:49:50 +00:00
#define USB_VENDOR_BILLIONTON 0x08dd /* Billionton Systems, Inc. */
2000-07-17 09:56:01 +00:00
#define USB_VENDOR_EXTENDED 0x08e9 /* Extended Systems, Inc. */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_AUTHENTEC 0x08ff /* AuthenTec, Inc. */
#define USB_VENDOR_ALATION 0x0910 /* Alation Systems, Inc. */
#define USB_VENDOR_BIOMETRIC 0x0929 /* American Biometric Company */
2000-10-05 23:11:13 +00:00
#define USB_VENDOR_YANO 0x094f /* Yano */
2000-10-10 23:24:45 +00:00
#define USB_VENDOR_KINGSTON 0x0951 /* Kingston Technology */
2000-03-20 19:49:50 +00:00
#define USB_VENDOR_BLUEWATER 0x0956 /* BlueWater Systems, Inc. */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_AGILENT 0x0957 /* Agilent Technologies, Inc. */
#define USB_VENDOR_ADIRONDACK 0x0976 /* Adirondack Wire & Cable */
2000-03-20 19:49:50 +00:00
#define USB_VENDOR_BECKHOFF 0x0978 /* Beckhoff Gmbh */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_ALTIUS 0x09b3 /* Altius Solutions, Inc. */
#define USB_VENDOR_ARRIS 0x09c1 /* Arris Interactive LLC */
#define USB_VENDOR_ACTIVCARD 0x09c3 /* ACTIVCARD, INC. */
2000-04-03 15:15:50 +00:00
#define USB_VENDOR_ACTISYS 0x09c4 /* ACTiSYS Corp. */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_AFOURTECH 0x09da /* A-FOUR TECH CO., LTD. */
2000-04-03 15:15:50 +00:00
#define USB_VENDOR_AIMEX 0x09dc /* AIMEX Corp. */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_ADDONICS 0x09df /* Addonics Technologies Corp. */
#define USB_VENDOR_AKAI 0x09e8 /* AKAI professional M.I. Corp. */
#define USB_VENDOR_ARESCOM 0x09f5 /* ARESCOM */
2000-03-20 19:49:50 +00:00
#define USB_VENDOR_BAY 0x09f9 /* Bay Associates */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_ALTERA 0x09fb /* Altera */
2000-10-07 11:11:12 +00:00
#define USB_VENDOR_TREK 0x0a16 /* Trek Technology */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_ASAHIOPTICAL 0x0a17 /* Asahi Optical Co., Ltd. */
2000-04-03 15:15:50 +00:00
#define USB_VENDOR_BOCASYSTEMS 0x0a43 /* Boca Systems, Inc. */
2000-03-20 19:49:50 +00:00
#define USB_VENDOR_BROADCOM 0x0a5c /* Broadcom Corp. */
2000-07-17 09:56:01 +00:00
#define USB_VENDOR_GEOCAST 0x0a79 /* Geocast Network Systems */
#define USB_VENDOR_MOTOROLA 0x1063 /* Motorola */
#define USB_VENDOR_PLX 0x10b5 /* PLX */
2000-10-07 11:11:12 +00:00
#define USB_VENDOR_BELKIN2 0x1293 /* Belkin Components (2nd) */
2001-01-04 11:23:21 +00:00
#define USB_VENDOR_SILICONPORTALS 0x1527 /* Silicon Portals Inc. */
2000-08-06 23:27:36 +00:00
#define USB_VENDOR_UMAX 0x1606 /* UMAX Data Systems, Inc. */
#define USB_VENDOR_INSIDEOUT 0x1608 /* Inside Out Networks */
1999-08-28 09:39:54 +00:00
#define USB_VENDOR_ENTREGA 0x1645 /* Entrega */
2000-03-20 18:30:34 +00:00
#define USB_VENDOR_ACTIONTEC 0x1668 /* Actiontec Electronics, Inc. */
#define USB_VENDOR_DLINK 0x2001 /* D-Link Corp */
#define USB_VENDOR_INTEL 0x8086 /* Intel */
2000-10-25 10:14:44 +00:00
#define USB_VENDOR_HP2 0xf003 /* Hewlett Packard */
/*
* List of known products. Grouped by vendor.
*/
2000-01-20 07:39:19 +00:00
/* 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 */
2000-04-03 15:15:50 +00:00
#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 */
2000-01-20 07:39:19 +00:00
#define USB_PRODUCT_3COMUSR_USR56K 0x3021 /* U.S.Robotics 56000 Voice Faxmodem Pro */
2001-02-05 11:03:21 +00:00
/* AboCom products */
#define USB_PRODUCT_ABOCOM_URE450 0x4000 /* URE450 Ethernet Adapter */
2000-04-03 15:15:50 +00:00
/* Acer Peripherals, Inc. products */
2000-03-20 18:30:34 +00:00
#define USB_PRODUCT_ACERP_ACERSCAN_C310U 0x12a6 /* Acerscan C310U */
2000-10-07 11:11:12 +00:00
#define USB_PRODUCT_ACERP_ACERSCAN_320U 0x2022 /* Acerscan 320U */
2000-09-05 12:28:33 +00:00
#define USB_PRODUCT_ACERP_ACERSCAN_640U 0x2040 /* Acerscan 640U */
#define USB_PRODUCT_ACERP_ACERSCAN_620U 0x2060 /* Acerscan 620U */
2000-04-03 15:15:50 +00:00
/* ActiveWire, Inc. products */
2000-01-20 07:39:19 +00:00
#define USB_PRODUCT_ACTIVEWIRE_IOBOARD 0x0100 /* I/O Board */
#define USB_PRODUCT_ACTIVEWIRE_IOBOARD_FW1 0x0101 /* I/O Board, rev. 1 firmware */
2000-01-20 07:39:19 +00:00
/* ADMtek products */
#define USB_PRODUCT_ADMTEK_PEGASUS 0x0986 /* AN986 USB Ethernet adapter */
This commit adds device driver support for the ADMtek AN986 Pegasus USB ethernet chip. Adapters that use this chip include the LinkSys USB100TX. There are a few others, but I'm not certain of their availability in the U.S. I used an ADMtek eval board for development. Note that while the ADMtek chip is a 100Mbps device, you can't really get 100Mbps speeds over USB. Regardless, this driver uses miibus to allow speed and duplex mode selection as well as autonegotiation. Building and kldloading the driver as a module is also supported. Note that in order to make this driver work, I had to make what some may consider an ugly hack to sys/dev/usb/usbdi.c. The usbd_transfer() function will use tsleep() for synchronous transfers that don't complete right away. This is a problem since there are times when we need to do sync transfers from an interrupt context (i.e. when reading registers from the MAC via the control endpoint), where tsleep() us a no-no. My hack allows the driver to have the code poll for transfer completion subject to the xfer->timeout timeout rather that calling tsleep(). This hack is controlled by a quirk entry and is only enabled for the ADMtek device. Now, I'm sure there are a few of you out there ready to jump on me and suggest some other approach that doesn't involve a busy wait. The only solution that might work is to handle the interrupts in a kernel thread, where you may have something resembling a process context that makes it okay to tsleep(). This is lovely, except we don't have any mechanism like that now, and I'm not about to implement such a thing myself since it's beyond the scope of driver development. (Translation: I'll be damned if I know how to do it.) If FreeBSD ever aquires such a mechanism, I'll be glad to revisit the driver to take advantage of it. In the meantime, I settled for what I perceived to be the solution that involved the least amount of code changes. In general, the hit is pretty light. Also note that my only USB test box has a UHCI controller: I haven't I don't have a machine with an OHCI controller available. Highlights: - Updated usb_quirks.* to add UQ_NO_TSLEEP quirk for ADMtek part. - Updated usbdevs and regenerated generated files - Updated HARDWARE.TXT and RELNOTES.TXT files - Updated sysinstall/device.c and userconfig.c - Updated kernel configs -- device aue0 is commented out by default - Updated /sys/conf/files - Added new kld module directory
1999-12-28 02:01:18 +00:00
2000-01-20 07:39:19 +00:00
/* ADS products */
#define USB_PRODUCT_ADS_UBS10BT 0x0008 /* UBS-10BT Ethernet adapter */
2000-01-20 07:39:19 +00:00
/* Agiler products */
#define USB_PRODUCT_ELECOM_MOUSE29UO 0x0002 /* mouse 29UO */
1999-08-28 09:39:54 +00:00
2000-09-05 12:28:33 +00:00
/* AGFA products */
#define USB_PRODUCT_AGFA_SNAPSCAN1212U 0x0001 /* SnapScan 1212U */
#define USB_PRODUCT_AGFA_SNAPSCANTOUCH 0x0100 /* SnapScan Touch */
2000-10-07 11:11:12 +00:00
#define USB_PRODUCT_AGFA_SNAPSCAN1212U2 0x2061 /* SnapScan 1212U */
2000-09-05 12:28:33 +00:00
2000-01-20 07:39:19 +00:00
/* AKS products */
#define USB_PRODUCT_AKS_USBHASP 0x0001 /* USB-HASP 0.06 */
2000-01-13 20:17:11 +00:00
2000-07-17 09:56:01 +00:00
/* 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 */
2000-05-09 20:45:14 +00:00
2000-01-20 07:39:19 +00:00
/* Altec Lansing products */
2000-04-03 15:15:50 +00:00
#define USB_PRODUCT_ALTEC_ADA70 0x0070 /* ADA70 Speakers */
2000-01-20 07:39:19 +00:00
#define USB_PRODUCT_ALTEC_ASC495 0xff05 /* ASC495 Speakers */
2000-01-20 07:39:19 +00:00
/* American Power Conversion products */
#define USB_PRODUCT_APC_UPSPRO500 0x0002 /* Back-UPS Pro 500 */
2000-01-20 07:39:19 +00:00
/* Anchor products */
#define USB_PRODUCT_ANCHOR_EZUSB 0x2131 /* EZUSB */
2000-05-01 20:31:01 +00:00
#define USB_PRODUCT_ANCHOR_EZLINK 0x2720 /* EZLINK */
2000-04-03 15:15:50 +00:00
/* AOX, Inc. products */
2000-01-20 07:39:19 +00:00
#define USB_PRODUCT_AOX_USB101 0x0008 /* USB ethernet controller engine */
2000-10-07 11:11:12 +00:00
/* Apple Computer products */
2001-01-04 11:23:21 +00:00
#define USB_PRODUCT_APPLE_OPTMOUSE 0x0302 /* Optical mouse */
2000-10-07 11:11:12 +00:00
#define USB_PRODUCT_APPLE_SPEAKERS 0x1101 /* Speakers */
2000-01-20 07:39:19 +00:00
/* ATen products */
#define USB_PRODUCT_ATEN_UC1284 0x2001 /* Parallel printer adapter */
#define USB_PRODUCT_ATEN_UC10T 0x2002 /* 10Mbps ethernet adapter */
2000-08-06 23:27:36 +00:00
#define USB_PRODUCT_ATEN_UC232A 0x2008 /* Serial adapter */
2001-01-04 11:23:21 +00:00
/* Atmel Comp. products */
#define USB_PRODUCT_ATMEL_UHB124 0x3301 /* UHB124 hub */
2000-09-05 12:28:33 +00:00
/* Avision products */
#define USB_PRODUCT_AVISION_1200U 0x0268 /* 1200U scanner */
2000-01-20 07:39:19 +00:00
/* Belkin products */
/*product BELKIN F5U111 0x???? F5U111 Ethernet adapter*/
2000-05-25 22:29:47 +00:00
#define USB_PRODUCT_BELKIN2_F5U002 0x0002 /* F5U002 Parallel printer adapter */
2000-01-20 07:39:19 +00:00
/* 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 */
1999-08-28 09:39:54 +00:00
/* Behavior Technology Computer products */
#define USB_PRODUCT_BTC_BTC7932 0x6782 /* Keyboard with mouse port */
2000-04-03 15:15:50 +00:00
/* Canon, Inc. products */
#define USB_PRODUCT_CANON_S10 0x3041 /* PowerShot S10 */
2000-01-20 07:39:19 +00:00
/* 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 */
2000-01-20 07:39:19 +00:00
/* Cherry products */
#define USB_PRODUCT_CHERRY_MY3000KBD 0x0001 /* My3000 keyboard */
#define USB_PRODUCT_CHERRY_MY3000HUB 0x0003 /* My3000 hub */
2000-01-20 07:39:19 +00:00
/* Chic Technology products */
#define USB_PRODUCT_CHIC_MOUSE1 0x0001 /* mouse */
2000-04-03 15:15:50 +00:00
#define USB_PRODUCT_CHIC_CYPRESS 0x0003 /* Cypress USB Mouse */
/* Chicony products */
#define USB_PRODUCT_CHICONY_KB8933 0x0001 /* KB-8933 keyboard */
2000-07-17 09:56:01 +00:00
/* Compaq products */
#define USB_PRODUCT_COMPAQ_PJB100 0x504a /* Personal Jukebox PJB100 */
2000-01-20 07:39:19 +00:00
/* Connectix products */
#define USB_PRODUCT_CONNECTIX_QUICKCAM 0x0001 /* QuickCam */
2000-01-20 07:39:19 +00:00
/* Corega products */
#define USB_PRODUCT_COREGA_ETHER_USB_T 0x0001 /* Ether USB-T */
2000-03-09 16:29:49 +00:00
#define USB_PRODUCT_COREGA_FETHER_USB_TX 0x0004 /* FEther USB-TX */
2001-02-05 11:00:35 +00:00
/* Creative products */
#define USB_PRODUCT_CREATIVE_NOMAD_II 0x1002 /* Nomad II MP3 player */
2000-07-17 09:56:01 +00:00
/* CTX products */
#define USB_PRODUCT_CTX_EX1300 0x9999 /* Ex1300 hub */
2000-01-20 07:39:19 +00:00
/* Cypress Semiconductor products */
#define USB_PRODUCT_CYPRESS_MOUSE 0x0001 /* mouse */
#define USB_PRODUCT_CYPRESS_THERMO 0x0002 /* thermometer */
2000-05-07 19:44:44 +00:00
#define USB_PRODUCT_CYPRESS_FMRADIO 0x1002 /* FM Radio */
2000-01-20 07:39:19 +00:00
/* 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 */
2000-09-06 19:28:47 +00:00
#define USB_PRODUCT_DLINK_DSB650 0xABC1 /* 10/100 ethernet adapter */
2000-01-13 20:17:11 +00:00
2000-01-20 07:39:19 +00:00
/* Dallas Semiconductor products */
#define USB_PRODUCT_DALLAS_J6502 0x4201 /* J-6502 speakers */
2000-01-20 07:39:19 +00:00
/* Diamond products */
#define USB_PRODUCT_DIAMOND_RIO500USB 0x0001 /* Rio 500 USB */
2000-04-03 15:15:50 +00:00
/* 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 */
2000-01-20 07:39:19 +00:00
/* EIZO products */
#define USB_PRODUCT_EIZO_HUB 0x0000 /* hub */
#define USB_PRODUCT_EIZO_MONITOR 0x0001 /* monitor */
2000-01-20 07:39:19 +00:00
/* Elsa products */
#define USB_PRODUCT_ELSA_MODEM1 0x2265 /* ELSA Modem Board */
2000-01-20 07:39:19 +00:00
/* 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*/
2000-10-07 11:11:12 +00:00
#define USB_PRODUCT_ENTREGA_2U4S 0x8004 /* 2U4S serial connector/usb hub */
2000-01-20 07:39:19 +00:00
/*product ENTREGA SERIAL_DB9 0x8093 DB9 Serial connector*/
2000-01-20 07:39:19 +00:00
/* e-TEK Labs products */
#define USB_PRODUCT_ETEK_1COM 0x8007 /* Serial port */
2000-01-20 07:39:19 +00:00
/* Epson products */
2000-10-07 11:11:12 +00:00
#define USB_PRODUCT_EPSON_PRINTER1 0x0001 /* USB Printer */
2000-01-20 07:39:19 +00:00
#define USB_PRODUCT_EPSON_PRINTER2 0x0002 /* ISD USB Smart Cable for Mac */
#define USB_PRODUCT_EPSON_PRINTER3 0x0003 /* ISD USB Smart Cable */
2001-01-04 11:23:21 +00:00
#define USB_PRODUCT_EPSON_PRINTER5 0x0005 /* USB Printer */
2000-09-05 12:28:33 +00:00
#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 */
2001-01-04 11:23:21 +00:00
#define USB_PRODUCT_EPSON_1600 0x0107 /* Expression 1600 scanner */
#define USB_PRODUCT_EPSON_1640 0x010a /* Perfection 1640SU scanner */
2000-07-17 09:56:01 +00:00
/* e-TEK Labs products */
#define USB_PRODUCT_ETEK_1COM 0x8007 /* Serial port */
/* Extended Systems products */
#define USB_PRODUCT_EXTENDED_XTNDACCESS 0x0100 /* XTNDAccess IrDA */
2000-01-20 07:39:19 +00:00
/* Gravis products */
#define USB_PRODUCT_GRAVIS_GAMEPADPRO 0x4001 /* GamePad Pro */
2000-10-07 11:11:12 +00:00
/* Griffin Technology */
2001-02-05 11:03:21 +00:00
#define USB_PRODUCT_GRIFFIN_IMATE 0x0405 /* iMate, ADB adapter */
2000-10-07 11:11:12 +00:00
2000-04-03 15:15:50 +00:00
/* Freecom products */
#define USB_PRODUCT_FREECOM_DVD 0xfc01 /* Connector for DVD drive */
/* Future Technology Devices products */
2000-05-07 19:44:44 +00:00
#define USB_PRODUCT_FTDI_SERIAL 0x8372 /* Serial converter */
2000-04-03 15:15:50 +00:00
2000-10-25 10:14:44 +00:00
/* Fuji photo products */
#define USB_PRODUCT_FUJIPHOTO_MASS0100 0x0100 /* Mass Storage */
2000-04-03 15:15:50 +00:00
/* Handspring, Inc. */
2000-01-20 07:39:19 +00:00
#define USB_PRODUCT_HANDSPRING_VISOR 0x0100 /* Handspring Visor */
1999-08-28 09:39:54 +00:00
2000-01-20 07:39:19 +00:00
/* HP products */
#define USB_PRODUCT_HP_4100C 0x0101 /* Scanjet 4100C */
2000-10-25 10:14:44 +00:00
#define USB_PRODUCT_HP_S20 0x0102 /* Photosmart S20 */
2000-04-03 15:15:50 +00:00
#define USB_PRODUCT_HP_4200C 0x0105 /* ScanJet 4200C */
#define USB_PRODUCT_HP_6200C 0x0201 /* ScanJet 6200C */
#define USB_PRODUCT_HP_S20b 0x0202 /* PhotoSmart S20 */
#define USB_PRODUCT_HP_3300C 0x0205 /* ScanJet 3300C */
2000-10-25 10:14:44 +00:00
#define USB_PRODUCT_HP_5200C 0x0401 /* Scanjet 5200C */
2000-01-20 07:39:19 +00:00
#define USB_PRODUCT_HP_6300C 0x0601 /* Scanjet 6300C */
2000-10-25 10:14:44 +00:00
#define USB_PRODUCT_HP_5300C 0x0701 /* Scanjet 5300C */
2000-01-20 07:39:19 +00:00
#define USB_PRODUCT_HP_970CSE 0x1004 /* Deskjet 970Cse */
2000-10-25 10:14:44 +00:00
#define USB_PRODUCT_HP_P1100 0x3102 /* Photosmart P1100 */
2000-10-10 23:24:45 +00:00
2000-10-25 10:14:44 +00:00
/* HP products */
2000-10-10 23:24:45 +00:00
#define USB_PRODUCT_HP2_C500 0x6002 /* PhotoSmart C500 */
2000-08-26 05:08:11 +00:00
/* IBM Corporation */
#define USB_PRODUCT_IBM_USBCDROMDRIVE 0x4427 /* USB CD-ROM Drive */
2000-01-20 07:39:19 +00:00
/* Inside Out Networks products */
#define USB_PRODUCT_INSIDEOUT_EDGEPORT4 0x0001 /* EdgePort/4 serial ports */
2000-01-20 07:39:19 +00:00
/* In-System products */
#define USB_PRODUCT_INSYSTEM_F5U002 0x0002 /* Parallel printer adapter */
2000-05-07 19:44:44 +00:00
#define USB_PRODUCT_INSYSTEM_ISD110 0x0200 /* IDE adapter ISD110 */
#define USB_PRODUCT_INSYSTEM_ISD105 0x0202 /* IDE adapter ISD105 */
2000-06-08 19:26:35 +00:00
#define USB_PRODUCT_INSYSTEM_USBCABLE 0x081a /* USB cable */
2000-01-20 07:39:19 +00:00
/* Intel products */
2001-01-04 11:23:21 +00:00
#define USB_PRODUCT_INTEL_EASYPC_CAMERA 0x0110 /* Easy PC Camera */
2000-01-20 07:39:19 +00:00
#define USB_PRODUCT_INTEL_TESTBOARD 0x9890 /* 82930 test board */
2000-04-03 15:15:50 +00:00
/* I/O DATA products */
2001-01-04 11:23:21 +00:00
#define USB_PRODUCT_IODATA_USBETT 0x0901 /* USB ETT */
2000-04-03 15:15:50 +00:00
#define USB_PRODUCT_IODATA_USBETTX 0x0904 /* USB ETTX */
2001-02-05 11:03:21 +00:00
#define USB_PRODUCT_IODATA_USBRSAQ 0x0a03 /* USB serial adapter USB-RSAQ1 */
2000-04-03 15:15:50 +00:00
/* Iomega products */
#define USB_PRODUCT_IOMEGA_ZIP100 0x0001 /* Zip 100 */
2000-04-06 10:19:16 +00:00
#define USB_PRODUCT_IOMEGA_ZIP250 0x0030 /* Zip 250 */
2000-04-03 15:15:50 +00:00
/* Kawasaki products */
#define USB_PRODUCT_KLSI_DUH3E10BT 0x0008 /* USB ethernet controller engine */
2000-01-20 07:39:19 +00:00
/* Kawatsu products */
#define USB_PRODUCT_KAWATSU_MH4000P 0x0003 /* MiniHub 4000P */
1999-05-01 13:16:35 +00:00
2000-03-29 15:08:02 +00:00
/* Keisokugiken Corp. products */
#define USB_PRODUCT_KEISOKUGIKEN_USBDAQ 0x0068 /* HKS-0200 USBDAQ */
2000-03-29 19:46:41 +00:00
/* Kawasaki LSI products (?) */
#define USB_PRODUCT_KLSI_DUH3E10BT 0x0008 /* 10BT Ethernet adapter, in the DU-H3E */
2000-04-03 15:15:50 +00:00
/* Kensington products */
#define USB_PRODUCT_KENSINGTON_ORBIT 0x1003 /* Orbit USB/PS2 trackball */
#define USB_PRODUCT_KENSINGTON_TURBOBALL 0x1005 /* TurboBall */
2000-10-10 23:24:45 +00:00
/* Kingston products */
2000-10-25 10:14:44 +00:00
#define USB_PRODUCT_KINGSTON_KNU101TX 0x000a /* KNU101TX USB Ethernet */
2000-10-10 23:24:45 +00:00
2000-01-20 07:39:19 +00:00
/* Kodak products */
2000-04-03 15:15:50 +00:00
#define USB_PRODUCT_KODAK_DC220 0x0100 /* Digital Science DC220 */
2000-01-20 07:39:19 +00:00
#define USB_PRODUCT_KODAK_DC260 0x0110 /* Digital Science DC260 */
#define USB_PRODUCT_KODAK_DC265 0x0111 /* Digital Science DC265 */
2000-01-28 10:31:12 +00:00
#define USB_PRODUCT_KODAK_DC290 0x0112 /* Digital Science DC290 */
2000-01-20 07:39:19 +00:00
#define USB_PRODUCT_KODAK_DC240 0x0120 /* Digital Science DC240 */
#define USB_PRODUCT_KODAK_DC280 0x0130 /* Digital Science DC280 */
2000-01-20 07:39:19 +00:00
/* Konica Corp. Products */
#define USB_PRODUCT_KONICA_CAMERA 0x0720 /* Digital Color Camera */
2000-01-20 07:39:19 +00:00
/* KYE products */
#define USB_PRODUCT_KYE_NICHE 0x0001 /* Niche mouse */
2000-04-03 15:15:50 +00:00
#define USB_PRODUCT_KYE_NETSCROLL 0x0003 /* Genius NetScroll mouse */
2000-01-20 07:39:19 +00:00
#define USB_PRODUCT_KYE_FLIGHT2000 0x1004 /* Flight 2000 joystick */
2000-09-05 12:28:33 +00:00
#define USB_PRODUCT_KYE_VIVIDPRO 0x2001 /* ColorPage Vivid-Pro scanner */
2000-01-20 07:39:19 +00:00
2000-10-07 11:11:12 +00:00
/* LaCie products */
#define USB_PRODUCT_LACIE_CDRW 0xa602 /* CD R/W */
2000-01-20 07:39:19 +00:00
/* Lexmark products */
#define USB_PRODUCT_LEXMARK_S2450 0x0009 /* Optra S 2450 */
/* Linksys products */
#define USB_PRODUCT_LINKSYS_USB10T 0x2202 /* USB10T Ethernet */
2000-01-20 07:39:19 +00:00
#define USB_PRODUCT_LINKSYS_USB100TX 0x2203 /* USB100TX Ethernet */
2000-05-07 19:44:44 +00:00
#define USB_PRODUCT_LINKSYS_USB100H1 0x2204 /* USB100H1 Ethernet/HPNA */
#define USB_PRODUCT_LINKSYS_USB10TA 0x2206 /* USB10TA Ethernet */
Synchronisation with NetBSD as of 1999/11/16: Cleaning up the code: - Declare many functions static - Change variable names to make them more self explanatory - Change usbd_request_handle -> usbd_xfer_handle - Syntactical changes - Remove some unused code - Other KNF changes Interrupt context handling - Change delay to usbd_delay_ms were possible (takes polling mode into account) - Change detection mechanism for interrupt context Add support for pre-allocation DMA-able memory by device driver Add preliminary support for isochronous to the UHCI driver (not for OHCI yet). usb.c, uhci.c, ohci.c - Initial attempt at detachable USB host controllers - Handle the use_polling flag with a lttle more care and only set it if we are cold booting. usb.c, uhci.c ohci.c, usbdi.c usbdi_util.c usb_subr.c - Make sure an aborted pipe is marked as not running. - Start queued request in the right order. - Insert some more DIAGNOSTIC sanity checks. - Remove (almost) unused definitions USBD_XFER_OUT and USBD_XFER_IN. usb.c, usb_subr.c - Add an event mechanism so that a userland process can watch devices come and go. ohci.c - Handle the case when a USB transfer is so long that it crosses two page (4K) boundaries. OHCI cannot do that with a single TD so we make a chain. ulpt.c - Use a bigger buffer when transferring data. - Pre-allocate the DMA buffer. This makes the driver slightly more efficient. - Comment out the GET_DEVICE_ID code, because for some unknown reason it causes printing to fail sometimes. usb.h - Add a macro to extract the isoc type. - Add a macro to check whether the routine has been entered after splusb and if not, complain. usbdi.c - Fix a glitch in dequeueing and aborting requests on interrupt pipes. - Add a flag in the request to determine if the data copying is done by the driver or the usbdi layer.
1999-11-17 22:33:51 +00:00
/* Logitech products */
#define USB_PRODUCT_LOGITECH_M2452 0x0203 /* M2452 keyboard */
1999-08-28 09:39:54 +00:00
#define USB_PRODUCT_LOGITECH_M4848 0x0301 /* M4848 mouse */
2000-07-17 09:56:01 +00:00
#define USB_PRODUCT_LOGITECH_PAGESCAN 0x040f /* PageScan */
#define USB_PRODUCT_LOGITECH_QUICKCAMWEB 0x0801 /* QuickCam Web */
#define USB_PRODUCT_LOGITECH_QUICKCAMPRO 0x0810 /* QuickCam Pro */
2000-07-17 09:56:01 +00:00
#define USB_PRODUCT_LOGITECH_QUICKCAMEXP 0x0840 /* QuickCam Express */
#define USB_PRODUCT_LOGITECH_QUICKCAM 0x0850 /* QuickCam */
2000-04-03 15:15:50 +00:00
#define USB_PRODUCT_LOGITECH_N43 0xc000 /* N43 */
#define USB_PRODUCT_LOGITECH_N48 0xc001 /* N48 mouse */
#define USB_PRODUCT_LOGITECH_MBA47 0xc002 /* M-BA47 mouse */
2000-04-03 15:15:50 +00:00
#define USB_PRODUCT_LOGITECH_WMMOUSE 0xc004 /* WingMan Gaming Mouse */
2001-01-04 11:23:21 +00:00
#define USB_PRODUCT_LOGITECH_BD58 0xc00c /* BD58 mouse */
2000-10-07 11:11:12 +00:00
#define USB_PRODUCT_LOGITECH_BB13 0xc401 /* USB-PS/2 Trackball */
2000-04-03 15:15:50 +00:00
#define USB_PRODUCT_LOGITECH_WMPAD 0xc208 /* WingMan GamePad Extreme */
#define USB_PRODUCT_LOGITECH_WMJOY 0xc281 /* WingMan Force joystick */
2000-07-17 09:56:01 +00:00
#define USB_PRODUCT_LOGITECH_QUICKCAMPRO2 0xd001 /* QuickCam Pro */
2000-01-20 07:39:19 +00:00
/* Lucent products */
#define USB_PRODUCT_LUCENT_EVALKIT 0x1001 /* USS-720 evaluation kit */
/* Macally products */
#define USB_PRODUCT_MACALLY_MOUSE1 0x0101 /* mouse */
2000-05-07 19:44:44 +00:00
/* MCT Corp. */
#define USB_PRODUCT_MCT_HUB0100 0x0100 /* Hub */
#define USB_PRODUCT_MCT_USB232 0x0210 /* USB-232 Interface */
2000-04-03 15:15:50 +00:00
/* Melco, Inc products */
2001-01-04 11:23:21 +00:00
#define USB_PRODUCT_MELCO_LUATX1 0x0001 /* LUA-TX Ethernet */
#define USB_PRODUCT_MELCO_LUATX5 0x0005 /* LUA-TX Ethernet */
2000-01-20 07:39:19 +00:00
2000-10-25 10:14:44 +00:00
/* Metricom products */
#define USB_PRODUCT_METRICOM_RICOCHET_GS 0x0001 /* Ricochet GS */
2000-01-20 07:39:19 +00:00
/* Microsoft products */
2000-04-03 15:15:50 +00:00
#define USB_PRODUCT_MICROSOFT_SIDEPREC 0x0008 /* SideWinder Precision Pro */
2000-01-20 07:39:19 +00:00
#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 */
2000-04-03 15:15:50 +00:00
#define USB_PRODUCT_MICROSOFT_INTELLIEYE 0x0025 /* IntelliEye mouse */
#define USB_PRODUCT_MICROSOFT_INETPRO 0x002b /* Internet Keyboard Pro */
2000-01-20 07:39:19 +00:00
2000-09-05 12:28:33 +00:00
/* Microtek products */
#define USB_PRODUCT_MICROTEK_336CX 0x0094 /* Phantom 336CX - C3 scanner */
2001-01-04 11:23:21 +00:00
#define USB_PRODUCT_MICROTEK_X6U 0x0099 /* ScanMaker X6 - X6U */
2000-09-05 12:28:33 +00:00
#define USB_PRODUCT_MICROTEK_C6 0x009a /* Phantom C6 scanner */
2001-01-04 11:23:21 +00:00
#define USB_PRODUCT_MICROTEK_336CX2 0x00a0 /* Phantom 336CX - C3 scanner */
2000-09-05 12:28:33 +00:00
#define USB_PRODUCT_MICROTEK_V6USL 0x00a3 /* ScanMaker V6USL */
#define USB_PRODUCT_MICROTEK_V6USL2 0x80a3 /* ScanMaker V6USL */
#define USB_PRODUCT_MICROTEK_V6UL 0x80ac /* ScanMaker V6UL */
2000-01-20 07:39:19 +00:00
/* Midiman products */
#define USB_PRODUCT_MIDIMAN_MIDISPORT2X2 0x1001 /* Midisport 2x2 */
/* Motorola products */
#define USB_PRODUCT_MOTOROLA_MC141555 0x1555 /* MC141555 hub controller */
/* MultiTech products */
1999-06-27 22:28:02 +00:00
#define USB_PRODUCT_MULTITECH_ATLAS 0xf101 /* MT5634ZBA-USB modem */
2000-01-20 07:39:19 +00:00
/* Mustek products */
2000-09-05 12:28:33 +00:00
#define USB_PRODUCT_MUSTEK_1200CU 0x0001 /* 1200 CU scanner */
2000-10-25 10:14:44 +00:00
#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 */
2000-10-07 11:11:12 +00:00
#define USB_PRODUCT_MUSTEK_MDC800 0xa800 /* MDC-800 digital camera */
2000-10-25 10:14:44 +00:00
/* National Semiconductor */
#define USB_PRODUCT_NATIONAL_BEARPAW 0x1000 /* BearPaw 1200 */
2000-01-20 07:39:19 +00:00
/* NEC products */
#define USB_PRODUCT_NEC_HUB 0x55aa /* hub */
#define USB_PRODUCT_NEC_HUB_B 0x55ab /* hub */
2000-01-20 07:39:19 +00:00
/* NetChip Technology Products */
#define USB_PRODUCT_NETCHIP_TURBOCONNECT 0x1080 /* Turbo-Connect */
2000-01-20 07:39:19 +00:00
/* Netgear products */
#define USB_PRODUCT_NETGEAR_EA101 0x1001 /* Ethernet adapter */
2001-02-05 11:00:35 +00:00
/* Nikon products */
#define USB_PRODUCT_NIKON_E990 0x0102 /* Digital Camera E990 */
2000-04-03 15:15:50 +00:00
/* OmniVision Technologies, Inc. products */
2000-01-20 07:39:19 +00:00
#define USB_PRODUCT_OMNIVISION_OV511 0x0511 /* OV511 Camera */
2000-07-17 09:56:01 +00:00
#define USB_PRODUCT_OMNIVISION_OV511PLUS 0xa511 /* OV511+ Camera */
2000-01-20 07:39:19 +00:00
2000-04-03 15:15:50 +00:00
/* Palm Computing, Inc. */
#define USB_PRODUCT_PALM_SERIAL 0x0080 /* USB Serial Adaptor */
2000-01-20 07:39:19 +00:00
/* Peracom products */
#define USB_PRODUCT_PERACOM_SERIAL1 0x0001 /* Serial Converter */
#define USB_PRODUCT_PERACOM_ENET 0x0002 /* Ethernet adapter */
2000-03-29 19:46:41 +00:00
#define USB_PRODUCT_PERACOM_ENET3 0x0003 /* At Home Ethernet Adapter */
2000-01-20 07:39:19 +00:00
#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 */
2000-05-07 19:44:44 +00:00
#define USB_PRODUCT_PHILIPS_PCVC680K 0x0308 /* PCVC680K Vesta Pro PC Camera */
2000-04-03 15:15:50 +00:00
#define USB_PRODUCT_PHILIPS_DSS150 0x0471 /* DSS 150 Digital Speaker System */
2000-01-20 07:39:19 +00:00
2001-02-05 11:03:21 +00:00
/* Philips Semiconductor products */
#define USB_PRODUCT_PHILIPSSEMI_HUB1122 0x1122 /* hub */
2000-01-20 07:39:19 +00:00
/* 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 */
2000-10-25 10:14:44 +00:00
#define USB_PRODUCT_PRIMAX_G2X300 0x0300 /* G2-200 scanner */
2000-09-05 12:28:33 +00:00
#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 */
2000-10-07 11:11:12 +00:00
#define USB_PRODUCT_PRIMAX_19200 0x0360 /* Colorado USB 19200 scanner */
2000-09-05 12:28:33 +00:00
#define USB_PRODUCT_PRIMAX_1200U 0x0361 /* Colorado 1200u scanner */
2000-10-25 10:14:44 +00:00
#define USB_PRODUCT_PRIMAX_G600 0x0380 /* G2-600 scanner */
2000-10-07 11:11:12 +00:00
#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 */
2000-04-03 15:15:50 +00:00
2000-05-07 19:44:44 +00:00
/* Prolific products */
#define USB_PRODUCT_PROLIFIC_PL2301 0x0000 /* PL2301 Host-Host interface */
#define USB_PRODUCT_PROLIFIC_PL2302 0x0001 /* PL2302 Host-Host interface */
2001-02-05 11:03:21 +00:00
#define USB_PRODUCT_PROLIFIC_PL2303 0x04bb /* PL2303 Serial adapter (IODATA USB-RSAQ2) */
2001-01-04 11:23:21 +00:00
#define USB_PRODUCT_PROLIFIC_PL2305 0x2305 /* Parallel printer adapter */
2000-09-05 16:01:34 +00:00
#define USB_PRODUCT_PROLIFIC_ATAPI4 0x2307 /* ATAPI-4 Bridge Controller */
2000-05-07 19:44:44 +00:00
2000-10-07 11:11:12 +00:00
/* Qtronix products */
#define USB_PRODUCT_QTRONIX_980N 0x2011 /* Scorpion-980N keyboard */
2000-04-03 15:15:50 +00:00
/* Quickshot products */
#define USB_PRODUCT_QUICKSHOT_STRIKEPAD 0x6238 /* USB StrikePad */
2000-01-20 07:39:19 +00:00
2000-10-07 11:11:12 +00:00
/* Rainbow Technologies products */
#define USB_PRODUCT_RAINBOW_IKEY2000 0x1200 /* i-Key 2000 */
2001-02-05 11:03:21 +00:00
/* Roland products */
#define USB_PRODUCT_ROLAND_UM1 0x0009 /* UM-1 MIDI I/F */
2000-01-20 07:39:19 +00:00
/* Rockfire products */
#define USB_PRODUCT_ROCKFIRE_GAMEPAD 0x2033 /* gamepad 203USB */
/* Qtronix products */
#define USB_PRODUCT_QTRONIX_980N 0x2011 /* Scorpion-980N keyboard */
/* SanDisk products */
#define USB_PRODUCT_SANDISK_IMAGEMATE 0x0001 /* USB ImageMate */
2001-01-04 11:23:21 +00:00
/* ScanLogic products */
#define USB_PRODUCT_SCANLOGIC_336CX 0x0300 /* Phantom 336CX - C3 scanner */
2000-01-20 07:39:19 +00:00
/* Shuttle Technology products */
#define USB_PRODUCT_SHUTTLE_EUSB 0x0001 /* E-USB Bridge */
2000-01-13 20:17:11 +00:00
/* SIIG products */
#define USB_PRODUCT_SIIG_DIGIFILMREADER 0x0004 /* DigiFilm-Combo Reader */
2001-01-04 11:23:21 +00:00
/* Silicon Portals Inc. */
#define USB_PRODUCT_SILICONPORTALS_YAPPH_NF 0x0200 /* YAP Phone (no firmware) */
#define USB_PRODUCT_SILICONPORTALS_YAPPHONE 0x0201 /* YAP Phone */
2000-01-20 07:39:19 +00:00
/* Sirius Technologies products */
#define USB_PRODUCT_SIRIUS_ROADSTER 0x0001 /* NetComm Roadster II 56 USB */
2000-04-14 14:44:54 +00:00
/* SmartBridges products */
#define USB_PRODUCT_SMARTBRIDGES_SMARTLINK 0x0001 /* SmartLink USB ethernet adapter */
2000-01-20 07:39:19 +00:00
/* SMC products */
#define USB_PRODUCT_SMC_2102USB 0x0100 /* 10Mbps ethernet adapter */
#define USB_PRODUCT_SMC_2202USB 0x0200 /* 10/100 ethernet adapter */
2000-01-20 07:39:19 +00:00
/* SOLID YEAR products */
#define USB_PRODUCT_SOLIDYEAR_KEYBOARD 0x2101 /* Solid Year USB keyboard */
2000-09-05 01:10:33 +00:00
/* SONY products */
#define USB_PRODUCT_SONY_DSC 0x0010 /* Sony DSC cameras */
2000-11-03 15:19:42 +00:00
#define USB_PRODUCT_SONY_MSC 0x0032 /* Sony MSC memory stick slot */
2000-09-05 01:10:33 +00:00
2000-01-20 07:39:19 +00:00
/* STMicroelectronics products */
#define USB_PRODUCT_STMICRO_COMMUNICATOR 0x7554 /* USB Communicator */
This commit adds device driver support for the ADMtek AN986 Pegasus USB ethernet chip. Adapters that use this chip include the LinkSys USB100TX. There are a few others, but I'm not certain of their availability in the U.S. I used an ADMtek eval board for development. Note that while the ADMtek chip is a 100Mbps device, you can't really get 100Mbps speeds over USB. Regardless, this driver uses miibus to allow speed and duplex mode selection as well as autonegotiation. Building and kldloading the driver as a module is also supported. Note that in order to make this driver work, I had to make what some may consider an ugly hack to sys/dev/usb/usbdi.c. The usbd_transfer() function will use tsleep() for synchronous transfers that don't complete right away. This is a problem since there are times when we need to do sync transfers from an interrupt context (i.e. when reading registers from the MAC via the control endpoint), where tsleep() us a no-no. My hack allows the driver to have the code poll for transfer completion subject to the xfer->timeout timeout rather that calling tsleep(). This hack is controlled by a quirk entry and is only enabled for the ADMtek device. Now, I'm sure there are a few of you out there ready to jump on me and suggest some other approach that doesn't involve a busy wait. The only solution that might work is to handle the interrupts in a kernel thread, where you may have something resembling a process context that makes it okay to tsleep(). This is lovely, except we don't have any mechanism like that now, and I'm not about to implement such a thing myself since it's beyond the scope of driver development. (Translation: I'll be damned if I know how to do it.) If FreeBSD ever aquires such a mechanism, I'll be glad to revisit the driver to take advantage of it. In the meantime, I settled for what I perceived to be the solution that involved the least amount of code changes. In general, the hit is pretty light. Also note that my only USB test box has a UHCI controller: I haven't I don't have a machine with an OHCI controller available. Highlights: - Updated usb_quirks.* to add UQ_NO_TSLEEP quirk for ADMtek part. - Updated usbdevs and regenerated generated files - Updated HARDWARE.TXT and RELNOTES.TXT files - Updated sysinstall/device.c and userconfig.c - Updated kernel configs -- device aue0 is commented out by default - Updated /sys/conf/files - Added new kld module directory
1999-12-28 02:01:18 +00:00
2001-01-04 11:23:21 +00:00
/* STSN products */
#define USB_PRODUCT_STSN_STSN0001 0x0001 /* Internet Access Device */
2000-01-20 07:39:19 +00:00
/* Sun Microsystems products */
#define USB_PRODUCT_SUN_KEYBOARD 0x0005 /* Type 6 USB */
/* XXX The above is a North American PC style keyboard possibly */
2000-05-25 22:29:47 +00:00
/* Supra products */
2000-10-07 11:11:12 +00:00
#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 */
2001-02-05 11:00:35 +00:00
#define USB_PRODUCT_DIAMOND2_RIO800USB 0x5002 /* Rio 800 USB */
2000-05-25 22:29:47 +00:00
2000-07-17 09:56:01 +00:00
/* TEAC products */
#define USB_PRODUCT_TEAC_FD05PUB 0x0000 /* FD-05PUB floppy */
2000-01-20 07:39:19 +00:00
/* Telex Communications products */
#define USB_PRODUCT_TELEX_MIC1 0x0001 /* Enhanced USB Microphone */
2000-01-20 07:39:19 +00:00
/* Texas Intel products */
#define USB_PRODUCT_TI_UTUSB41 0x1446 /* UT-USB41 hub */
2001-01-04 11:23:21 +00:00
#define USB_PRODUCT_TI_TUSB2046 0x2046 /* TUSB2046 hub */
2000-01-20 07:39:19 +00:00
/* Thrustmaster products */
#define USB_PRODUCT_THRUST_FUSION_PAD 0xa0a3 /* Fusion Digital Gamepad */
2000-10-07 11:11:12 +00:00
/* Trek Technology products */
#define USB_PRODUCT_TREK_THUMBDRIVE 0x1111 /* ThumbDrive */
2000-08-06 23:27:36 +00:00
/* UMAX products */
2000-09-05 12:28:33 +00:00
#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 */
2000-08-06 23:27:36 +00:00
2000-01-20 07:39:19 +00:00
/* Universal Access products */
#define USB_PRODUCT_UNIACCESS_PANACHE 0x0101 /* Panache Surf USB ISDN Adapter */
/* Vision products */
2000-07-17 09:56:01 +00:00
#define USB_PRODUCT_VISION_VC6452V002 0x0002 /* CPiA Camera */
2000-01-20 07:39:19 +00:00
2000-09-05 12:28:33 +00:00
/* Visioneer products */
2000-10-25 10:14:44 +00:00
#define USB_PRODUCT_VISIONEER_7600 0x0211 /* OneTouch 7600 */
#define USB_PRODUCT_VISIONEER_5300 0x0221 /* OneTouch 5300 */
2000-09-05 12:28:33 +00:00
#define USB_PRODUCT_VISIONEER_6100 0x0231 /* OneTouch 6100 */
2000-10-25 10:14:44 +00:00
#define USB_PRODUCT_VISIONEER_6200 0x0311 /* OneTouch 6200 */
#define USB_PRODUCT_VISIONEER_8100 0x0321 /* OneTouch 8100 */
#define USB_PRODUCT_VISIONEER_8600 0x0331 /* OneTouch 8600 */
2000-09-05 12:28:33 +00:00
2000-01-20 07:39:19 +00:00
/* Wacom products */
#define USB_PRODUCT_WACOM_CT0405U 0x0000 /* CT-0405-U Tablet */
2000-04-03 15:15:50 +00:00
#define USB_PRODUCT_WACOM_GRAPHIRE 0x0010 /* Graphire */
#define USB_PRODUCT_WACOM_INTUOSA5 0x0021 /* Intuos A5 */
2000-03-15 22:04:01 +00:00
/* Y-E Data products */
#define USB_PRODUCT_YEDATA_FLASHBUSTERU 0x0000 /* Flashbuster-U */
2000-10-05 23:11:13 +00:00
/* Yano products */
#define USB_PRODUCT_YANO_U640MO 0x0101 /* U640MO-03 */
2001-02-05 11:03:21 +00:00
/* Yamaha products */
#define USB_PRODUCT_YAMAHA_UX256 0x1000 /* UX256 MIDI I/F */
2000-04-03 15:15:50 +00:00
/* Zoom Telephonics, Inc. products */
2000-01-20 07:39:19 +00:00
#define USB_PRODUCT_ZOOM_2986L 0x9700 /* 2986L Fax modem */
2000-10-07 11:02:25 +00:00
/* ZyXEL Communication Co. products */
#define USB_PRODUCT_ZYXEL_980N 0x2011 /* Scorpion-980N keyboard */