|
@@ -17,226 +17,8 @@
|
|
* See http://ftdi-usb-sio.sourceforge.net for upto date testing info
|
|
* See http://ftdi-usb-sio.sourceforge.net for upto date testing info
|
|
* and extra documentation
|
|
* and extra documentation
|
|
*
|
|
*
|
|
- * (21/Jul/2004) Ian Abbott
|
|
|
|
- * Incorporated Steven Turner's code to add support for the FT2232C chip.
|
|
|
|
- * The prelimilary port to the 2.6 kernel was by Rus V. Brushkoff. I have
|
|
|
|
- * fixed a couple of things.
|
|
|
|
- *
|
|
|
|
- * (27/May/2004) Ian Abbott
|
|
|
|
- * Improved throttling code, mostly stolen from the WhiteHEAT driver.
|
|
|
|
- *
|
|
|
|
- * (26/Mar/2004) Jan Capek
|
|
|
|
- * Added PID's for ICD-U20/ICD-U40 - incircuit PIC debuggers from CCS Inc.
|
|
|
|
- *
|
|
|
|
- * (09/Feb/2004) Ian Abbott
|
|
|
|
- * Changed full name of USB-UIRT device to avoid "/" character.
|
|
|
|
- * Added FTDI's alternate PID (0x6006) for FT232/245 devices.
|
|
|
|
- * Added PID for "ELV USB Module UO100" from Stefan Frings.
|
|
|
|
- *
|
|
|
|
- * (21/Oct/2003) Ian Abbott
|
|
|
|
- * Renamed some VID/PID macros for Matrix Orbital and Perle Systems
|
|
|
|
- * devices. Removed Matrix Orbital and Perle Systems devices from the
|
|
|
|
- * 8U232AM device table, but left them in the FT232BM table, as they are
|
|
|
|
- * known to use only FT232BM.
|
|
|
|
- *
|
|
|
|
- * (17/Oct/2003) Scott Allen
|
|
|
|
- * Added vid/pid for Perle Systems UltraPort USB serial converters
|
|
|
|
- *
|
|
|
|
- * (21/Sep/2003) Ian Abbott
|
|
|
|
- * Added VID/PID for Omnidirectional Control Technology US101 USB to
|
|
|
|
- * RS-232 adapter (also rebadged as Dick Smith Electronics XH6381).
|
|
|
|
- * VID/PID supplied by Donald Gordon.
|
|
|
|
- *
|
|
|
|
- * (19/Aug/2003) Ian Abbott
|
|
|
|
- * Freed urb's transfer buffer in write bulk callback.
|
|
|
|
- * Omitted some paranoid checks in write bulk callback that don't matter.
|
|
|
|
- * Scheduled work in write bulk callback regardless of port's open count.
|
|
|
|
- *
|
|
|
|
- * (05/Aug/2003) Ian Abbott
|
|
|
|
- * Added VID/PID for ID TECH IDT1221U USB to RS-232 adapter.
|
|
|
|
- * VID/PID provided by Steve Briggs.
|
|
|
|
- *
|
|
|
|
- * (23/Jul/2003) Ian Abbott
|
|
|
|
- * Added PIDs for CrystalFontz 547, 633, 631, 635, 640 and 640 from
|
|
|
|
- * Wayne Wylupski.
|
|
|
|
- *
|
|
|
|
- * (10/Jul/2003) David Glance
|
|
|
|
- * Added PID for DSS-20 SyncStation cradle for Sony-Ericsson P800.
|
|
|
|
- *
|
|
|
|
- * (27/Jun/2003) Ian Abbott
|
|
|
|
- * Reworked the urb handling logic. We have no more pool, but dynamically
|
|
|
|
- * allocate the urb and the transfer buffer on the fly. In testing this
|
|
|
|
- * does not incure any measurable overhead. This also relies on the fact
|
|
|
|
- * that we have proper reference counting logic for urbs. I nicked this
|
|
|
|
- * from Greg KH's Visor driver.
|
|
|
|
- *
|
|
|
|
- * (23/Jun/2003) Ian Abbott
|
|
|
|
- * Reduced flip buffer pushes and corrected a data length test in
|
|
|
|
- * ftdi_read_bulk_callback.
|
|
|
|
- * Defererence pointers after any paranoid checks, not before.
|
|
|
|
- *
|
|
|
|
- * (21/Jun/2003) Erik Nygren
|
|
|
|
- * Added support for Home Electronics Tira-1 IR transceiver using FT232BM chip.
|
|
|
|
- * See <http://www.home-electro.com/tira1.htm>. Only operates properly
|
|
|
|
- * at 100000 and RTS-CTS, so set custom divisor mode on startup.
|
|
|
|
- * Also force the Tira-1 and USB-UIRT to only use their custom baud rates.
|
|
|
|
- *
|
|
|
|
- * (18/Jun/2003) Ian Abbott
|
|
|
|
- * Added Device ID of the USB relais from Rudolf Gugler (backported from
|
|
|
|
- * Philipp Gühring's patch for 2.5.x kernel).
|
|
|
|
- * Moved read transfer buffer reallocation into startup function.
|
|
|
|
- * Free existing write urb and transfer buffer in startup function.
|
|
|
|
- * Only use urbs in write urb pool that were successfully allocated.
|
|
|
|
- * Moved some constant macros out of functions.
|
|
|
|
- * Minor whitespace and comment changes.
|
|
|
|
- *
|
|
|
|
- * (12/Jun/2003) David Norwood
|
|
|
|
- * Added support for USB-UIRT IR transceiver using 8U232AM chip.
|
|
|
|
- * See <http://home.earthlink.net/~jrhees/USBUIRT/index.htm>. Only
|
|
|
|
- * operates properly at 312500, so set custom divisor mode on startup.
|
|
|
|
- *
|
|
|
|
- * (12/Jun/2003) Ian Abbott
|
|
|
|
- * Added Sealevel SeaLINK+ 210x, 220x, 240x, 280x vid/pids from Tuan Hoang
|
|
|
|
- * - I've eliminated some that don't seem to exist!
|
|
|
|
- * Added Home Electronics Tira-1 IR transceiver pid from Chris Horn
|
|
|
|
- * Some whitespace/coding-style cleanups
|
|
|
|
- *
|
|
|
|
- * (11/Jun/2003) Ian Abbott
|
|
|
|
- * Fixed unsafe spinlock usage in ftdi_write
|
|
|
|
- *
|
|
|
|
- * (24/Feb/2003) Richard Shooter
|
|
|
|
- * Increase read buffer size to improve read speeds at higher baud rates
|
|
|
|
- * (specifically tested with up to 1Mb/sec at 1.5M baud)
|
|
|
|
- *
|
|
|
|
- * (23/Feb/2003) John Wilkins
|
|
|
|
- * Added Xon/xoff flow control (activating support in the ftdi device)
|
|
|
|
- * Added vid/pid for Videonetworks/Homechoice (UK ISP)
|
|
|
|
- *
|
|
|
|
- * (23/Feb/2003) Bill Ryder
|
|
|
|
- * Added matrix orb device vid/pids from Wayne Wylupski
|
|
|
|
- *
|
|
|
|
- * (19/Feb/2003) Ian Abbott
|
|
|
|
- * For TIOCSSERIAL, set alt_speed to 0 when ASYNC_SPD_MASK value has
|
|
|
|
- * changed to something other than ASYNC_SPD_HI, ASYNC_SPD_VHI,
|
|
|
|
- * ASYNC_SPD_SHI or ASYNC_SPD_WARP. Also, unless ASYNC_SPD_CUST is in
|
|
|
|
- * force, don't bother changing baud rate when custom_divisor has changed.
|
|
|
|
- *
|
|
|
|
- * (18/Feb/2003) Ian Abbott
|
|
|
|
- * Fixed TIOCMGET handling to include state of DTR and RTS, the state
|
|
|
|
- * of which are now saved by set_dtr() and set_rts().
|
|
|
|
- * Fixed improper storage class for buf in set_dtr() and set_rts().
|
|
|
|
- * Added FT232BM chip type and support for its extra baud rates (compared
|
|
|
|
- * to FT8U232AM).
|
|
|
|
- * Took account of special case divisor values for highest baud rates of
|
|
|
|
- * FT8U232AM and FT232BM.
|
|
|
|
- * For TIOCSSERIAL, forced alt_speed to 0 when ASYNC_SPD_CUST kludge used,
|
|
|
|
- * as previous alt_speed setting is now stale.
|
|
|
|
- * Moved startup code common between the startup routines for the
|
|
|
|
- * different chip types into a common subroutine.
|
|
|
|
- *
|
|
|
|
- * (17/Feb/2003) Bill Ryder
|
|
|
|
- * Added write urb buffer pool on a per device basis
|
|
|
|
- * Added more checking for open file on callbacks (fixed OOPS)
|
|
|
|
- * Added CrystalFontz 632 and 634 PIDs
|
|
|
|
- * (thanx to CrystalFontz for the sample devices - they flushed out
|
|
|
|
- * some driver bugs)
|
|
|
|
- * Minor debugging message changes
|
|
|
|
- * Added throttle, unthrottle and chars_in_buffer functions
|
|
|
|
- * Fixed FTDI_SIO (the original device) bug
|
|
|
|
- * Fixed some shutdown handling
|
|
|
|
- *
|
|
|
|
- *
|
|
|
|
- *
|
|
|
|
- *
|
|
|
|
- * (07/Jun/2002) Kuba Ober
|
|
|
|
- * Changed FTDI_SIO_BASE_BAUD_TO_DIVISOR macro into ftdi_baud_to_divisor
|
|
|
|
- * function. It was getting too complex.
|
|
|
|
- * Fix the divisor calculation logic which was setting divisor of 0.125
|
|
|
|
- * instead of 0.5 for fractional parts of divisor equal to 5/8, 6/8, 7/8.
|
|
|
|
- * Also make it bump up the divisor to next integer in case of 7/8 - it's
|
|
|
|
- * a better approximation.
|
|
|
|
- *
|
|
|
|
- * (25/Jul/2002) Bill Ryder inserted Dmitri's TIOCMIWAIT patch
|
|
|
|
- * Not tested by me but it doesn't break anything I use.
|
|
|
|
- *
|
|
|
|
- * (04/Jan/2002) Kuba Ober
|
|
|
|
- * Implemented 38400 baudrate kludge, where it can be substituted with other
|
|
|
|
- * values. That's the only way to set custom baudrates.
|
|
|
|
- * Implemented TIOCSSERIAL, TIOCGSERIAL ioctl's so that setserial is happy.
|
|
|
|
- * FIXME: both baudrate things should eventually go to usbserial.c as other
|
|
|
|
- * devices may need that functionality too. Actually, it can probably be
|
|
|
|
- * merged in serial.c somehow - too many drivers repeat this code over
|
|
|
|
- * and over.
|
|
|
|
- * Fixed baudrate forgetfulness - open() used to reset baudrate to 9600 every time.
|
|
|
|
- * Divisors for baudrates are calculated by a macro.
|
|
|
|
- * Small code cleanups. Ugly whitespace changes for Plato's sake only ;-].
|
|
|
|
- *
|
|
|
|
- * (04/Nov/2001) Bill Ryder
|
|
|
|
- * Fixed bug in read_bulk_callback where incorrect urb buffer was used.
|
|
|
|
- * Cleaned up write offset calculation
|
|
|
|
- * Added write_room since default values can be incorrect for sio
|
|
|
|
- * Changed write_bulk_callback to use same queue_task as other drivers
|
|
|
|
- * (the previous version caused panics)
|
|
|
|
- * Removed port iteration code since the device only has one I/O port and it
|
|
|
|
- * was wrong anyway.
|
|
|
|
- *
|
|
|
|
- * (31/May/2001) gkh
|
|
|
|
- * Switched from using spinlock to a semaphore, which fixes lots of problems.
|
|
|
|
- *
|
|
|
|
- * (23/May/2001) Bill Ryder
|
|
|
|
- * Added runtime debug patch (thanx Tyson D Sawyer).
|
|
|
|
- * Cleaned up comments for 8U232
|
|
|
|
- * Added parity, framing and overrun error handling
|
|
|
|
- * Added receive break handling.
|
|
|
|
- *
|
|
|
|
- * (04/08/2001) gb
|
|
|
|
- * Identify version on module load.
|
|
|
|
- *
|
|
|
|
- * (18/March/2001) Bill Ryder
|
|
|
|
- * (Not released)
|
|
|
|
- * Added send break handling. (requires kernel patch too)
|
|
|
|
- * Fixed 8U232AM hardware RTS/CTS etc status reporting.
|
|
|
|
- * Added flipbuf fix copied from generic device
|
|
|
|
- *
|
|
|
|
- * (12/3/2000) Bill Ryder
|
|
|
|
- * Added support for 8U232AM device.
|
|
|
|
- * Moved PID and VIDs into header file only.
|
|
|
|
- * Turned on low-latency for the tty (device will do high baudrates)
|
|
|
|
- * Added shutdown routine to close files when device removed.
|
|
|
|
- * More debug and error message cleanups.
|
|
|
|
- *
|
|
|
|
- * (11/13/2000) Bill Ryder
|
|
|
|
- * Added spinlock protected open code and close code.
|
|
|
|
- * Multiple opens work (sort of - see webpage mentioned above).
|
|
|
|
- * Cleaned up comments. Removed multiple PID/VID definitions.
|
|
|
|
- * Factorised cts/dtr code
|
|
|
|
- * Made use of __FUNCTION__ in dbg's
|
|
|
|
- *
|
|
|
|
- * (11/01/2000) Adam J. Richter
|
|
|
|
- * usb_device_id table support
|
|
|
|
- *
|
|
|
|
- * (10/05/2000) gkh
|
|
|
|
- * Fixed bug with urb->dev not being set properly, now that the usb
|
|
|
|
- * core needs it.
|
|
|
|
- *
|
|
|
|
- * (09/11/2000) gkh
|
|
|
|
- * Removed DEBUG #ifdefs with call to usb_serial_debug_data
|
|
|
|
- *
|
|
|
|
- * (07/19/2000) gkh
|
|
|
|
- * Added module_init and module_exit functions to handle the fact that this
|
|
|
|
- * driver is a loadable module now.
|
|
|
|
- *
|
|
|
|
- * (04/04/2000) Bill Ryder
|
|
|
|
- * Fixed bugs in TCGET/TCSET ioctls (by removing them - they are
|
|
|
|
- * handled elsewhere in the tty io driver chain).
|
|
|
|
- *
|
|
|
|
- * (03/30/2000) Bill Ryder
|
|
|
|
- * Implemented lots of ioctls
|
|
|
|
- * Fixed a race condition in write
|
|
|
|
- * Changed some dbg's to errs
|
|
|
|
- *
|
|
|
|
- * (03/26/2000) gkh
|
|
|
|
- * Split driver up into device specific pieces.
|
|
|
|
|
|
+ * Change entries from 2004 and earlier can be found in versions of this
|
|
|
|
+ * file in kernel versions prior to the 2.6.24 release.
|
|
*
|
|
*
|
|
*/
|
|
*/
|
|
|
|
|