Skip to content

usb: serial: F81232 V9 patches

Peter Hung lkml 5 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v9 Latest10 patches 2 repliesIn review
  2. v810 patches 14 repliesSuperseded
  3. v711 patches 6 repliesSuperseded
Earlier versions · 2
VersionPostedPatchesRepliesStatus
v610 patches10 repliesSuperseded
v58 patches6 repliesSuperseded

V8 (old change) from the cover letter

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.

Patches in v9 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/10USB: f81232: rename private struct member namedrivers/usb/serial/f81232.c+4 -40 replies
2/10USB: f81232: implement RX bulk-in EPdrivers/usb/serial/f81232.c+40 -332 replies
3/10USB: f81232: change lock mechanismdrivers/usb/serial/f81232.c+5 -60 replies
4/10USB: f81232: implement read IIR/MSR with endpointdrivers/usb/serial/f81232.c+118 -80 replies
5/10USB: f81232: implement MCR/MSR functiondrivers/usb/serial/f81232.c+117 -220 replies
6/10USB: f81232: implement port enable/disable methoddrivers/usb/serial/f81232.c+49 -00 replies
7/10USB: f81232: implement set_termios()drivers/usb/serial/f81232.c+108 -40 replies
8/10USB: f81232: clarify f81232_ioctl() and fixdrivers/usb/serial/f81232.c+19 -110 replies
9/10USB: f81232: cleanup non-used definedrivers/usb/serial/f81232.c+0 -140 replies
10/10USB: f81232: modify/add authordrivers/usb/serial/f81232.c+2 -10 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v9 yet.

Read the v9 thread

Cover letter [PATCH V9 00/10] usb: serial: F81232 V9 patches

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(-)
Signature · 1 line
1.9.1