summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb
Commit message (Collapse)AuthorAgeFilesLines
* Support the Uniform Industrial Corp (UIC) MSR206 Magnetic Card Reader.gavin2011-01-062-0/+2
| | | | MFC after: 1 week
* r184610 changed the way how TX frames are handled on AX88178 andyongari2010-12-081-42/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AX88772 controllers. ASIX added a new feature for AX88178/AX88772 controllers which allows combining multiple TX frames into a single big frame. This was to overcome one of USB limitation where it can't generate more than 8k interrupts/sec which in turn means USB ethernet controllers can not send more than 8k packets per second. Using ASIX's feature greatly enhanced TX performance(more than 3~4 times) compared to 7.x driver. However it seems r184610 removed boundary checking for buffered frames which in turn caused instability issues under certain conditions. In addition, using ASIX's feature triggered another issue which made USB controller hang under certain conditions. Restarting ethernet controller didn't help under this hang condition and unplugging and replugging the controller was the only solution. I believe there is a silicon bug in TX frame combining feature on AX88178/AX88772 controllers. To address these issues, reintroduce the boundary checking for both AX88178 and AX88772 after copying a frame to USB buffer and do not use ASIX's multiple frame combining feature. Instead, use USB controller's multi-frame transmit capability to enhance TX performance as suggested by Hans[1]. This should fix a long standing axe(4) instability issues reported on AX88772 and AX88178 controllers. While I'm here remove unnecessary TX frame length check since upper stack always guarantee the size of a frame to be less than MCLBYTES. Special thanks to Derrick Brashear who tried numerous patches during last 4 months and waited real fix with patience. Without this enthusiastic support, patience and H/W donation I couldn't fix it since I was not able to trigger the issue on my box. Suggested by: hselasky [1] Tested by: Derrick Brashear (shadow <> gmail dot com> H/W donated by: Derrick Brashear (shadow <> gmail dot com> PR: usb/140883
* Introduces IFF_CANTCONFIG interface flag to point that the interfaceweongyo2010-12-071-0/+1
| | | | | | | | | isn't configurable in a meaningful way. This is for ifconfig(8) or other tools not to change code whenever IFT_USB-like interfaces are registered at the interface list. Reviewed by: brooks No objections: gavin, jkim
* Re-add a status check which sneaked out during r214804.hselasky2010-12-071-0/+4
| | | | | | | | This change can fix some USB error messages showing up during bootup. MFC after: 3 days Approved by: thompsa (mentor)
* Explicitly UP and DOWN the usbus interfaces (IFT_USB) when it's attachedweongyo2010-12-011-0/+2
| | | | | | | | | | or detached. Normally it should be changed through user land ioctl(2) system calls but it looks there's no apps for USB and no need. With this patch, libpcap would detect the usbus interfaces correctly and tcpdump(1) could dump the USB packets into PCAP format with -w option. However it couldn't print the output to console because there's no printer-routine at tcpdump(1).
* We need to define a cdev variable associated with each USB device,hselasky2010-11-301-0/+4
| | | | | | | | | | | hence existing applications like webcamd are expecting that. This problem was introduced by SVN change 214221 where cdev= was replaced by ugen= by accident. Solve this problem by redefining cdev= in devd notifications. MFC after 3 days. Approved by: thompsa (mentor)
* Add new device ids.sanpei2010-11-292-0/+2
| | | | | | Buffalo (Melco Inc.) WLI-UC-G PR: 141777
* Support the Falcom Twist USB GSM/GPRS modem in uftdi(4)gavin2010-11-292-0/+4
| | | | | | PR: usb/151862 Submitted by: Alessandro de Manzano <demanzano dqmicro.it> MFC after: 1 week
* Add initial AX88772A support.yongari2010-11-282-4/+75
| | | | H/W donated by: Derrick Brashear (shadow <> gmail dot com)
* Introduce new macro AXE_IS_178_FAMILY and AXE_IS_772. Includeyongari2010-11-282-13/+26
| | | | | AX88772A and AX88772B for future extension. While here add TX buffer size for 178 family controllers.
* Do full controller initialization in axe_reset() for controllersyongari2010-11-281-0/+6
| | | | | that require special configuration from EEPROM. This will put controllers into known sane state.
* Make sure to change to currently selected media.yongari2010-11-281-0/+2
|
* Do not reinitialize controller if it's already running.yongari2010-11-281-0/+3
|
* Move axe_reset() to axe_init().yongari2010-11-281-2/+2
|
* Apply GPIO configuration for all CICADA PHYs.yongari2010-11-281-2/+5
| | | | While I'm here show selected phymode to ease of debugging.
* Removes a unused function `usb_bus_find'.weongyo2010-11-252-27/+0
|
* Handles the unit number correctly that the previous commit had a problemweongyo2010-11-252-6/+5
| | | | | | | | (wrong unit number for a host controller) when the module is load / unloaded repeatly. Attaching the USB pf is moved to usbus device's attach. Pointed by: yongari
* Assigning the unit number for each interfaces could not use ubus->parentweongyo2010-11-251-1/+2
| | | | | because it could differ depending on the host controller type. It could lead the duplicate unit number assignment.
* Fixes a compiler warning when it's compiled with INVARIANTS.weongyo2010-11-241-1/+1
| | | | Pointy hat to: me
* Removes all duplicated code with BPF that it's greatly simplified andweongyo2010-11-244-1877/+27
| | | | | | | take all benefits whenever BPF code is improved. Pointed by: jkim Reviewed by: thompsa
* Fixes a kernel crash when usb module is reloaded after unload that itweongyo2010-11-231-2/+16
| | | | | | | didn't destroy the cdev properly. Pointy hat to: me Reported by: Brandon Gooch <jamesbrandongooch at gmail dot com>, jkim
* Make the Huawei E1820 work (Emile Coetzee).n_hibma2010-11-232-6/+6
| | | | | | | | Shorten the descriptive strings for Huawei devices. The vendor or operator name should not be included in the device name. Submitted by: Emile Coetzee MFC after: 3 days
* Adds a USB packet filter feature to the stack that it could captureweongyo2010-11-226-0/+2224
| | | | | | | | | packets which go through each USB host controllers. Its implementations are almost based on BPF code and very similar with it except it's little bit customized for USB packet only. The userland program usbdump(8) would be committed soon. Discussed with: hps, thompsa, yongari
* Remove unused struct rue_typekevlo2010-11-151-5/+0
|
* Add the Sierra MC8700.thompsa2010-11-152-0/+2
|
* Add a special INIT product ID used by some models of the HUAWEIdd2010-11-142-0/+2
| | | | | | | | | K3765 datacard. After ejecting this device, it reappears using the normal K3765 ID. It does not switch automatically Reviewed by: n_hibma Obtained from: OpenBSD MFC after: 2 weeks
* Add the switch config for the XS Stick.n_hibma2010-11-132-1/+6
| | | | | It speaks AT commands on 2 out of 3 serial ports, but it has not been verified to work at all speaking PPP yet.
* Fix compiler warnings.hselasky2010-11-131-3/+3
| | | | | Submitted by: Alexander Best (arundel) Approved by: thompsa (mentor)
* Add a man page for usb_quirk module, plus references in other man pages,n_hibma2010-11-101-4/+7
| | | | | | | | | | | | and updated comments in the usb_quirk.h header file. The main purpose of this is to expose the quirks for ejecting 3G modules. usb_modeswitch in Linux does a great job of collecting information on these, and with the quirks module people can try out the modeswitch config file entries on FreeBSD, hence the SCSI strings in the man page. MFC after: 2 weeks
* Allow specification of eject method through quirks, so people can testn_hibma2010-11-103-29/+77
| | | | drive eject methods before supplying patches.
* Bugfix: Set the bit that marks a device number in use.n_hibma2010-11-071-2/+5
| | | | | | This would cause a panic when disconnecting the second serial device. Submitted by: Lucius Windschuh
* Instead of using the AMRR ratectl algo as default for drivers which havebschmidt2010-11-064-5/+1
| | | | | | | | | | | | | | | the IEEE80211_C_RATECTL flag set, default to NONE for all drivers. Only if a driver calls ieee80211_ratectl_init() check if the NONE algo is still selected and try to use AMRR in that case. Drivers are still free to use any other algo by calling ieee80211_ratectl_set() prior to the ieee80211_ratectl_init() call. After this change it is now safe to assume that a ratectl algo is always available and selected, which renders the IEEE80211_C_RATECTL flag pretty much useless. Therefore revert r211314 and 211546. Reviewed by: rpaulo MFC after: 2 weeks
* Bugfix: In rev 213509 Alexander committed a duplicate ID for ZTE STORn_hibma2010-11-052-8/+13
| | | | | | | | | | | | | | | based devices (QUALCOMMINC 0x2000). He made it use SCSI eject instead of ZTE STOR eject. This prevented my ZTE MF626 dongle from switching. - Apply both eject methods for ZTE STOR based devices. Works on my as well as mav's device. - Remove the duplicate. - Sort the usbdevs entries for Qualcomm so this won't happen again. - Add bootverbose message displaying the fact that we are ejecting (and how). Reviewed by: mav MFC after: 2 weeks
* Implement ucom_set_pnpinfo_usb() providing ttyname and port numbern_hibma2010-11-0520-3/+60
| | | | | | | | | | | | | | information through devd. My E220 now produces the notification (1 line): +u3g0 at bus=1 hubaddr=1 port=0 devaddr=2 interface=0 \ vendor=0x12d1 product=0x1003 devclass=0x00 devsubclass=0x00 \ sernum="" release=0x0000 intclass=0xff intsubclass=0xff \ ttyname=U0 ttyports=2 on uhub0 Note: serial/ufoma and net/uhso still provide port number and tty name (uhso only) information through sysctls, which should now be removed. Reviewed by: hpselasky
* - Remove an unused entry from the softc (only used in a debugging printf).n_hibma2010-11-052-6/+5
| | | | | | | - Fix the loop count on detach (causing a panic on detaching a serial dongle). - Increase a buffer in case some driver want extra long tty device names (postfixing the purpose of the tty for example, e.g. u3g.ppp).
* Bugfix: Move the 'at <location string' to the beginning of the attachn_hibma2010-11-051-4/+3
| | | | | | | | | notification. devd would stop evaluating at 'at' (not '<k>=<v>') and hence prevent 'port=X' (and 'bus=<"on" string>) from making it into the environment for the devd action. Reviewed by: hselasky MFC after: 2 weeks
* Don't terminate the notification with \n. This is done inn_hibma2010-11-041-2/+2
| | | | usb_device.c:devctl_notify_f().
* Add code to warm reset a USB 3.0 port.hselasky2010-11-042-4/+99
| | | | Approved by: thompsa (mentor)
* Add new USB quirk.hselasky2010-11-042-1/+2
| | | | | Submitted by: Dmitry Luhtionov Approved by: thompsa (mentor)
* - Simplify the way unit/subunit allocation is done in ucom.n_hibma2010-11-0320-157/+119
| | | | | | | | | | | | | | | | | | - hw.usb.ucom.cons_unit is now split into hw.usb.ucom.cons_unit/...cons_subunit. Note: The tunable/sysctl hw.usb.ucom.cons_unit needs to be reviewed if a) a console was defined a USB serial devices, and a USB device with more than 1 subunit is present, and this device is attached before the device functioning as a console or b) a console was defined on a USB device with more than 1 subunit Reviewed by: hps MFC after: 2 weeks
* Clean up leftover USB device ID after r213856. This fixes:hselasky2010-11-031-3/+0
| | | | | | | options USB_VERBOSE Submitted by: Lucius Windschuh Approved by: thompsa (mentor)
* Add support for setting per-interface PnP information.hselasky2010-10-273-6/+53
| | | | | Submitted by: Nick Hibma Approved by: thompsa (mentor)
* The EHCI_CAPLENGTH and EHCI_HCIVERSION registers are actually sub-registersnwhitehorn2010-10-252-5/+9
| | | | | | | within the first 4 bytes of the EHCI memory space. For controllers that use big-endian MMIO, reading them with 1- and 2-byte reads would then return the wrong values. Instead, read the combined register with a 4-byte read and mask out the interesting quantities.
* Add possibility to generate devctl notifications regardless of UGEN presence.hselasky2010-10-222-15/+47
| | | | | Submitted by: Nick Hibma Approved by: thompsa (mentor)
* Allow umass to use bigger transactions for USB 3.0 devices. It is lessmav2010-10-161-0/+1
| | | | | | | | | | | | important for USB 2.0 devices and some of them reported to have problems with large transactions. But USB 3.0 benchmarks show that limited number of transactions per second on USB makes impossible to reach high transfer speeds without using bigger transactions. On my tests this change allows to read up to 220MB/s from USB-attached SSD (at block size of 256-512KB), comparing to only 113MB/s without it. Reviewed by: hselasky
* Converted the remainder of the NIC drivers to use the mii_attach()marius2010-10-151-3/+4
| | | | | | | introduced in r213878 instead of mii_phy_probe(). Unlike r213893 these are only straight forward conversions though. Reviewed by: yongari
* Add new USB device IDs to the list of supported devices.hselasky2010-10-141-0/+2
| | | | | PR: usb/151043 Approved by: thompsa (mentor)
* - Add more USB devices to usbdevs and rename some previously unknown ones.hselasky2010-10-142-0/+3
| | | | | | | | - Add more USB mass storage quirks. Submitted by: Dmitry Luhtionov PR: usb/149934, usb/143045 Approved by: thompsa (mentor)
* Add more USB device IDs to supported list of devices.hselasky2010-10-141-0/+2
| | | | | | Submitted by: Nick Hibma PR: usb/149900 Approved by: thompsa (mentor)
* Fix forwarding of Line Register Status changes to TTY layer.hselasky2010-10-141-0/+26
| | | | | PR: usb/149675 Approved by: thompsa (mentor)
OpenPOWER on IntegriCloud