History log of /freebsd-9.3-release/sys/dev/usb/serial/uftdi.c
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 267654 19-Jun-2014 gjb

Copy stable/9 to releng/9.3 as part of the 9.3-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation

# 265050 28-Apr-2014 ian

MFC uftdi(4) driver changes...
r264010: Support speeds up to 12mbaud on newer chips.
r264018: Update list of supported FTDI chips.
r264031: Use 2K IO buffers for improved throughput.
r264149: Add ioctl(2) calls to access bitbang, MPSSE, CPU_FIFO,
and other modes.
r264800: Various fixes to r264149 pointed out by Coverity scan.


# 264329 10-Apr-2014 joerg

MFC r264084: make the Dresden Elektronik "USB Level Shifter Stick Low Cost"
known to the FTDI driver.


# 263166 14-Mar-2014 hselasky

MFC r227751, r238766, r241553, r242748, r244047, r245947, r246021, r247255,
r249039, r249204, r250848, r251351, r252295, r252498, r255123, r255238,
r256782, r257132, r257390 and r259675:
- Add various new USB ID's and quirks.
- Make sure the usbdevs mergeinfo gets recorded on the sys directory.


# 250288 05-May-2013 gavin

Merge r248175 from head:
Add support for Optoelectronics USB barcode readers to uftdi(4).
Add entries for other Optoelectronics devices to usbdevs.


# 248085 09-Mar-2013 marius

MFC: r227309 (partial)

Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs.

The SYSCTL_NODE macro defines a list that stores all child-elements of
that node. If there's no SYSCTL_DECL macro anywhere else, there's no
reason why it shouldn't be static.


# 247474 28-Feb-2013 hselasky

MFC r246753:
Add new USB ID to FTDI driver.

PR: kern/175893


# 240664 18-Sep-2012 hselasky

MFC r237079, r238078, r238779, r238803, r238804, r239055,
r239298, r239358 and r239567:

Add new USB ID's and some quirks.


# 240659 18-Sep-2012 hselasky

MFC r239178, r239179, r239180, r239181, r239182 and r239299:

Fix detach of USB serial devices so that it doesn't block
the USB explore thread forever. To accomplish this two new
functions have been added to the kernel, to claim and free
the newbus allocated softc.

This change is backwards API compatible, but not binary
compatible. The FreeBSD version has been bumped to force
a recompile of all kernel modules.

Discussed with: kib, ed, jhb


# 237380 21-Jun-2012 marius

MFC: r230242, r237102, r237236

- Add support for the FT2232 based egnite Turtelizer 2 JTAG/RS232 Adapter.
This includes adding support for skipping FTDI interfaces used for JTAG
leaving them for userland and just attaching to the RS232 half, similarly
to how the corresponding Linux drivers handles these kind of adapters.
While at it, sort uftdi_devs and return BUS_PROBE_SPECIFIC (because
uftdi_probe() alters the instance variables for better or worse as do
other probe routines of USB drivers) instead of 0.
- Remove duplicated entries for BeagleBone.
- Use DEVMETHOD_END.
- Use NULL instead of 0 for pointers.
- Remove some stray lines.


# 237188 17-Jun-2012 marius

MFC: r230179

BeagleBone uses an FTDI chip with
an altered Product ID.


# 229080 31-Dec-2011 hselasky

MFC r227461:
Style change.
Use memxxx() functions instead of bxxx() functions.


# 225736 22-Sep-2011 kensmith

Copy head to stable/9 as part of 9.0-RELEASE release cycle.

Approved by: re (implicit)


# 223486 24-Jun-2011 hselasky

- Move all USB device ID arrays into so-called sections,
sorted according to the mode which they support:
host, device or dual mode
- Add generic tool to extract these data:
tools/bus_autoconf

Discussed with: imp
Suggested by: Robert Millan <rmh@debian.org>
PR: misc/157903
MFC after: 14 days


# 217265 11-Jan-2011 jhb

Remove unneeded includes of <sys/linker_set.h>. Other headers that use
it internally contain nested includes.

Reviewed by: bde


# 216045 29-Nov-2010 gavin

Support the Falcom Twist USB GSM/GPRS modem in uftdi(4)

