linux/drivers/usb/serial
Simon Arlott fca5430d48 USB: ftdi_sio: fix status line change handling for TIOCMIWAIT and TIOCGICOUNT
Handling of TIOCMIWAIT was changed by commit 1d749f9afa
 USB: ftdi_sio.c: Use ftdi async_icount structure for TIOCMIWAIT, as in other drivers

FTDI_STATUS_B0_MASK does not indicate the changed modem status lines,
it indicates the value of the current modem status lines. An xor is
still required to determine which lines have changed.

The count was only being incremented if the line was high. The only
reason TIOCMIWAIT still worked was because the status packet is
repeated every 1ms, so the count was always changing. The wakeup
itself still ran based on the status lines changing.

This change fixes handling of updates to the modem status lines and
allows multiple processes to use TIOCMIWAIT concurrently.

Tested with two processes waiting on different status lines being
toggled independently.

Signed-off-by: Simon Arlott <simon@fire.lp0.eu>
Cc: Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-04-09 15:41:16 -07:00
..
aircable.c USB: serial: aircable.c: use module_usb_serial_driver 2012-02-28 13:11:32 -08:00
ark3116.c USB: serial: ark3116.c: use module_usb_serial_driver 2012-02-28 13:11:35 -08:00
belkin_sa.c USB: serial: belkin_sa.c: use module_usb_serial_driver 2012-02-28 13:11:35 -08:00
belkin_sa.h
bus.c USB: fix bug in serial driver unregistration 2012-04-09 15:36:20 -07:00
ch341.c USB: serial: ch341.c: use module_usb_serial_driver 2012-02-28 13:11:37 -08:00
console.c
cp210x.c usb: cp210x: Update to support CP2105 and multiple interface devices 2012-03-02 16:19:16 -08:00
cyberjack.c USB: serial: cyberjack.c: use module_usb_serial_driver 2012-02-28 13:11:40 -08:00
cypress_m8.c USB: serial: cypress_m8.c: use module_usb_serial_driver 2012-02-28 13:11:41 -08:00
cypress_m8.h
digi_acceleport.c USB: serial: digi_acceleport.c: use module_usb_serial_driver 2012-02-28 13:11:41 -08:00
empeg.c USB: serial: empeg.c: use module_usb_serial_driver 2012-02-28 13:11:42 -08:00
ezusb_convert.pl
ezusb.c
f81232.c USB: serial: add Fintek F81232 usb to serial driver 2012-02-28 13:36:35 -08:00
ftdi_sio_ids.h USB: ftdi_sio: new PID: LUMEL PD12 2012-03-15 12:34:30 -07:00
ftdi_sio.c USB: ftdi_sio: fix status line change handling for TIOCMIWAIT and TIOCGICOUNT 2012-04-09 15:41:16 -07:00
ftdi_sio.h USB: ftdi_sio: add support for FT-X series devices 2012-03-14 15:43:05 -07:00
funsoft.c USB: serial: funsoft.c: use module_usb_serial_driver 2012-02-28 13:11:44 -08:00
garmin_gps.c USB: serial: garmin_gps.c: use module_usb_serial_driver 2012-02-28 13:11:46 -08:00
generic.c usb-serial: new API for driver registration 2012-02-24 12:39:17 -08:00
hp4x.c USB: serial: hp4x.c: use module_usb_serial_driver 2012-02-28 13:11:49 -08:00
io_16654.h
io_edgeport.c USB: serial: io_edgeport.c: use module_usb_serial_driver 2012-02-28 13:11:51 -08:00
io_edgeport.h Fix common misspellings 2011-03-31 11:26:23 -03:00
io_ionsp.h
io_tables.h usb-serial: use new registration API in [i-j]* drivers 2012-02-24 12:39:18 -08:00
io_ti.c USB: serial: io_ti.c: use module_usb_serial_driver 2012-02-28 13:11:53 -08:00
io_ti.h
io_usbvend.h
ipaq.c usb-serial: use new registration API in [i-j]* drivers 2012-02-24 12:39:18 -08:00
ipw.c USB: serial: ipw.c: use module_usb_serial_driver 2012-02-28 13:11:56 -08:00
ir-usb.c usb-serial: use new registration API in [i-j]* drivers 2012-02-24 12:39:18 -08:00
iuu_phoenix.c USB: serial: iuu_phoenix.c: use module_usb_serial_driver 2012-02-28 13:11:58 -08:00
iuu_phoenix.h
Kconfig USB: serial: metro-usb: add to the build 2012-03-08 13:34:01 -08:00
keyspan_pda.c USB: serial: keyspan_pda.c: use module_usb_serial_driver 2012-02-28 13:11:59 -08:00
keyspan_usa26msg.h
keyspan_usa28msg.h
keyspan_usa49msg.h
keyspan_usa67msg.h
keyspan_usa90msg.h
keyspan.c USB: serial: keyspan.c: use module_usb_serial_driver 2012-02-28 13:11:59 -08:00
keyspan.h usb-serial: use new registration API in [k-m]* drivers 2012-02-24 12:39:19 -08:00
kl5kusb105.c USB: serial: kl5kusb105.c: use module_usb_serial_driver 2012-02-28 13:12:00 -08:00
kl5kusb105.h
kobil_sct.c USB: serial: kobil_sct.c: use module_usb_serial_driver 2012-02-28 13:12:02 -08:00
kobil_sct.h
Makefile USB: serial: metro-usb: add to the build 2012-03-08 13:34:01 -08:00
Makefile-keyspan_pda_fw
mct_u232.c USB: serial: mct_u232.c: use module_usb_serial_driver 2012-02-28 13:12:05 -08:00
mct_u232.h Update broken web addresses in the kernel. 2010-10-18 11:03:14 +02:00
metro-usb.c USB: serial: metro-usb: Fix idProduct for Uni-Directional mode. 2012-04-09 15:36:20 -07:00
mos7720.c USB: serial: mos7720.c: use module_usb_serial_driver 2012-02-28 13:12:07 -08:00
mos7840.c USB: serial: mos7840: Fixed MCS7820 device attach problem 2012-03-14 12:25:26 -07:00
moto_modem.c USB: serial: moto_modem.c: use module_usb_serial_driver 2012-02-28 13:12:12 -08:00
navman.c USB: serial: navman.c: use module_usb_serial_driver 2012-02-28 13:12:14 -08:00
omninet.c USB: serial: omninet.c: use module_usb_serial_driver 2012-02-28 13:12:17 -08:00
opticon.c USB: serial: opticon.c: use module_usb_serial_driver 2012-02-28 13:12:19 -08:00
option.c USB: option: re-add NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED to option_id array 2012-04-09 15:36:20 -07:00
oti6858.c USB: serial: oti6858.c: use module_usb_serial_driver 2012-02-28 13:12:22 -08:00
oti6858.h
pl2303.c USB: pl2303: fix DTR/RTS being raised on baud rate change 2012-04-09 15:36:20 -07:00
pl2303.h USB: serial: pl2303: rm duplicate id 2011-11-15 10:06:15 -08:00
qcaux.c USB: serial: qcaux.c: use module_usb_serial_driver 2012-02-28 13:12:24 -08:00
qcserial.c USB: serial: qcserial.c: use module_usb_serial_driver 2012-02-28 13:12:26 -08:00
safe_serial.c usb-serial: use new registration API in [q-s]* drivers 2012-02-24 12:39:20 -08:00
siemens_mpi.c USB: serial: siemens_mpi.c: use module_usb_serial_driver 2012-02-28 13:12:29 -08:00
sierra.c USB: serial: sierra.c: use module_usb_serial_driver 2012-02-28 13:12:31 -08:00
spcp8x5.c USB: serial: spcp8x5.c: use module_usb_serial_driver 2012-02-28 13:12:34 -08:00
ssu100.c USB: serial: ssu100.c: use module_usb_serial_driver 2012-02-28 13:12:36 -08:00
symbolserial.c USB: serial: symbolserial.c: use module_usb_serial_driver 2012-02-28 13:12:38 -08:00
ti_usb_3410_5052.c usb-serial: use new registration API in [t-z]* drivers 2012-02-24 12:39:21 -08:00
ti_usb_3410_5052.h USB: Serial: ti_usb_3410_5052: Add Abbot Diabetes Care cable id 2012-02-21 16:29:15 -08:00
usb_debug.c USB: serial: usb_debug.c: use module_usb_serial_driver 2012-02-28 13:12:41 -08:00
usb_wwan.c module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
usb-serial.c USB: fix bug in serial driver unregistration 2012-04-09 15:36:20 -07:00
usb-wwan.h tty: remove filp from the USB tty ioctls 2011-02-17 11:59:14 -08:00
visor.c usb-serial: use new registration API in [t-z]* drivers 2012-02-24 12:39:21 -08:00
visor.h
vivopay-serial.c USB: serial: vivopay-serial.c: use module_usb_serial_driver 2012-02-28 13:12:43 -08:00
whiteheat.c USB: serial: whiteheat.c: use module_usb_serial_driver 2012-02-28 13:12:44 -08:00
whiteheat.h
zio.c USB: serial: zio.c: use module_usb_serial_driver 2012-02-28 13:12:46 -08:00