1
linux/drivers/usb/gadget
David Brownell 937ef73d50 USB: serial gadget: rx path data loss fixes
Update RX path handling in new serial gadget code to cope better with
RX blockage:  queue every RX packet until its contents can safely be
passed up to the ldisc.  Most of the RX path work is now done in the
RX tasklet, instead of just the final "push to ldisc" step.  This
addresses some cases of data loss:

  - A longstanding serial gadget bug: when tty_insert_flip_string()
    didn't copy the entire buffer, the rest of the characters were
    dropped!  Now that packet stays queued until the rest of its data
    is pushed to the ldisc.

  - Another longstanding issue:  in the unlikely case that an RX
    transfer returns data and also reports a fault, that data is
    no longer discarded.

  - In the recently added RX throttling logic:  it needs to stop
    pushing data into the TTY layer, instead of just not submitting
    new USB read requests.  When the TTY is throttled long enough,
    backpressure will eventually make the OUT endpoint NAK.

Also: an #ifdef is removed (no longer necessary); and start switching
to a better convention for debug messages (prefix them with tty name).

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2008-08-13 17:32:53 -07:00
..
amd5536udc.c USB: usb dev_set_name() instead of dev->bus_id 2008-07-21 15:15:47 -07:00
amd5536udc.h USB: amd5536 UDC driver (in GEODE southbridge) 2007-07-19 17:46:05 -07:00
at91_udc.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
at91_udc.h Rename WARN() to WARNING() to clear the namespace 2008-07-25 10:53:29 -07:00
atmel_usba_udc.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
atmel_usba_udc.h atmel_usba_udc: Add support for AT91CAP9 UDPHS 2008-04-06 17:25:06 -04:00
cdc2.c Rename WARN() to WARNING() to clear the namespace 2008-07-25 10:53:29 -07:00
composite.c usb gadget: minor USBCV fix for composite framework 2008-07-21 15:16:48 -07:00
config.c usb gadget: descriptor copying support 2008-07-21 15:16:00 -07:00
dummy_hcd.c USB: fix USB boot crash, ecm_do_notify(), list_add corruption. prev->next should be next (ffff88003b8f82f8) 2008-08-13 17:32:47 -07:00
epautoconf.c usb gadget: descriptor copying support 2008-07-21 15:16:00 -07:00
ether.c Rename WARN() to WARNING() to clear the namespace 2008-07-25 10:53:29 -07:00
f_acm.c usb gadget serial: split out CDC ACM function 2008-07-21 15:16:06 -07:00
f_ecm.c usb ethernet gadget: split CDC Ethernet function 2008-07-21 15:16:13 -07:00
f_loopback.c usb gadget zero: split out loopback config 2008-07-21 15:16:03 -07:00
f_rndis.c usb ethernet gadget: split RNDIS function 2008-07-21 15:16:15 -07:00
f_serial.c usb gadget serial: split out generic serial function 2008-07-21 15:16:07 -07:00
f_sourcesink.c usb gadget zero: split out source/sink config 2008-07-21 15:16:02 -07:00
f_subset.c usb ethernet gadget: split CDC Subset function 2008-07-21 15:16:13 -07:00
file_storage.c Rename WARN() to WARNING() to clear the namespace 2008-07-25 10:53:29 -07:00
fsl_usb2_udc.c Rename WARN() to WARNING() to clear the namespace 2008-07-25 10:53:29 -07:00
fsl_usb2_udc.h Rename WARN() to WARNING() to clear the namespace 2008-07-25 10:53:29 -07:00
g_zero.h usb gadget zero: split out loopback config 2008-07-21 15:16:03 -07:00
gadget_chips.h usb: gadget: protect gadget_chips.h from been included twice 2008-08-13 17:32:49 -07:00
gmidi.c Rename WARN() to WARNING() to clear the namespace 2008-07-25 10:53:29 -07:00
goku_udc.c Rename WARN() to WARNING() to clear the namespace 2008-07-25 10:53:29 -07:00
goku_udc.h Rename WARN() to WARNING() to clear the namespace 2008-07-25 10:53:29 -07:00
inode.c Rename WARN() to WARNING() to clear the namespace 2008-07-25 10:53:29 -07:00
Kconfig usb gadget: g_cdc dependso on NET 2008-07-21 15:16:44 -07:00
lh7a40x_udc.c USB: usb dev_name() instead of dev->bus_id 2008-07-21 15:15:46 -07:00
lh7a40x_udc.h [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
m66592-udc.c USB: m66592-udc: Fix up dev_set_name() badness. 2008-07-30 09:41:46 -07:00
m66592-udc.h drivers/usb annotations and fixes 2008-04-28 10:03:31 -07:00
Makefile usb gadget: new "CDC Composite" gadget driver 2008-07-21 15:16:16 -07:00
ndis.h usb gadget: RNDIS cleanups 2008-07-21 15:16:10 -07:00
net2280.c Rename WARN() to WARNING() to clear the namespace 2008-07-25 10:53:29 -07:00
net2280.h Rename WARN() to WARNING() to clear the namespace 2008-07-25 10:53:29 -07:00
omap_udc.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
omap_udc.h Rename WARN() to WARNING() to clear the namespace 2008-07-25 10:53:29 -07:00
printer.c Rename WARN() to WARNING() to clear the namespace 2008-07-25 10:53:29 -07:00
pxa25x_udc.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
pxa25x_udc.h [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
pxa27x_udc.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
pxa27x_udc.h [ARM] 5080/1: touch PSSR_OTGPH only on pxa27x in ohci-pxa27x and pxa27x_udc 2008-06-15 19:54:23 +01:00
rndis.c usb gadget: RNDIS cleanups 2008-07-21 15:16:10 -07:00
rndis.h usb gadget: RNDIS cleanups 2008-07-21 15:16:10 -07:00
s3c2410_udc.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
s3c2410_udc.h USB Gadget driver for Samsung s3c2410 ARM SoC 2007-07-12 16:34:30 -07:00
serial.c usb gadget serial: use composite gadget framework 2008-07-21 15:16:09 -07:00
u_ether.c Rename WARN() to WARNING() to clear the namespace 2008-07-25 10:53:29 -07:00
u_ether.h usb ethernet gadget: split RNDIS function 2008-07-21 15:16:15 -07:00
u_serial.c USB: serial gadget: rx path data loss fixes 2008-08-13 17:32:53 -07:00
u_serial.h usb gadget serial: use composite gadget framework 2008-07-21 15:16:09 -07:00
usbstring.c usb: use get/put_unaligned_* helpers 2008-04-29 08:06:28 -07:00
zero.c usb gadget zero: use composite gadget framework 2008-07-21 15:16:04 -07:00