diff -r -C 3 -b -B -d -P -w /usr/tmp/usr/src/sys/dev/usb/files.usb ./dev/usb/files.usb *** /usr/tmp/usr/src/sys/dev/usb/files.usb Sat Apr 15 00:51:22 2000 --- ./dev/usb/files.usb Fri Feb 16 10:05:35 2001 *************** *** 109,111 **** --- 109,119 ---- device uftdi: ucombus attach uftdi at uhub file dev/usb/uftdi.c uftdi + + # Scanners + # Generic scanner support + # cjb 20010216 + device uscanner + attach uscanner at uhub + file dev/usb/uscanner.c uscanner needs-flag + diff -r -C 3 -b -B -d -P -w /usr/tmp/usr/src/sys/dev/usb/usb_port.h ./dev/usb/usb_port.h *** /usr/tmp/usr/src/sys/dev/usb/usb_port.h Fri Jun 2 00:37:51 2000 --- ./dev/usb/usb_port.h Fri Feb 16 10:17:57 2001 *************** *** 68,73 **** --- 68,74 ---- #define UZCOM_DEBUG 1 #define URIO_DEBUG 1 #define UFTDI_DEBUG 1 + #define USCANNER_DEBUG 1 #define Static #else #define Static static *************** *** 222,227 **** --- 223,229 ---- #define usbpoll usbselect #define uhidpoll uhidselect #define ugenpoll ugenselect + #define uscannerpoll uscannerselect #define powerhook_establish(fn, sc) (fn) #define powerhook_disestablish(hdl) diff -r -C 3 -b -B -d -P -w /usr/tmp/usr/src/sys/dev/usb/usbdevs ./dev/usb/usbdevs *** /usr/tmp/usr/src/sys/dev/usb/usbdevs Mon Oct 9 06:49:04 2000 --- ./dev/usb/usbdevs Fri Feb 16 10:07:55 2001 *************** *** 1,4 **** ! $NetBSD: usbdevs,v 1.103.2.2 2000/10/08 19:49:04 hubertf Exp $ /* * Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc. --- 1,4 ---- ! $NetBSD: usbdevs,v 1.147 2001/02/11 05:49:20 ichiro Exp $ /* * Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc. *************** *** 45,55 **** --- 45,57 ---- vendor ATMEL 0x03eb Atmel Corp. 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. *************** *** 75,84 **** --- 77,88 ---- 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. *************** *** 135,141 **** --- 139,147 ---- 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. *************** *** 213,221 **** --- 219,229 ---- 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. *************** *** 225,230 **** --- 233,239 ---- 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. *************** *** 238,243 **** --- 247,254 ---- 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 *************** *** 261,272 **** vendor MOTOROLA 0x1063 Motorola vendor PLX 0x10b5 PLX vendor BELKIN2 0x1293 Belkin Components (2nd) ! vendor UMAX 0x1606 UMAX vendor INSIDEOUT 0x1608 Inside Out Networks vendor ENTREGA 0x1645 Entrega vendor ACTIONTEC 0x1668 Actiontec Electronics, Inc. vendor DLINK 0x2001 D-Link Corp vendor INTEL 0x8086 Intel /* * List of known products. Grouped by vendor. --- 272,285 ---- 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 INTEL 0x8086 Intel + vendor HP2 0xf003 Hewlett Packard /* * List of known products. Grouped by vendor. *************** *** 284,289 **** --- 296,303 ---- 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 /* Acer Peripherals, Inc. products */ product ACERP ACERSCAN_C310U 0x12a6 Acerscan C310U *************** *** 335,340 **** --- 349,355 ---- product AOX USB101 0x0008 USB ethernet controller engine /* Apple Computer products */ + product APPLE OPTMOUSE 0x0302 Optical mouse product APPLE SPEAKERS 0x1101 Speakers /* ATen products */ *************** *** 342,347 **** --- 357,365 ---- product ATEN UC10T 0x2002 10Mbps ethernet adapter product ATEN UC232A 0x2008 Serial adapter + /* Atmel Comp. products */ + product ATMEL UHB124 0x3301 UHB124 hub + /* Avision products */ product AVISION 1200U 0x0268 1200U scanner *************** *** 367,372 **** --- 385,393 ---- 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 *************** *** 388,393 **** --- 409,417 ---- 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 *************** *** 401,406 **** --- 425,431 ---- 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 /* Dallas Semiconductor products */ product DALLAS J6502 0x4201 J-6502 speakers *************** *** 437,445 **** --- 462,474 ---- 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 640U 0x010c Perfection 640U scanner /* e-TEK Labs products */ product ETEK 1COM 0x8007 Serial port *************** *** 451,457 **** product GRAVIS GAMEPADPRO 0x4001 GamePad Pro /* Griffin Technology */ ! product GRIFFIN IMATE 0x0405 iMate, ABD adapter /* Freecom products */ product FREECOM DVD 0xfc01 Connector for DVD drive --- 480,486 ---- product GRAVIS GAMEPADPRO 0x4001 GamePad Pro /* Griffin Technology */ ! product GRIFFIN IMATE 0x0405 iMate, ADB adapter /* Freecom products */ product FREECOM DVD 0xfc01 Connector for DVD drive *************** *** 459,464 **** --- 488,496 ---- /* Future Technology Devices products */ product FTDI SERIAL 0x8372 Serial converter + /* Fuji photo products */ + product FUJIPHOTO MASS0100 0x0100 Mass Storage + /* Handspring, Inc. */ product HANDSPRING VISOR 0x0100 Handspring Visor *************** *** 469,479 **** product HP 6200C 0x0201 ScanJet 6200C product HP S20b 0x0202 PhotoSmart S20 product HP 3300C 0x0205 ScanJet 3300C ! product HP 5200 0x0401 Scanjet 5200 product HP 6300C 0x0601 Scanjet 6300C product HP 970CSE 0x1004 Deskjet 970Cse product HP P1100 0x3102 Photosmart P1100 /* IBM Corporation */ product IBM USBCDROMDRIVE 0x4427 USB CD-ROM Drive --- 501,515 ---- product HP 6200C 0x0201 ScanJet 6200C product HP S20b 0x0202 PhotoSmart S20 product HP 3300C 0x0205 ScanJet 3300C ! product HP 5200C 0x0401 Scanjet 5200C product HP 6300C 0x0601 Scanjet 6300C + product HP 5300C 0x0701 Scanjet 5300C product HP 970CSE 0x1004 Deskjet 970Cse product HP P1100 0x3102 Photosmart P1100 + /* HP products */ + product HP2 C500 0x6002 PhotoSmart C500 + /* IBM Corporation */ product IBM USBCDROMDRIVE 0x4427 USB CD-ROM Drive *************** *** 487,496 **** --- 523,535 ---- 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 *************** *** 512,517 **** --- 551,559 ---- product KENSINGTON ORBIT 0x1003 Orbit USB/PS2 trackball product KENSINGTON TURBOBALL 0x1005 TurboBall + /* 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 *************** *** 553,558 **** --- 595,601 ---- 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 BB13 0xc401 USB-PS/2 Trackball product LOGITECH WMPAD 0xc208 WingMan GamePad Extreme product LOGITECH WMJOY 0xc281 WingMan Force joystick *************** *** 569,575 **** product MCT USB232 0x0210 USB-232 Interface /* Melco, Inc products */ ! product MELCO LUATX 0x0001 LU-ATX Ethernet /* Microsoft products */ product MICROSOFT SIDEPREC 0x0008 SideWinder Precision Pro --- 612,622 ---- product MCT USB232 0x0210 USB-232 Interface /* Melco, Inc products */ ! product MELCO LUATX1 0x0001 LUA-TX Ethernet ! product MELCO LUATX5 0x0005 LUA-TX Ethernet ! ! /* Metricom products */ ! product METRICOM RICOCHET_GS 0x0001 Ricochet GS /* Microsoft products */ product MICROSOFT SIDEPREC 0x0008 SideWinder Precision Pro *************** *** 581,590 **** product MICROSOFT INETPRO 0x002b Internet Keyboard Pro /* Microtek products */ - product MICROTEK X6U 0x0099 ScanMaker X6 - X6U product MICROTEK 336CX 0x0094 Phantom 336CX - C3 scanner ! product MICROTEK 336CX2 0x00a0 Phantom 336CX - C3 scanner product MICROTEK C6 0x009a Phantom C6 scanner product MICROTEK V6USL 0x00a3 ScanMaker V6USL product MICROTEK V6USL2 0x80a3 ScanMaker V6USL product MICROTEK V6UL 0x80ac ScanMaker V6UL --- 628,637 ---- product MICROSOFT INETPRO 0x002b Internet Keyboard Pro /* 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 *************** *** 600,607 **** --- 647,660 ---- /* 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 MDC800 0xa800 MDC-800 digital camera + /* National Semiconductor */ + product NATIONAL BEARPAW 0x1000 BearPaw 1200 + /* NEC products */ product NEC HUB 0x55aa hub product NEC HUB_B 0x55ab hub *************** *** 612,617 **** --- 665,673 ---- /* Netgear products */ product NETGEAR EA101 0x1001 Ethernet adapter + /* Nikon products */ + product NIKON E990 0x0102 Digital Camera E990 + /* OmniVision Technologies, Inc. products */ product OMNIVISION OV511 0x0511 OV511 Camera product OMNIVISION OV511PLUS 0xa511 OV511+ Camera *************** *** 632,637 **** --- 688,696 ---- product PHILIPS PCVC680K 0x0308 PCVC680K Vesta Pro PC Camera product PHILIPS DSS150 0x0471 DSS 150 Digital Speaker System + /* Philips Semiconductor products */ + product PHILIPSSEMI HUB1122 0x1122 hub + /* P.I. Engineering products */ product PIENGINEERING PS2USB 0x020b PS2 to Mac USB Adapter *************** *** 639,644 **** --- 698,704 ---- 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 *************** *** 646,651 **** --- 706,712 ---- 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 *************** *** 656,661 **** --- 717,724 ---- /* Prolific products */ product PROLIFIC PL2301 0x0000 PL2301 Host-Host interface product PROLIFIC PL2302 0x0001 PL2302 Host-Host interface + product PROLIFIC PL2303 0x04bb PL2303 Serial adapter (IODATA USB-RSAQ2) + product PROLIFIC PL2305 0x2305 Parallel printer adapter product PROLIFIC ATAPI4 0x2307 ATAPI-4 Bridge Controller /* Qtronix products */ *************** *** 667,684 **** --- 730,757 ---- /* 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 IMAGEMATE 0x0001 USB ImageMate + /* ScanLogic products */ + product SCANLOGIC 336CX 0x0300 Phantom 336CX - C3 scanner + /* Shuttle Technology products */ product SHUTTLE EUSB 0x0001 E-USB Bridge /* 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 *************** *** 694,703 **** --- 767,780 ---- /* SONY products */ product SONY DSC 0x0010 Sony DSC cameras + product SONY MSC 0x0032 Sony 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 /* XXX The above is a North American PC style keyboard possibly */ *************** *** 715,720 **** --- 792,798 ---- /* 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 *************** *** 736,743 **** product VISION VC6452V002 0x0002 CPiA Camera /* Visioneer products */ ! product VISIONEER 5300 0x0221 OneTouch 5300 / 7600 product VISIONEER 6100 0x0231 OneTouch 6100 /* Wacom products */ product WACOM CT0405U 0x0000 CT-0405-U Tablet --- 814,825 ---- 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 *************** *** 747,751 **** --- 829,842 ---- /* 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 + /* Zoom Telephonics, Inc. products */ product ZOOM 2986L 0x9700 2986L Fax modem + + /* ZyXEL Communication Co. products */ + product ZYXEL 980N 0x2011 Scorpion-980N keyboard diff -r -C 3 -b -B -d -P -w /usr/tmp/usr/src/sys/dev/usb/usbdevs.h ./dev/usb/usbdevs.h *** /usr/tmp/usr/src/sys/dev/usb/usbdevs.h Mon Oct 9 06:51:36 2000 --- ./dev/usb/usbdevs.h Fri Feb 16 10:08:01 2001 *************** *** 1,10 **** ! /* $NetBSD: usbdevs.h,v 1.104.2.2 2000/10/08 19:51:36 hubertf Exp $ */ /* * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: ! * NetBSD: usbdevs,v 1.103.2.2 2000/10/08 19:49:04 hubertf Exp */ /* --- 1,10 ---- ! /* $NetBSD$ */ /* * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: ! * NetBSD: usbdevs,v 1.147 2001/02/11 05:49:20 ichiro Exp */ /* *************** *** 52,62 **** --- 52,64 ---- #define USB_VENDOR_ATMEL 0x03eb /* Atmel Corp. */ #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. */ *************** *** 82,91 **** --- 84,95 ---- #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. */ *************** *** 142,148 **** --- 146,154 ---- #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. */ *************** *** 220,228 **** --- 226,236 ---- #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. */ *************** *** 232,237 **** --- 240,246 ---- #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. */ *************** *** 245,250 **** --- 254,261 ---- #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 */ *************** *** 268,279 **** #define USB_VENDOR_MOTOROLA 0x1063 /* Motorola */ #define USB_VENDOR_PLX 0x10b5 /* PLX */ #define USB_VENDOR_BELKIN2 0x1293 /* Belkin Components (2nd) */ ! #define USB_VENDOR_UMAX 0x1606 /* UMAX */ #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_INTEL 0x8086 /* Intel */ /* * List of known products. Grouped by vendor. --- 279,292 ---- #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_INTEL 0x8086 /* Intel */ + #define USB_VENDOR_HP2 0xf003 /* Hewlett Packard */ /* * List of known products. Grouped by vendor. *************** *** 291,296 **** --- 303,310 ---- #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 */ /* Acer Peripherals, Inc. products */ #define USB_PRODUCT_ACERP_ACERSCAN_C310U 0x12a6 /* Acerscan C310U */ *************** *** 342,347 **** --- 356,362 ---- #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 */ *************** *** 349,354 **** --- 364,372 ---- #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 */ + /* Avision products */ #define USB_PRODUCT_AVISION_1200U 0x0268 /* 1200U scanner */ *************** *** 374,379 **** --- 392,400 ---- #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 */ *************** *** 395,400 **** --- 416,424 ---- #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 */ *************** *** 408,413 **** --- 432,438 ---- #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 */ /* Dallas Semiconductor products */ #define USB_PRODUCT_DALLAS_J6502 0x4201 /* J-6502 speakers */ *************** *** 444,452 **** --- 469,481 ---- #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_640U 0x010c /* Perfection 640U scanner */ /* e-TEK Labs products */ #define USB_PRODUCT_ETEK_1COM 0x8007 /* Serial port */ *************** *** 458,464 **** #define USB_PRODUCT_GRAVIS_GAMEPADPRO 0x4001 /* GamePad Pro */ /* Griffin Technology */ ! #define USB_PRODUCT_GRIFFIN_IMATE 0x0405 /* iMate, ABD adapter */ /* Freecom products */ #define USB_PRODUCT_FREECOM_DVD 0xfc01 /* Connector for DVD drive */ --- 487,493 ---- #define USB_PRODUCT_GRAVIS_GAMEPADPRO 0x4001 /* GamePad Pro */ /* Griffin Technology */ ! #define USB_PRODUCT_GRIFFIN_IMATE 0x0405 /* iMate, ADB adapter */ /* Freecom products */ #define USB_PRODUCT_FREECOM_DVD 0xfc01 /* Connector for DVD drive */ *************** *** 466,471 **** --- 495,503 ---- /* Future Technology Devices products */ #define USB_PRODUCT_FTDI_SERIAL 0x8372 /* Serial converter */ + /* Fuji photo products */ + #define USB_PRODUCT_FUJIPHOTO_MASS0100 0x0100 /* Mass Storage */ + /* Handspring, Inc. */ #define USB_PRODUCT_HANDSPRING_VISOR 0x0100 /* Handspring Visor */ *************** *** 476,486 **** #define USB_PRODUCT_HP_6200C 0x0201 /* ScanJet 6200C */ #define USB_PRODUCT_HP_S20b 0x0202 /* PhotoSmart S20 */ #define USB_PRODUCT_HP_3300C 0x0205 /* ScanJet 3300C */ ! #define USB_PRODUCT_HP_5200 0x0401 /* Scanjet 5200 */ #define USB_PRODUCT_HP_6300C 0x0601 /* Scanjet 6300C */ #define USB_PRODUCT_HP_970CSE 0x1004 /* Deskjet 970Cse */ #define USB_PRODUCT_HP_P1100 0x3102 /* Photosmart P1100 */ /* IBM Corporation */ #define USB_PRODUCT_IBM_USBCDROMDRIVE 0x4427 /* USB CD-ROM Drive */ --- 508,522 ---- #define USB_PRODUCT_HP_6200C 0x0201 /* ScanJet 6200C */ #define USB_PRODUCT_HP_S20b 0x0202 /* PhotoSmart S20 */ #define USB_PRODUCT_HP_3300C 0x0205 /* ScanJet 3300C */ ! #define USB_PRODUCT_HP_5200C 0x0401 /* Scanjet 5200C */ #define USB_PRODUCT_HP_6300C 0x0601 /* Scanjet 6300C */ + #define USB_PRODUCT_HP_5300C 0x0701 /* Scanjet 5300C */ #define USB_PRODUCT_HP_970CSE 0x1004 /* Deskjet 970Cse */ #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 */ *************** *** 494,503 **** --- 530,542 ---- #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 */ *************** *** 519,524 **** --- 558,566 ---- #define USB_PRODUCT_KENSINGTON_ORBIT 0x1003 /* Orbit USB/PS2 trackball */ #define USB_PRODUCT_KENSINGTON_TURBOBALL 0x1005 /* TurboBall */ + /* 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 */ *************** *** 560,565 **** --- 602,608 ---- #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_BB13 0xc401 /* USB-PS/2 Trackball */ #define USB_PRODUCT_LOGITECH_WMPAD 0xc208 /* WingMan GamePad Extreme */ #define USB_PRODUCT_LOGITECH_WMJOY 0xc281 /* WingMan Force joystick */ *************** *** 576,582 **** #define USB_PRODUCT_MCT_USB232 0x0210 /* USB-232 Interface */ /* Melco, Inc products */ ! #define USB_PRODUCT_MELCO_LUATX 0x0001 /* LU-ATX Ethernet */ /* Microsoft products */ #define USB_PRODUCT_MICROSOFT_SIDEPREC 0x0008 /* SideWinder Precision Pro */ --- 619,629 ---- #define USB_PRODUCT_MCT_USB232 0x0210 /* USB-232 Interface */ /* Melco, Inc products */ ! #define USB_PRODUCT_MELCO_LUATX1 0x0001 /* LUA-TX Ethernet */ ! #define USB_PRODUCT_MELCO_LUATX5 0x0005 /* LUA-TX Ethernet */ ! ! /* Metricom products */ ! #define USB_PRODUCT_METRICOM_RICOCHET_GS 0x0001 /* Ricochet GS */ /* Microsoft products */ #define USB_PRODUCT_MICROSOFT_SIDEPREC 0x0008 /* SideWinder Precision Pro */ *************** *** 588,597 **** #define USB_PRODUCT_MICROSOFT_INETPRO 0x002b /* Internet Keyboard Pro */ /* Microtek products */ - #define USB_PRODUCT_MICROTEK_X6U 0x0099 /* ScanMaker X6 - X6U */ #define USB_PRODUCT_MICROTEK_336CX 0x0094 /* Phantom 336CX - C3 scanner */ ! #define USB_PRODUCT_MICROTEK_336CX2 0x00a0 /* Phantom 336CX - C3 scanner */ #define USB_PRODUCT_MICROTEK_C6 0x009a /* Phantom C6 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 */ --- 635,644 ---- #define USB_PRODUCT_MICROSOFT_INETPRO 0x002b /* Internet Keyboard Pro */ /* 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 */ *************** *** 607,614 **** --- 654,667 ---- /* 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_MDC800 0xa800 /* MDC-800 digital camera */ + /* National Semiconductor */ + #define USB_PRODUCT_NATIONAL_BEARPAW 0x1000 /* BearPaw 1200 */ + /* NEC products */ #define USB_PRODUCT_NEC_HUB 0x55aa /* hub */ #define USB_PRODUCT_NEC_HUB_B 0x55ab /* hub */ *************** *** 619,624 **** --- 672,680 ---- /* Netgear products */ #define USB_PRODUCT_NETGEAR_EA101 0x1001 /* Ethernet adapter */ + /* Nikon products */ + #define USB_PRODUCT_NIKON_E990 0x0102 /* Digital Camera E990 */ + /* OmniVision Technologies, Inc. products */ #define USB_PRODUCT_OMNIVISION_OV511 0x0511 /* OV511 Camera */ #define USB_PRODUCT_OMNIVISION_OV511PLUS 0xa511 /* OV511+ Camera */ *************** *** 639,644 **** --- 695,703 ---- #define USB_PRODUCT_PHILIPS_PCVC680K 0x0308 /* PCVC680K Vesta Pro PC Camera */ #define USB_PRODUCT_PHILIPS_DSS150 0x0471 /* DSS 150 Digital Speaker System */ + /* 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 */ *************** *** 646,651 **** --- 705,711 ---- #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 */ *************** *** 653,658 **** --- 713,719 ---- #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 */ *************** *** 663,668 **** --- 724,731 ---- /* 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_PL2303 0x04bb /* PL2303 Serial adapter (IODATA USB-RSAQ2) */ + #define USB_PRODUCT_PROLIFIC_PL2305 0x2305 /* Parallel printer adapter */ #define USB_PRODUCT_PROLIFIC_ATAPI4 0x2307 /* ATAPI-4 Bridge Controller */ /* Qtronix products */ *************** *** 674,691 **** --- 737,764 ---- /* 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_IMAGEMATE 0x0001 /* USB ImageMate */ + /* ScanLogic products */ + #define USB_PRODUCT_SCANLOGIC_336CX 0x0300 /* Phantom 336CX - C3 scanner */ + /* Shuttle Technology products */ #define USB_PRODUCT_SHUTTLE_EUSB 0x0001 /* E-USB Bridge */ /* 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 */ *************** *** 701,710 **** --- 774,787 ---- /* SONY products */ #define USB_PRODUCT_SONY_DSC 0x0010 /* Sony DSC cameras */ + #define USB_PRODUCT_SONY_MSC 0x0032 /* Sony 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 */ /* XXX The above is a North American PC style keyboard possibly */ *************** *** 722,727 **** --- 799,805 ---- /* 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 */ *************** *** 743,750 **** #define USB_PRODUCT_VISION_VC6452V002 0x0002 /* CPiA Camera */ /* Visioneer products */ ! #define USB_PRODUCT_VISIONEER_5300 0x0221 /* OneTouch 5300 / 7600 */ #define USB_PRODUCT_VISIONEER_6100 0x0231 /* OneTouch 6100 */ /* Wacom products */ #define USB_PRODUCT_WACOM_CT0405U 0x0000 /* CT-0405-U Tablet */ --- 821,832 ---- #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 */ *************** *** 754,758 **** --- 836,849 ---- /* 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 */ + /* Zoom Telephonics, Inc. products */ #define USB_PRODUCT_ZOOM_2986L 0x9700 /* 2986L Fax modem */ + + /* ZyXEL Communication Co. products */ + #define USB_PRODUCT_ZYXEL_980N 0x2011 /* Scorpion-980N keyboard */ diff -r -C 3 -b -B -d -P -w /usr/tmp/usr/src/sys/dev/usb/usbdevs_data.h ./dev/usb/usbdevs_data.h *** /usr/tmp/usr/src/sys/dev/usb/usbdevs_data.h Mon Oct 9 06:51:35 2000 --- ./dev/usb/usbdevs_data.h Fri Feb 16 10:08:01 2001 *************** *** 1,10 **** ! /* $NetBSD: usbdevs_data.h,v 1.104.2.2 2000/10/08 19:51:35 hubertf Exp $ */ /* * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: ! * NetBSD: usbdevs,v 1.103.2.2 2000/10/08 19:49:04 hubertf Exp */ /* --- 1,10 ---- ! /* $NetBSD$ */ /* * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: ! * NetBSD: usbdevs,v 1.147 2001/02/11 05:49:20 ichiro Exp */ /* *************** *** 94,99 **** --- 94,105 ---- "U.S.Robotics 56000 Voice Faxmodem Pro", }, { + USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_URE450, + 0, + "AboCom Systems, Inc.", + "URE450 Ethernet Adapter", + }, + { USB_VENDOR_ACERP, USB_PRODUCT_ACERP_ACERSCAN_C310U, 0, "Acer Peripherals, Inc.", *************** *** 238,243 **** --- 244,255 ---- "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", *************** *** 262,267 **** --- 274,285 ---- "Serial adapter", }, { + USB_VENDOR_ATMEL, USB_PRODUCT_ATMEL_UHB124, + 0, + "Atmel Corp.", + "UHB124 hub", + }, + { USB_VENDOR_AVISION, USB_PRODUCT_AVISION_1200U, 0, "Avision, Inc.", *************** *** 322,327 **** --- 340,351 ---- "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", *************** *** 376,381 **** --- 400,411 ---- "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", *************** *** 418,423 **** --- 448,459 ---- "1/10/100 ethernet adapter", }, { + USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650, + 0, + "D-Link Corp", + "10/100 ethernet adapter", + }, + { USB_VENDOR_DALLAS, USB_PRODUCT_DALLAS_J6502, 0, "Dallas Semiconductor", *************** *** 538,543 **** --- 574,585 ---- "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.", *************** *** 556,561 **** --- 598,621 ---- "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_640U, + 0, + "Seiko Epson Corp.", + "Perfection 640U scanner", + }, + { USB_VENDOR_ETEK, USB_PRODUCT_ETEK_1COM, 0, "e-TEK Labs", *************** *** 577,583 **** USB_VENDOR_GRIFFIN, USB_PRODUCT_GRIFFIN_IMATE, 0, "Griffin Technology, Inc.", ! "iMate, ABD adapter", }, { USB_VENDOR_FREECOM, USB_PRODUCT_FREECOM_DVD, --- 637,643 ---- USB_VENDOR_GRIFFIN, USB_PRODUCT_GRIFFIN_IMATE, 0, "Griffin Technology, Inc.", ! "iMate, ADB adapter", }, { USB_VENDOR_FREECOM, USB_PRODUCT_FREECOM_DVD, *************** *** 592,597 **** --- 652,663 ---- "Serial converter", }, { + USB_VENDOR_FUJIPHOTO, USB_PRODUCT_FUJIPHOTO_MASS0100, + 0, + "Fuji Photo Film Co., Ltd.", + "Mass Storage", + }, + { USB_VENDOR_HANDSPRING, USB_PRODUCT_HANDSPRING_VISOR, 0, "Handspring, Inc.", *************** *** 634,643 **** "ScanJet 3300C", }, { ! USB_VENDOR_HP, USB_PRODUCT_HP_5200, 0, "Hewlett Packard", ! "Scanjet 5200", }, { USB_VENDOR_HP, USB_PRODUCT_HP_6300C, --- 700,709 ---- "ScanJet 3300C", }, { ! USB_VENDOR_HP, USB_PRODUCT_HP_5200C, 0, "Hewlett Packard", ! "Scanjet 5200C", }, { USB_VENDOR_HP, USB_PRODUCT_HP_6300C, *************** *** 646,651 **** --- 712,723 ---- "Scanjet 6300C", }, { + USB_VENDOR_HP, USB_PRODUCT_HP_5300C, + 0, + "Hewlett Packard", + "Scanjet 5300C", + }, + { USB_VENDOR_HP, USB_PRODUCT_HP_970CSE, 0, "Hewlett Packard", *************** *** 658,663 **** --- 730,741 ---- "Photosmart P1100", }, { + USB_VENDOR_HP2, USB_PRODUCT_HP2_C500, + 0, + "Hewlett Packard", + "PhotoSmart C500", + }, + { USB_VENDOR_IBM, USB_PRODUCT_IBM_USBCDROMDRIVE, 0, "IBM Corporation", *************** *** 694,711 **** --- 772,807 ---- "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.", *************** *** 754,759 **** --- 850,861 ---- "TurboBall", }, { + USB_VENDOR_KINGSTON, USB_PRODUCT_KINGSTON_KNU101TX, + 0, + "Kingston Technology", + "KNU101TX USB Ethernet", + }, + { USB_VENDOR_KODAK, USB_PRODUCT_KODAK_DC220, 0, "Eastman Kodak Corp.", *************** *** 922,927 **** --- 1024,1035 ---- "WingMan Gaming Mouse", }, { + USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_BD58, + 0, + "Logitech, Inc.", + "BD58 mouse", + }, + { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_BB13, 0, "Logitech, Inc.", *************** *** 970,979 **** "USB-232 Interface", }, { ! USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUATX, 0, "Melco, Inc.", ! "LU-ATX Ethernet", }, { USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_SIDEPREC, --- 1078,1099 ---- "USB-232 Interface", }, { ! 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_METRICOM, USB_PRODUCT_METRICOM_RICOCHET_GS, ! 0, ! "Metricom", ! "Ricochet GS", }, { USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_SIDEPREC, *************** *** 1018,1039 **** "Internet Keyboard Pro", }, { - USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_X6U, - 0, - "Microtek", - "ScanMaker X6 - X6U", - }, - { USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_336CX, 0, "Microtek", "Phantom 336CX - C3 scanner", }, { ! USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_336CX2, 0, "Microtek", ! "Phantom 336CX - C3 scanner", }, { USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_C6, --- 1138,1153 ---- "Internet Keyboard Pro", }, { 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, *************** *** 1042,1047 **** --- 1156,1167 ---- "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", *************** *** 1084,1095 **** --- 1204,1239 ---- "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_MDC800, 0, "Mustek Systems, Inc.", "MDC-800 digital camera", }, { + USB_VENDOR_NATIONAL, USB_PRODUCT_NATIONAL_BEARPAW, + 0, + "National Semiconductor", + "BearPaw 1200", + }, + { USB_VENDOR_NEC, USB_PRODUCT_NEC_HUB, 0, "NEC", *************** *** 1114,1119 **** --- 1258,1269 ---- "Ethernet adapter", }, { + USB_VENDOR_NIKON, USB_PRODUCT_NIKON_E990, + 0, + "Nikon", + "Digital Camera E990", + }, + { USB_VENDOR_OMNIVISION, USB_PRODUCT_OMNIVISION_OV511, 0, "OmniVision", *************** *** 1186,1191 **** --- 1336,1347 ---- "DSS 150 Digital Speaker System", }, { + USB_VENDOR_PHILIPSSEMI, USB_PRODUCT_PHILIPSSEMI_HUB1122, + 0, + "Philips Semiconductors", + "hub", + }, + { USB_VENDOR_PIENGINEERING, USB_PRODUCT_PIENGINEERING_PS2USB, 0, "P.I. Engineering", *************** *** 1198,1203 **** --- 1354,1365 ---- "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", *************** *** 1240,1245 **** --- 1402,1413 ---- "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", *************** *** 1288,1293 **** --- 1456,1473 ---- "PL2302 Host-Host interface", }, { + USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_PL2303, + 0, + "Prolific Technology Inc.", + "PL2303 Serial adapter (IODATA USB-RSAQ2)", + }, + { + 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.", *************** *** 1312,1317 **** --- 1492,1503 ---- "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", *************** *** 1324,1329 **** --- 1510,1521 ---- "USB ImageMate", }, { + USB_VENDOR_SCANLOGIC, USB_PRODUCT_SCANLOGIC_336CX, + 0, + "ScanLogic Corp.", + "Phantom 336CX - C3 scanner", + }, + { USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSB, 0, "Shuttle Technology", *************** *** 1336,1341 **** --- 1528,1545 ---- "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", *************** *** 1372,1383 **** --- 1576,1599 ---- "Sony DSC cameras", }, { + USB_VENDOR_SONY, USB_PRODUCT_SONY_MSC, + 0, + "Sony Corp.", + "Sony 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", *************** *** 1420,1425 **** --- 1636,1647 ---- "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", *************** *** 1434,1464 **** { USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA1236U, 0, ! "UMAX", "Astra 1236U Scanner", }, { USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA1220U, 0, ! "UMAX", "Astra 1220U Scanner", }, { USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA2000U, 0, ! "UMAX", "Astra 2000U Scanner", }, { USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA2100U, 0, ! "UMAX", "Astra 2100U Scanner", }, { USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA2200U, 0, ! "UMAX", "Astra 2200U Scanner", }, { --- 1656,1686 ---- { 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", }, { *************** *** 1474,1483 **** "CPiA Camera", }, { USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_5300, 0, "Visioneer", ! "OneTouch 5300 / 7600", }, { USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_6100, --- 1696,1711 ---- "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, *************** *** 1486,1491 **** --- 1714,1737 ---- "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.", *************** *** 1510,1521 **** --- 1756,1785 ---- "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_ZOOM, USB_PRODUCT_ZOOM_2986L, 0, "Zoom Telephonics, Inc.", "2986L Fax modem", }, { + USB_VENDOR_ZYXEL, USB_PRODUCT_ZYXEL_980N, + 0, + "ZyXEL Communication Co.", + "Scorpion-980N keyboard", + }, + { USB_VENDOR_AOX, 0, USB_KNOWNDEV_NOPROD, "AOX, Inc.", *************** *** 1540,1545 **** --- 1804,1815 ---- NULL, }, { + USB_VENDOR_NATIONAL, 0, + USB_KNOWNDEV_NOPROD, + "National Semiconductor", + NULL, + }, + { USB_VENDOR_ACERLABS, 0, USB_KNOWNDEV_NOPROD, "Acer Labs, Inc.", *************** *** 1570,1575 **** --- 1840,1851 ---- NULL, }, { + USB_VENDOR_CREATIVE, 0, + USB_KNOWNDEV_NOPROD, + "Creative", + NULL, + }, + { USB_VENDOR_ADI, 0, USB_KNOWNDEV_NOPROD, "ADI Systems, Inc.", *************** *** 1720,1725 **** --- 1996,2007 ---- NULL, }, { + USB_VENDOR_YAMAHA, 0, + USB_KNOWNDEV_NOPROD, + "YAMAHA Corp.", + NULL, + }, + { USB_VENDOR_COMPAQ, 0, USB_KNOWNDEV_NOPROD, "Compaq Computers", *************** *** 1744,1749 **** --- 2026,2037 ---- NULL, }, { + USB_VENDOR_NIKON, 0, + USB_KNOWNDEV_NOPROD, + "Nikon", + NULL, + }, + { USB_VENDOR_IBM, 0, USB_KNOWNDEV_NOPROD, "IBM Corporation", *************** *** 2080,2091 **** --- 2368,2391 ---- 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.", *************** *** 2548,2553 **** --- 2848,2859 ---- NULL, }, { + USB_VENDOR_CASIO, 0, + USB_KNOWNDEV_NOPROD, + "CASIO", + NULL, + }, + { USB_VENDOR_APTIO, 0, USB_KNOWNDEV_NOPROD, "Aptio Products, Inc.", *************** *** 2566,2571 **** --- 2872,2883 ---- NULL, }, { + USB_VENDOR_STSN, 0, + USB_KNOWNDEV_NOPROD, + "STSN", + NULL, + }, + { USB_VENDOR_ZOOM, 0, USB_KNOWNDEV_NOPROD, "Zoom Telephonics, Inc.", *************** *** 2620,2625 **** --- 2932,2943 ---- NULL, }, { + USB_VENDOR_METRICOM, 0, + USB_KNOWNDEV_NOPROD, + "Metricom", + NULL, + }, + { USB_VENDOR_ADESSOKBTEK, 0, USB_KNOWNDEV_NOPROD, "ADESSO/Kbtek America, Inc.", *************** *** 2698,2703 **** --- 3016,3033 ---- 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.", *************** *** 2836,2844 **** NULL, }, { USB_VENDOR_UMAX, 0, USB_KNOWNDEV_NOPROD, ! "UMAX", NULL, }, { --- 3166,3180 ---- NULL, }, { + USB_VENDOR_SILICONPORTALS, 0, + USB_KNOWNDEV_NOPROD, + "Silicon Portals Inc.", + NULL, + }, + { USB_VENDOR_UMAX, 0, USB_KNOWNDEV_NOPROD, ! "UMAX Data Systems, Inc.", NULL, }, { *************** *** 2869,2874 **** --- 3205,3216 ---- USB_VENDOR_INTEL, 0, USB_KNOWNDEV_NOPROD, "Intel", + NULL, + }, + { + USB_VENDOR_HP2, 0, + USB_KNOWNDEV_NOPROD, + "Hewlett Packard", NULL, }, { 0, 0, 0, NULL, NULL, } diff -r -C 3 -b -B -d -P -w /usr/tmp/usr/src/sys/dev/usb/uscanner.c ./dev/usb/uscanner.c *** /usr/tmp/usr/src/sys/dev/usb/uscanner.c Thu Jan 1 10:00:00 1970 --- ./dev/usb/uscanner.c Fri Feb 16 10:23:19 2001 *************** *** 0 **** --- 1,679 ---- + /* $NetBSD: uscanner.c,v 1.12 2001/01/23 14:04:14 augustss Exp $ */ + /* $FreeBSD$ */ + + /* + * Copyright (c) 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 + * and Nick Hibma (n_hibma@qubesoft.com). + * + * 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. + */ + + + #include + #include + #include + #include + #if defined(__NetBSD__) || defined(__OpenBSD__) + #include + #elif defined(__FreeBSD__) + #include + #include + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + + #include + #include + #include + + #include + + #ifdef USCANNER_DEBUG + #define DPRINTF(x) if (uscannerdebug) logprintf x + #define DPRINTFN(n,x) if (uscannerdebug>(n)) logprintf x + int uscannerdebug = 0; + #else + #define DPRINTF(x) + #define DPRINTFN(n,x) + #endif + + /* Table of scanners that may work with this driver. */ + static const struct scanner_id { + uint16_t vendor; + uint16_t product; + } scanner_ids [] = { + /* Acer Peripherals */ + { USB_VENDOR_ACERP, USB_PRODUCT_ACERP_ACERSCAN_320U }, + { USB_VENDOR_ACERP, USB_PRODUCT_ACERP_ACERSCAN_640U }, + { USB_VENDOR_ACERP, USB_PRODUCT_ACERP_ACERSCAN_620U }, + { USB_VENDOR_ACERP, USB_PRODUCT_ACERP_ACERSCAN_C310U }, + + /* AGFA */ + { USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCAN1212U }, + { USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCAN1212U2 }, + { USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANTOUCH }, + + /* Kye */ + { USB_VENDOR_KYE, USB_PRODUCT_KYE_VIVIDPRO }, + + /* HP */ + { USB_VENDOR_HP, USB_PRODUCT_HP_3300C }, + { USB_VENDOR_HP, USB_PRODUCT_HP_4100C }, + { USB_VENDOR_HP, USB_PRODUCT_HP_4200C }, + { USB_VENDOR_HP, USB_PRODUCT_HP_S20 }, + { USB_VENDOR_HP, USB_PRODUCT_HP_5200C }, + #if 0 + { USB_VENDOR_HP, USB_PRODUCT_HP_5300C }, + #endif + { USB_VENDOR_HP, USB_PRODUCT_HP_6200C }, + { USB_VENDOR_HP, USB_PRODUCT_HP_6300C }, + + /* Avision */ + { USB_VENDOR_AVISION, USB_PRODUCT_AVISION_1200U }, + + #if 0 + /* Microtek */ + { USB_VENDOR_SCANLOGIC, USB_PRODUCT_SCANLOGIC_336CX }, + { USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_X6U }, + { USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_336CX }, + { USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_336CX2 }, + { USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_C6 }, + { USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_V6USL }, + { USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_V6USL2 }, + { USB_VENDOR_MICROTEK, USB_PRODUCT_MICROTEK_V6UL }, + #endif + + /* Mustek */ + { USB_VENDOR_MUSTEK, USB_PRODUCT_MUSTEK_1200CU }, + { USB_VENDOR_NATIONAL, USB_PRODUCT_NATIONAL_BEARPAW }, + { USB_VENDOR_NATIONAL, USB_PRODUCT_MUSTEK_600CU }, + { USB_VENDOR_NATIONAL, USB_PRODUCT_MUSTEK_1200USB }, + { USB_VENDOR_NATIONAL, USB_PRODUCT_MUSTEK_1200UB }, + + /* Primax */ + { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2X300 }, + { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2E300 }, + { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2300 }, + { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2E3002 }, + { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_9600 }, + { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_600U }, + { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_19200 }, + { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_1200U }, + { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G600 }, + { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_636I }, + { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2600 }, + { USB_VENDOR_PRIMAX, USB_PRODUCT_PRIMAX_G2E600 }, + + /* Epson */ + { USB_VENDOR_EPSON, USB_PRODUCT_EPSON_636 }, + { USB_VENDOR_EPSON, USB_PRODUCT_EPSON_610 }, + { USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1200 }, + { USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1600 }, + { USB_VENDOR_EPSON, USB_PRODUCT_EPSON_1640 }, + { USB_VENDOR_EPSON, USB_PRODUCT_EPSON_640U }, + + /* UMAX */ + { USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA1220U }, + { USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA1236U }, + { USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA2000U }, + { USB_VENDOR_UMAX, USB_PRODUCT_UMAX_ASTRA2200U }, + + /* Visioneer */ + { USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_5300 }, + { USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_7600 }, + { USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_6100 }, + { USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_6200 }, + { USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_8100 }, + { USB_VENDOR_VISIONEER, USB_PRODUCT_VISIONEER_8600 }, + + { 0, 0 } + }; + + #define USCANNER_BUFFERSIZE 1024 + + struct uscanner_softc { + USBBASEDEVICE sc_dev; /* base device */ + usbd_device_handle sc_udev; + usbd_interface_handle sc_iface; + + usbd_pipe_handle sc_bulkin_pipe; + int sc_bulkin; + usbd_xfer_handle sc_bulkin_xfer; + void *sc_bulkin_buffer; + int sc_bulkin_bufferlen; + int sc_bulkin_datalen; + + usbd_pipe_handle sc_bulkout_pipe; + int sc_bulkout; + usbd_xfer_handle sc_bulkout_xfer; + void *sc_bulkout_buffer; + int sc_bulkout_bufferlen; + int sc_bulkout_datalen; + + u_char sc_state; + #define USCANNER_OPEN 0x01 /* opened */ + + int sc_refcnt; + u_char sc_dying; + }; + + #if defined(__NetBSD__) || defined(__OpenBSD__) + cdev_decl(uscanner); + #elif defined(__FreeBSD__) + d_open_t uscanneropen; + d_close_t uscannerclose; + d_read_t uscannerread; + d_write_t uscannerwrite; + d_poll_t uscannerpoll; + + #define USCANNER_CDEV_MAJOR 156 + + Static struct cdevsw uscanner_cdevsw = { + /* open */ uscanneropen, + /* close */ uscannerclose, + /* read */ uscannerread, + /* write */ uscannerwrite, + /* ioctl */ noioctl, + /* poll */ uscannerpoll, + /* mmap */ nommap, + /* strategy */ nostrategy, + /* name */ "uscanner", + /* maj */ USCANNER_CDEV_MAJOR, + /* dump */ nodump, + /* psize */ nopsize, + /* flags */ 0, + /* bmaj */ -1 + }; + #endif + + Static int uscanner_do_read(struct uscanner_softc *, struct uio *, int); + Static int uscanner_do_write(struct uscanner_softc *, struct uio *, int); + Static void uscanner_do_close(struct uscanner_softc *); + + #define USCANNERUNIT(n) (minor(n)) + + USB_DECLARE_DRIVER(uscanner); + + USB_MATCH(uscanner) + { + USB_MATCH_START(uscanner, uaa); + int i; + + if (uaa->iface != NULL) + return UMATCH_NONE; + + for (i = 0; scanner_ids[i].vendor != 0; i++) { + if (scanner_ids[i].vendor == uaa->vendor && + scanner_ids[i].product == uaa->product) { + return (UMATCH_VENDOR_PRODUCT); + } + } + + return (UMATCH_NONE); + } + + USB_ATTACH(uscanner) + { + USB_ATTACH_START(uscanner, sc, uaa); + usb_interface_descriptor_t *id = 0; + usb_endpoint_descriptor_t *ed, *ed_bulkin = NULL, *ed_bulkout = NULL; + char devinfo[1024]; + int i; + usbd_status err; + + usbd_devinfo(uaa->device, 0, devinfo); + USB_ATTACH_SETUP; + printf("%s: %s\n", USBDEVNAME(sc->sc_dev), devinfo); + + sc->sc_udev = uaa->device; + + err = usbd_set_config_no(uaa->device, 1, 1); /* XXX */ + if (err) { + printf("%s: setting config no failed\n", + USBDEVNAME(sc->sc_dev)); + USB_ATTACH_ERROR_RETURN; + } + + /* XXX We only check the first interface */ + err = usbd_device2interface_handle(sc->sc_udev, 0, &sc->sc_iface); + if (!err && sc->sc_iface) + id = usbd_get_interface_descriptor(sc->sc_iface); + if (err || id == 0) { + printf("%s: could not get interface descriptor, err=%d,id=%p\n", + USBDEVNAME(sc->sc_dev), err, id); + USB_ATTACH_ERROR_RETURN; + } + + /* Find the two first bulk endpoints */ + for (i = 0 ; i < id->bNumEndpoints; i++) { + ed = usbd_interface2endpoint_descriptor(sc->sc_iface, i); + if (ed == 0) { + printf("%s: could not read endpoint descriptor\n", + USBDEVNAME(sc->sc_dev)); + USB_ATTACH_ERROR_RETURN; + } + + if (UE_GET_DIR(ed->bEndpointAddress) == UE_DIR_IN + && (ed->bmAttributes & UE_XFERTYPE) == UE_BULK) { + ed_bulkin = ed; + } else if (UE_GET_DIR(ed->bEndpointAddress) == UE_DIR_OUT + && (ed->bmAttributes & UE_XFERTYPE) == UE_BULK) { + ed_bulkout = ed; + } + + if (ed_bulkin && ed_bulkout) /* found all we need */ + break; + } + + /* Verify that we goething sensible */ + if (ed_bulkin == NULL || ed_bulkout == NULL) { + printf("%s: bulk-in and/or bulk-out endpoint not found\n", + USBDEVNAME(sc->sc_dev)); + USB_ATTACH_ERROR_RETURN; + } + + sc->sc_bulkin = ed_bulkin->bEndpointAddress; + sc->sc_bulkout = ed_bulkout->bEndpointAddress; + + #ifdef __FreeBSD__ + /* the main device, ctrl endpoint */ + make_dev(&uscanner_cdevsw, USBDEVUNIT(sc->sc_dev), + UID_ROOT, GID_OPERATOR, 0644, "%s", USBDEVNAME(sc->sc_dev)); + #endif + + usbd_add_drv_event(USB_EVENT_DRIVER_ATTACH, sc->sc_udev, + USBDEV(sc->sc_dev)); + + USB_ATTACH_SUCCESS_RETURN; + } + + int + uscanneropen(dev, flag, mode, p) + dev_t dev; + int flag; + int mode; + struct proc *p; + { + struct uscanner_softc *sc; + int unit = USCANNERUNIT(dev); + usbd_status err; + + USB_GET_SC_OPEN(uscanner, unit, sc); + + DPRINTFN(5, ("uscanneropen: flag=%d, mode=%d, unit=%d\n", + flag, mode, unit)); + + if (sc->sc_dying) + return (ENXIO); + + if (sc->sc_state & USCANNER_OPEN) + return (EBUSY); + + sc->sc_state |= USCANNER_OPEN; + + sc->sc_bulkin_buffer = malloc(USCANNER_BUFFERSIZE, M_USBDEV, M_WAITOK); + sc->sc_bulkout_buffer = malloc(USCANNER_BUFFERSIZE, M_USBDEV, M_WAITOK); + /* No need to check buffers for NULL since we have WAITOK */ + + sc->sc_bulkin_bufferlen = USCANNER_BUFFERSIZE; + sc->sc_bulkout_bufferlen = USCANNER_BUFFERSIZE; + + /* We have decided on which endpoints to use, now open the pipes */ + err = usbd_open_pipe(sc->sc_iface, sc->sc_bulkin, + USBD_EXCLUSIVE_USE, &sc->sc_bulkin_pipe); + if (err) { + printf("%s: cannot open bulk-in pipe (addr %d)\n", + USBDEVNAME(sc->sc_dev), sc->sc_bulkin); + uscanner_do_close(sc); + return (EIO); + } + err = usbd_open_pipe(sc->sc_iface, sc->sc_bulkout, + USBD_EXCLUSIVE_USE, &sc->sc_bulkout_pipe); + if (err) { + printf("%s: cannot open bulk-out pipe (addr %d)\n", + USBDEVNAME(sc->sc_dev), sc->sc_bulkout); + uscanner_do_close(sc); + return (EIO); + } + + sc->sc_bulkin_xfer = usbd_alloc_xfer(sc->sc_udev); + if (sc->sc_bulkin_xfer == NULL) { + uscanner_do_close(sc); + return (ENOMEM); + } + sc->sc_bulkout_xfer = usbd_alloc_xfer(sc->sc_udev); + if (sc->sc_bulkout_xfer == NULL) { + uscanner_do_close(sc); + return (ENOMEM); + } + + return (0); /* success */ + } + + int + uscannerclose(dev, flag, mode, p) + dev_t dev; + int flag; + int mode; + struct proc *p; + { + struct uscanner_softc *sc; + + USB_GET_SC(uscanner, USCANNERUNIT(dev), sc); + + DPRINTFN(5, ("uscannerclose: flag=%d, mode=%d, unit=%d\n", + flag, mode, USCANNERUNIT(dev))); + + #ifdef DIAGNOSTIC + if (!(sc->sc_state & USCANNER_OPEN)) { + printf("uscannerclose: not open\n"); + return (EINVAL); + } + #endif + + uscanner_do_close(sc); + + return (0); + } + + void + uscanner_do_close(struct uscanner_softc *sc) + { + if (sc->sc_bulkin_xfer) { + usbd_free_xfer(sc->sc_bulkin_xfer); + sc->sc_bulkin_xfer = NULL; + } + if (sc->sc_bulkout_xfer) { + usbd_free_xfer(sc->sc_bulkout_xfer); + sc->sc_bulkout_xfer = NULL; + } + + if (sc->sc_bulkin_pipe) { + usbd_abort_pipe(sc->sc_bulkin_pipe); + usbd_close_pipe(sc->sc_bulkin_pipe); + sc->sc_bulkin_pipe = NULL; + } + if (sc->sc_bulkout_pipe) { + usbd_abort_pipe(sc->sc_bulkout_pipe); + usbd_close_pipe(sc->sc_bulkout_pipe); + sc->sc_bulkout_pipe = NULL; + } + + if (sc->sc_bulkin_buffer) { + free(sc->sc_bulkin_buffer, M_USBDEV); + sc->sc_bulkin_buffer = NULL; + } + if (sc->sc_bulkout_buffer) { + free(sc->sc_bulkout_buffer, M_USBDEV); + sc->sc_bulkout_buffer = NULL; + } + + sc->sc_state &= ~USCANNER_OPEN; + } + + Static int + uscanner_do_read(sc, uio, flag) + struct uscanner_softc *sc; + struct uio *uio; + int flag; + { + u_int32_t n, tn; + usbd_status err; + int error = 0; + + DPRINTFN(5, ("%s: uscannerread\n", USBDEVNAME(sc->sc_dev))); + + if (sc->sc_dying) + return (EIO); + + while ((n = min(sc->sc_bulkin_bufferlen, uio->uio_resid)) != 0) { + DPRINTFN(1, ("uscannerread: start transfer %d bytes\n",n)); + tn = n; + + err = usbd_bulk_transfer( + sc->sc_bulkin_xfer, sc->sc_bulkin_pipe, + USBD_SHORT_XFER_OK, USBD_NO_TIMEOUT, + sc->sc_bulkin_buffer, &tn, + "uscannerrb"); + if (err) { + if (err == USBD_INTERRUPTED) + error = EINTR; + else if (err == USBD_TIMEOUT) + error = ETIMEDOUT; + else + error = EIO; + break; + } + DPRINTFN(1, ("uscannerread: got %d bytes\n", tn)); + error = uiomove(sc->sc_bulkin_buffer, tn, uio); + if (error || tn < n) + break; + } + + return (error); + } + + int + uscannerread(dev, uio, flag) + dev_t dev; + struct uio *uio; + int flag; + { + struct uscanner_softc *sc; + int error; + + USB_GET_SC(uscanner, USCANNERUNIT(dev), sc); + + sc->sc_refcnt++; + error = uscanner_do_read(sc, uio, flag); + if (--sc->sc_refcnt < 0) + usb_detach_wakeup(USBDEV(sc->sc_dev)); + + return (error); + } + + Static int + uscanner_do_write(sc, uio, flag) + struct uscanner_softc *sc; + struct uio *uio; + int flag; + { + u_int32_t n; + int error = 0; + usbd_status err; + + DPRINTFN(5, ("%s: uscanner_do_write\n", USBDEVNAME(sc->sc_dev))); + + if (sc->sc_dying) + return (EIO); + + while ((n = min(sc->sc_bulkout_bufferlen, uio->uio_resid)) != 0) { + error = uiomove(sc->sc_bulkout_buffer, n, uio); + if (error) + break; + DPRINTFN(1, ("uscanner_do_write: transfer %d bytes\n", n)); + err = usbd_bulk_transfer( + sc->sc_bulkout_xfer, sc->sc_bulkout_pipe, + 0, USBD_NO_TIMEOUT, + sc->sc_bulkout_buffer, &n, + "uscannerwb"); + if (err) { + if (err == USBD_INTERRUPTED) + error = EINTR; + else + error = EIO; + break; + } + } + + return (error); + } + + int + uscannerwrite(dev, uio, flag) + dev_t dev; + struct uio *uio; + int flag; + { + struct uscanner_softc *sc; + int error; + + USB_GET_SC(uscanner, USCANNERUNIT(dev), sc); + + sc->sc_refcnt++; + error = uscanner_do_write(sc, uio, flag); + if (--sc->sc_refcnt < 0) + usb_detach_wakeup(USBDEV(sc->sc_dev)); + return (error); + } + + #if defined(__NetBSD__) || defined(__OpenBSD__) + int + uscanner_activate(self, act) + device_ptr_t self; + enum devact act; + { + struct uscanner_softc *sc = (struct uscanner_softc *)self; + + switch (act) { + case DVACT_ACTIVATE: + return (EOPNOTSUPP); + break; + + case DVACT_DEACTIVATE: + sc->sc_dying = 1; + break; + } + return (0); + } + #endif + + USB_DETACH(uscanner) + { + USB_DETACH_START(uscanner, sc); + int s; + #if defined(__NetBSD__) || defined(__OpenBSD__) + int maj, mn; + #elif defined(__FreeBSD__) + dev_t dev; + struct vnode *vp; + #endif + + #if defined(__NetBSD__) || defined(__OpenBSD__) + DPRINTF(("uscanner_detach: sc=%p flags=%d\n", sc, flags)); + #elif defined(__FreeBSD__) + DPRINTF(("uscanner_detach: sc=%p\n", sc)); + #endif + + sc->sc_dying = 1; + + /* Abort all pipes. Causes processes waiting for transfer to wake. */ + if (sc->sc_bulkin_pipe) + usbd_abort_pipe(sc->sc_bulkin_pipe); + if (sc->sc_bulkout_pipe) + usbd_abort_pipe(sc->sc_bulkout_pipe); + + s = splusb(); + if (--sc->sc_refcnt >= 0) { + /* Wait for processes to go away. */ + usb_detach_wait(USBDEV(sc->sc_dev)); + } + splx(s); + + #if defined(__NetBSD__) || defined(__OpenBSD__) + /* locate the major number */ + for (maj = 0; maj < nchrdev; maj++) + if (cdevsw[maj].d_open == uscanneropen) + break; + + /* Nuke the vnodes for any open instances (calls close). */ + mn = self->dv_unit * USB_MAX_ENDPOINTS; + vdevgone(maj, mn, mn + USB_MAX_ENDPOINTS - 1, VCHR); + #elif defined(__FreeBSD__) + /* destroy the device for the control endpoint */ + dev = makedev(USCANNER_CDEV_MAJOR, USBDEVUNIT(sc->sc_dev)); + vp = SLIST_FIRST(&dev->si_hlist); + if (vp) + VOP_REVOKE(vp, REVOKEALL); + destroy_dev(dev); + #endif + + usbd_add_drv_event(USB_EVENT_DRIVER_DETACH, sc->sc_udev, + USBDEV(sc->sc_dev)); + + return (0); + } + + int + uscannerpoll(dev, events, p) + dev_t dev; + int events; + struct proc *p; + { + struct uscanner_softc *sc; + int revents = 0; + + USB_GET_SC(uscanner, USCANNERUNIT(dev), sc); + + if (sc->sc_dying) + return (EIO); + + /* + * We have no easy way of determining if a read will + * yield any data or a write will happen. + * Pretend they will. + */ + revents |= events & + (POLLIN | POLLRDNORM | POLLOUT | POLLWRNORM); + + return (revents); + } + + int + uscannerioctl(dev_t dev, u_long cmd, caddr_t addr, int flag, struct proc *p) + { + return (EINVAL); + } + + #if defined(__FreeBSD__) + DRIVER_MODULE(uscanner, uhub, uscanner_driver, uscanner_devclass, usbd_driver_load, 0); + #endif diff -r -C 3 -b -B -d -P -w /usr/tmp/usr/src/sys/arch/i386/i386/conf.c ./arch/i386/i386/conf.c *** /usr/tmp/usr/src/sys/arch/i386/i386/conf.c Mon Jul 31 03:56:52 2000 --- ./arch/i386/i386/conf.c Fri Feb 16 09:56:32 2001 *************** *** 217,222 **** --- 217,224 ---- cdev_decl(ucom); #include "urio.h" cdev_decl(urio); + #include "uscanner.h" /* cjb */ + cdev_decl(uscanner); /* cjb */ #include "vcoda.h" cdev_decl(vc_nb_); *************** *** 239,244 **** --- 241,247 ---- #include "scsibus.h" cdev_decl(scsibus); #include "bktr.h" + cdev_decl(bktr); #ifdef __I4B_IS_INTEGRATED /* open, close, ioctl */ *************** *** 390,395 **** --- 393,400 ---- cdev_notdef(), /* 72 */ cdev_tty_init(NCZ,cztty), /* 73: Cyclades-Z serial port */ cdev_ses_init(NSES,ses), /* 74: SCSI SES/SAF-TE */ + cdev_ugen_init(NUSCANNER,uscanner), /* 75: USB scanner */ /* cjb */ + }; int nchrdev = sizeof(cdevsw) / sizeof(cdevsw[0]); diff -r -C 3 -b -B -d -P -w /usr/tmp/usr/src/sys/dev/DEVNAMES ./dev/DEVNAMES *** /usr/tmp/usr/src/sys/dev/DEVNAMES Sat Jul 15 00:36:45 2000 --- ./dev/DEVNAMES Fri Feb 16 09:58:04 2001 *************** *** 4,10 **** # alphabetical order. New devices added to the system somewhere should first # be checked for uniqueness here and thereafter added to this file. # ! # a12c alpha a12dc alpha a2kbbc amiga --- 4,10 ---- # alphabetical order. New devices added to the system somewhere should first # be checked for uniqueness here and thereafter added to this file. # ! # modifed by cjb, 20010216 a12c alpha a12dc alpha a2kbbc amiga *************** *** 874,879 **** --- 874,880 ---- up vax upl MI urio MI + uscanner MI usb MI usbus MI Attribute ut vax