linux/drivers/usb/serial
Frank Schäfer 57ce61aad7 usb: pl2303: fix+improve the divsor based baud rate encoding method
Based on the formula in the code description, Reinhard Max and me have
investigated the devices behavior / functional principle of the divisor
based baud rate encoding method.

It turned out, that (although beeing a good starting point) the current
code has some flaws. It doesn't work correctly for a wide range of baud
rates and the divisor resolution can be improved. It also doesn't
report the actually set baud rate.

This patch fixes and improves the code for the divisor based baud rate
encoding method a lot. It can now be used for the whole range of baud
rates from 46 baud to 24M baud with a very good divisor resolution and
userspace can read back the resulting baud rate.

It also documents the formula used for encoding and the hardware
behavior (including special cases).

The basic algorithm, rounding and several code comments/explanations
are provided by Reinhard Max.
I've added some minor fixes, the handling of the special cases and
further code/algorithm descriptions.

Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
Signed-off-by: Reinhard Max <max@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-08-12 15:43:40 -07:00
..
aircable.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
ark3116.c USB: serial: make minor allocation dynamic 2013-06-17 13:30:02 -07:00
belkin_sa.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
belkin_sa.h
bus.c USB: serial: ports: add minor and port number 2013-06-10 14:46:40 -07:00
ch341.c USB: ch341: fix TIOCMIWAIT and disconnect 2013-03-25 13:50:52 -07:00
console.c USB: console: remove unnecessary operations test 2013-07-23 16:24:32 -07:00
cp210x.c Merge 3.11-rc3 into usb-next 2013-07-29 07:43:16 -07:00
cyberjack.c USB: cyberjack: fix disconnect handling 2013-03-25 13:48:26 -07:00
cypress_m8.c USB: serial: set drain delay at port probe 2013-07-23 16:21:50 -07:00
cypress_m8.h USB: Serial: cypress_M8: Enable FRWD Dongle hidcom device 2013-06-03 10:33:10 -07:00
digi_acceleport.c USB: serial: ports: add minor and port number 2013-06-10 14:46:40 -07:00
empeg.c USB: serial: remove driver version information 2012-10-31 12:48:06 -07:00
ezusb_convert.pl
f81232.c USB: serial: set drain delay at port probe 2013-07-23 16:21:50 -07:00
ftdi_sio_ids.h USB: serial: ftdi_sio: add more RT Systems ftdi devices 2013-07-29 13:38:38 -07:00
ftdi_sio.c Merge 3.11-rc4 into usb-next 2013-08-05 08:36:14 +08:00
ftdi_sio.h
garmin_gps.c USB: serial: ports: add minor and port number 2013-06-10 14:46:40 -07:00
generic.c USB: serial: remove hupping check from tiocmiwait 2013-07-23 16:21:50 -07:00
io_16654.h
io_edgeport.c USB: io_edgeport: remove unused defines 2013-07-23 16:28:22 -07:00
io_edgeport.h
io_ionsp.h
io_tables.h USB: io_edgeport: switch to generic TIOCMIWAIT implementation 2013-03-25 13:50:53 -07:00
io_ti.c USB: io_ti: move port initialisation to probe 2013-07-23 16:28:23 -07:00
io_ti.h
io_usbvend.h
ipaq.c USB: serial: remove driver version information 2012-10-31 12:48:06 -07:00
ipw.c USB: serial: remove driver version information 2012-10-31 12:48:06 -07:00
ir-usb.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
iuu_phoenix.c USB: iuu_phoenix: fix bulk-message timeout 2013-05-29 10:50:43 +09:00
iuu_phoenix.h
Kconfig USB: serial: move the "simple" drivers into usb-serial-simple.c 2013-08-12 12:14:52 -07:00
keyspan_pda.c USB patches for 3.10-rc1 2013-04-29 12:19:23 -07:00
keyspan_usa26msg.h
keyspan_usa28msg.h
keyspan_usa49msg.h
keyspan_usa67msg.h
keyspan_usa90msg.h
keyspan.c USB: serial: ports: add minor and port number 2013-06-10 14:46:40 -07:00
keyspan.h USB: keyspan: fix NULL-pointer dereferences and memory leaks 2012-10-25 09:37:13 -07:00
kl5kusb105.c USB: kl5kusb105: always disable uart on close 2013-03-25 13:54:31 -07:00
kl5kusb105.h
kobil_sct.c USB: kobil_sct: use port interrupt-out urb 2013-04-17 10:05:35 -07:00
kobil_sct.h
Makefile USB: serial: move the "simple" drivers into usb-serial-simple.c 2013-08-12 12:14:52 -07:00
Makefile-keyspan_pda_fw
mct_u232.c USB: mct_u232: clean up read implementation 2013-04-17 10:05:35 -07:00
mct_u232.h
metro-usb.c USB: serial: ports: add minor and port number 2013-06-10 14:46:40 -07:00
mos7720.c USB: serial: make minor allocation dynamic 2013-06-17 13:30:02 -07:00
mos7840.c Merge 3.11-rc4 into usb-next 2013-08-05 08:36:14 +08:00
navman.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
omninet.c USB: omninet: switch to generic read implementation 2013-04-17 10:05:34 -07:00
opticon.c USB: serial: make minor allocation dynamic 2013-06-17 13:30:02 -07:00
option.c usb: serial: option.c: remove ONDA MT825UP product ID fromdriver 2013-07-25 11:28:31 -07:00
oti6858.c USB: oti6858: do not call set_termios with uninitialised data 2013-07-23 16:24:33 -07:00
oti6858.h
pl2303.c usb: pl2303: fix+improve the divsor based baud rate encoding method 2013-08-12 15:43:40 -07:00
pl2303.h
qcaux.c qcaux: add Franklin U600 2013-03-11 11:09:17 -07:00
qcserial.c USB: option,qcserial: move Novatel Gobi1K IDs to qcserial 2013-06-24 16:21:53 -07:00
quatech2.c USB: serial: make minor allocation dynamic 2013-06-17 13:30:02 -07:00
safe_serial.c USB: safe_serial: remove vendor/product module parameters 2013-07-23 16:28:23 -07:00
sierra.c USB: serial: ports: add minor and port number 2013-06-10 14:46:40 -07:00
spcp8x5.c USB: serial: set drain delay at port probe 2013-07-23 16:21:50 -07:00
ssu100.c USB: serial: make minor allocation dynamic 2013-06-17 13:30:02 -07:00
symbolserial.c USB: symbolserial: move private-data allocation to port_probe 2013-04-17 10:05:35 -07:00
ti_usb_3410_5052.c Merge 3.11-rc3 into usb-next 2013-07-29 07:43:16 -07:00
ti_usb_3410_5052.h USB: serial: ti_usb_3410_5052: new device id for Abbot strip port cable 2013-06-19 15:54:45 -07:00
usb_debug.c USB: serial: rework usb_serial_register/deregister_drivers() 2012-05-08 15:46:14 -07:00
usb_wwan.c USB: serial: make minor allocation dynamic 2013-06-17 13:30:02 -07:00
usb-serial-simple.c USB: serial: move the "simple" drivers into usb-serial-simple.c 2013-08-12 12:14:52 -07:00
usb-serial.c USB: serial: clean up dtr_rts 2013-07-23 16:21:50 -07:00
usb-wwan.h USB: usb-wwan: fix multiple memory leaks in error paths 2012-10-25 09:37:13 -07:00
visor.c USB: visor: fix initialisation of Treo/Kyocera devices 2013-05-29 10:47:45 +09:00
visor.h
whiteheat.c USB: serial: make minor allocation dynamic 2013-06-17 13:30:02 -07:00
whiteheat.h
wishbone-serial.c USB: serial: wishbone-serial: fix up minor sparse warning 2013-04-11 08:45:34 -07:00
xsens_mt.c usb: add driver for xsens motion trackers 2013-01-25 09:56:54 -08:00
zte_ev.c USB: option,zte_ev: move most ZTE CDMA devices to zte_ev 2013-06-06 09:06:25 -07:00