PR: usb/151862
Submitted by: Alessandro de Manzano <demanzano dqmicro.it>
MFC after: 1 week


# 214843 05-Nov-2010 n_hibma

Implement ucom_set_pnpinfo_usb() providing ttyname and port number
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


# 214761 03-Nov-2010 n_hibma

- Simplify the way unit/subunit allocation is done in ucom.
- 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


# 213876 14-Oct-2010 hselasky

Add more USB device IDs to supported list of devices.

Submitted by: Nick Hibma
PR: usb/149900
Approved by: thompsa (mentor)


# 212122 01-Sep-2010 thompsa

Add missing MODULE_VERSION() definitions, this resolves problems around
duplicate module loads.

PR: usb/125736
Submitted by: danger, mm
Reviewed by: hselasky


# 210556 28-Jul-2010 gavin

Support the Pyramid KBS USB LCD under uftdi(4)

PR: usb/129758
Submitted by: joao lima <jlima visionware.pt>
MFC after: 1 week


# 208016 12-May-2010 thompsa

Add new FTDI USB device ID.

PR: kern/146483
Submitted by: Andre Albsmeier


# 207077 22-Apr-2010 thompsa

Change USB_DEBUG to #ifdef and allow it to be turned off. Previously this had
the illusion of a tunable setting but was always turned on regardless.

MFC after: 1 week


# 205029 11-Mar-2010 thompsa

Use wMaxPacketSize for the uftdi input buffer size.

Submitted by: Hans Petter Selasky


# 204632 03-Mar-2010 joel

The NetBSD Foundation has granted permission to remove clause 3 and 4 from
their software.

Obtained from: NetBSD


# 203906 14-Feb-2010 thompsa

Add device ID for the FTDI 4232H.

PR: usb/143832
Submitted by: UEMURA Tetsuya


# 201028 26-Dec-2009 thompsa

Use macros to strip off USB_VENDOR_ and USB_PRODUCT_ from some id tables to make
them more compact and readable.


# 200826 22-Dec-2009 thompsa

add new ID to UFTDI driver.

Submitted by: YAMAMOTO, Shigeru


# 200308 09-Dec-2009 thompsa

Fix hardware issue with FTDI chips: avoid sending a zero length packet due to
hardware sending garbage on ZLPs.

Reported by: Corey Smith
Submitted by: HPS


# 200306 09-Dec-2009 thompsa

Add new device ids.

PR: usb/140951, usb/140923
Submitted by: Romain Tartiere, Brett Glass


# 199816 25-Nov-2009 thompsa

Remove overuse of exclamation marks in kernel printfs, there mere fact a
message has been printed is enough to get someones attention. Also remove the
line number for DPRINTF/DPRINTFN, it already prints the funtion name and a
unique message.


# 197572 28-Sep-2009 thompsa

Add new FTDI IDs.

Submitted by: Maks Verver, Arrigo Marchiori


# 197570 28-Sep-2009 thompsa

Add experimental support for usb serial console and polled mode during DDB.

Submitted by: Hans Petter Selasky


# 196219 14-Aug-2009 jhb

Purge mergeinfo from files that were temporarily renamed while USB2 was
imported into the tree alongside USB.

Approved by: re (mergeinfo blanket)


# 194677 23-Jun-2009 thompsa

- Make struct usb_xfer opaque so that drivers can not access the internals
- Reduce the number of headers needed for a usb driver, the common case is just usb.h and usbdi.h


# 194228 14-Jun-2009 thompsa

s/usb2_/usb_|usbd_/ on all function names for the USB stack.


# 193045 29-May-2009 thompsa

s/usb2_/usb_/ on all typedefs for the USB stack.


# 192984 28-May-2009 thompsa

s/usb2_/usb_/ on all C structs for the USB stack.


# 192502 20-May-2009 thompsa

Rename the usb sysctl tree from hw.usb2.* back to hw.usb.*.

Submitted by: Hans Petter Selasky


# 192499 20-May-2009 thompsa

- rename usb2_mode to usb_mode [1]
- change variable types to use the enum

Submitted by: Hans Petter Selasky [1]


# 191346 21-Apr-2009 takawata

Add another FTDI serial converter.


