[PATCH V9 00/10] usb: serial: F81232 V9 patches
From: Peter Hung
Date: Tue Mar 17 2015 - 05:48:51 EST
This series patch V9 is changed from V8 as following:
1. add comments for read URB 1byte LSR when port open.
2. change error handle flow of set_register()/get_register()
V8 (old change):
1. The V7 MSR strange delta value is checked with locking problem. We changed
f81232_set_mctrl() & f81232_read_msr() lock mechanism, the old version is
only locked with variable protection, new version will lock from start to
end with these 2 function.
2. f81232_set_baudrate() add error handling and no longer handle with baudrate
B0, change to handle with f81232_set_termios()
3. When user set baudrate larger then 115200, we will change it with 115200
and tty_encode_baud_rate() in f81232_set_termios().
4. V7 f81232_set_baudrate() divisor declared with type u8, it will make
baudrate set failed with smaller then B600 (115200/300=384 overflow :Q).
We changed it with integer type for divisor larger then 256.
V7 (old change):
1. The buffer of usb_control_msg() in set_register()/get_register() are change
from local variable to kmalloc(). (PATCH V7 02/11)
2. Change all set_register()/get_register() return value 0 is success,
otherwise are failed. ( return 0 of usb_control_msg() treat as -EIO,
PATCH V7 02/11)
3. tty_port_tty_get() called only when DCD has changed. (PATCH V7 05/11)
4. remove likely()/unlikely() branch prediction.
5. Implement DTR/RTS control when baudrate B0. We drop DTR/RTS when B0,
otherwise enable it. (PATCH V7 08/11)
6. Change private struct line_control to modem_control with meanful.
(PATCH V7 06/11)
7. We confirmd MSR strange delta value is not locking-issue. The issue
maybe reproduce with set MCR & get MSR before IIR notice with MSR changed.
V6 (old change):
1. transform all function not to use private data as parameter, using
usb_serial_port instead.
2. process_read_urb() add process of Break/FrameError/ParityError/OE.
(patch: 03/10)
3. fix calc_baud_divisor() will cause divide by zero with B0. (patch: 04/10)
4. Some init step we extract it from set_termios() to f81232_port_init()
and run it when open port only. (patch: 04/10)
5. We'll force re-read msr in tiocmget() because the IIR with MSR change
maybe delay received. (patch: 05/10)
6. fix MSR status bits changed but delta bits is 0 will cause read serial port
malfunctional with update port status. (patch: 08/10)
7. Add MSR change statistic when MSR has been read. (patch: 09/10)
8. clarify a lot of code about Johan suggested.
Peter Hung (10):
USB: f81232: rename private struct member name
USB: f81232: implement RX bulk-in EP
USB: f81232: change lock mechanism
USB: f81232: implement read IIR/MSR with endpoint
USB: f81232: implement MCR/MSR function
USB: f81232: implement port enable/disable method
USB: f81232: implement set_termios()
USB: f81232: clarify f81232_ioctl() and fix
USB: f81232: cleanup non-used define
USB: f81232: modify/add author
drivers/usb/serial/f81232.c | 555 ++++++++++++++++++++++++++++++++++++--------
1 file changed, 457 insertions(+), 98 deletions(-)
--
1.9.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/