# 190749 05-Apr-2009 piso

Remove pointeless mergeinfo that crept in from r190633.


# 190734 05-Apr-2009 thompsa

MFp4 //depot/projects/usb@159909

- make usb2_power_mask_t 16-bit
- remove "usb2_config_sub" structure from "usb2_config". To compensate for this
"usb2_config" has a new field called "usb_mode" which select for which mode
the current xfer entry is active. Options are: a) Device mode only b) Host
mode only (default-by-zero) c) Both modes. This change was scripted using
the following sed script: "s/\.mh\././g".
- the standard packet size table in "usb_transfer.c" is now a function, hence
the code for the function uses less memory than the table itself.

Submitted by: Hans Petter Selasky


# 190633 01-Apr-2009 piso

Implement an ipfw action to reassemble ip packets: reass.


# 190581 30-Mar-2009 mav

Integrate user/mav/ata branch:

Add ch_suspend/ch_resume methods for PCI controllers and implement them
for AHCI. Refactor AHCI channel initialization according to it.

Fix Port Multipliers operation. It is far from perfect yet, but works now.
Tested with JMicron JMB363 AHCI + SiI 3726 PMP pair.
Previous version was also tested with SiI 4726 PMP.

Hardware sponsored by: Vitsch Electronics / VEHosting.nl


# 189449 06-Mar-2009 joerg

Add a couple of more things to the FTDI driver I came across:

. Dresden Elektronik "Wireless Handheld Terminal"
. Atmel STK541 "Zigbee Controller"

MFC after: 1 week


# 189275 02-Mar-2009 thompsa

Rename the ushub device class back to uhub as it was in the old usb stack,
moused(8) looks for "uhub/ums" to decide if needs to load the module.

Reported by: Garrett Cooper


# 189265 02-Mar-2009 thompsa

Move the serial drivers from Giant to using their own mutexs.

Tested with: u3g, ubser, uplcom


# 188942 23-Feb-2009 thompsa

Move the new USB stack into its new home.


# 188746 18-Feb-2009 thompsa

Switch over to usbdevs.h generated at compile time.


# 188413 09-Feb-2009 thompsa

MFp4 //depot/projects/usb; 157069, 157136, 157143, 157145, 157429

- USB serial drivers cleanup, factor out code
- Simplify line state programming
- Integrate uslcom from old USB stack

Submitted by: Hans Petter Selasky


# 187994 01-Feb-2009 alfred

src/usr.bin/usbhidaction/usbhidaction.c
src/usr.bin/usbhidctl/usbhid.c
src/sys/dev/usb2/include/usb2_hid.h
src/sys/dev/usb2/input/uhid2.c
src/lib/libusbhid/Makefile
src/lib/libusbhid/descr.c
src/lib/libusbhid/descr_compat.c
src/lib/libusbhid/usbhid.3
src/lib/libusbhid/usbhid.h
src/lib/libusbhid/usbvar.h

Patches to make libusbhid and HID userland utilities compatible with
the new USB stack. All HID ioctls should go through the libusbhid
library to ensure compatibility. I have found at least one piece of
software in /usr/ports which needs to get updated before USB HID
devices will work. This is the X joystick input driver.

Reported and tested by:

Daichi GOTO and Masanori OZAWA.

src/sys/dev/usb2/core/usb2_process.c

Correct USB process names.

Reported by:

Andre Guibert de Bruet

src/sys/dev/usb2/serial/uftdi2.c

Integrate changes from old USB stack.

Submitted by: hps


# 187970 31-Jan-2009 thompsa

Remove check for null softc in attach, it can never happen.


# 187259 15-Jan-2009 thompsa

Name the items in the xfer arrays so they can be identified throughout the
code.


# 187176 13-Jan-2009 thompsa

MFp4: //depot/projects/usb@155917

Remove dependancy towards the USB config thread in
the USB serial core. Use USB process msignalling
instead. Saves a little memory and hopefully makes
the code more understandable.

Submitted by: Hans Petter Selasky


# 186730 03-Jan-2009 alfred

Sync with usb4bsd:

src/lib/libusb20/libusb20_desc.c

Make "libusb20_desc_foreach()" more readable.

src/sys/dev/usb2/controller/*.[ch]
src/sys/dev/usb2/core/*.[ch]

Implement support for USB power save for all HC's.

Implement support for Big-endian EHCI.

Move Huawei quirks back into "u3g" driver.

Improve device enumeration.

src/sys/dev/usb2/ethernet/*[ch]

Patches for supporting new AXE Gigabit chipset.

src/sys/dev/usb2/serial/*[ch]

Fix IOCTL return code.

src/sys/dev/usb2/wlan/*[ch]

Sync with old USB stack.

Submitted by: hps


# 185950 11-Dec-2008 thompsa

Remove superfluous return statements from the end of void functions.


# 185948 11-Dec-2008 thompsa

Format and wrap function declarations.


# 184736 06-Nov-2008 imp

Bring in http://perforce.freebsd.org/chv.cgi?CH=152584 from hps.

Submitted by: hps


# 184610 04-Nov-2008 alfred

Bring in USB4BSD, Hans Petter Selasky rework of the USB stack
that includes significant features and SMP safety.

This commit includes a more or less complete rewrite of the *BSD USB
stack, including Host Controller and Device Controller drivers and
updating all existing USB drivers to use the new USB API:

1) A brief feature list:

- A new and mutex enabled USB API.

- Many USB drivers are now running Giant free.

- Linux USB kernel compatibility layer.

- New UGEN backend and libusb library, finally solves the "driver
unloading" problem. The new BSD licensed libusb20 library is fully
compatible with libusb-0.1.12 from sourceforge.

- New "usbconfig" utility, for easy configuration of USB.

- Full support for Split transactions, which means you can use your
full speed USB audio device on a high speed USB HUB.

- Full support for HS ISOC transactions, which makes writing drivers
for various HS webcams possible, for example.

- Full support for USB on embedded platforms, mostly cache flushing
and buffer invalidating stuff.

- Safer parsing of USB descriptors.

- Autodetect of annoying USB install disks.

- Support for USB device side mode, also called USB gadget mode,
using the same API like the USB host side. In other words the new
USB stack is symmetric with regard to host and device side.

- Support for USB transfers like I/O vectors, means more throughput
and less interrupts.

- ... see the FreeBSD quarterly status reports under "USB project"

2) To enable the driver in the default kernel build:

2.a) Remove all existing USB device options from your kernel config
file.

2.b) Add the following USB device options to your kernel configuration
file:

# USB core support
device usb2_core

# USB controller support
device usb2_controller
device usb2_controller_ehci
device usb2_controller_ohci
device usb2_controller_uhci

# USB mass storage support
device usb2_storage
device usb2_storage_mass

# USB ethernet support, requires miibus
device usb2_ethernet
device usb2_ethernet_aue
device usb2_ethernet_axe
device usb2_ethernet_cdce
device usb2_ethernet_cue
device usb2_ethernet_kue
device usb2_ethernet_rue
device usb2_ethernet_dav

# USB wireless LAN support
device usb2_wlan
device usb2_wlan_rum
device usb2_wlan_ral
device usb2_wlan_zyd

# USB serial device support
device usb2_serial
device usb2_serial_ark
device usb2_serial_bsa
device usb2_serial_bser
device usb2_serial_chcom
device usb2_serial_cycom
device usb2_serial_foma
device usb2_serial_ftdi
device usb2_serial_gensa
device usb2_serial_ipaq
device usb2_serial_lpt
device usb2_serial_mct
device usb2_serial_modem
device usb2_serial_moscom
device usb2_serial_plcom
device usb2_serial_visor
device usb2_serial_vscom

# USB bluetooth support
device usb2_bluetooth
device usb2_bluetooth_ng

# USB input device support
device usb2_input
device usb2_input_hid
device usb2_input_kbd
device usb2_input_ms

# USB sound and MIDI device support
device usb2_sound

2) To enable the driver at runtime:

2.a) Unload all existing USB modules. If USB is compiled into the
kernel then you might have to build a new kernel.

2.b) Load the "usb2_xxx.ko" modules under /boot/kernel having the same
base name like the kernel device option.

Submitted by: Hans Petter Selasky hselasky at c2i dot net
Reviewed by: imp, alfred