2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2025-01-05 04:04:01 +08:00
linux-next/drivers/usb/serial
Johan Hovold 27c7acf220 USB: serial: reimplement generic fifo-based writes
Reimplement fifo-based writes in the generic driver using a multiple
pre-allocated urb scheme.

In contrast to multi-urb writes, no allocations (of urbs or buffers) are
made during run-time and there is less pressure on the host stack
queues as currently only two urbs are used (implementation is generic
and can handle more than two urbs as well, though).

Initial tests using ftdi_sio show that the implementation achieves the
same (maximum) throughput at high baudrates as multi-urb writes. The CPU
usage is much lower than for multi-urb writes for small write requests
and only slightly higher for large (e.g. 2k) requests (due to extra copy
via fifo?).

Also outperforms multi-urb writes for small write requests on an
embedded arm-9 system, where multi-urb writes are CPU-bound at high
baudrates (perf reveals that a lot of time is spent in the host stack
enqueue function -- could perhaps be a bug as well).

Keeping the original write_urb, buffer and flag for now as there are
other drivers depending on them.

Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-05-20 13:21:42 -07:00
..
aircable.c USB: aircable: rewrite using generic read and write implementations 2010-05-20 13:21:42 -07:00
ark3116.c USB: serial: refactor generic close 2010-05-20 13:21:33 -07:00
belkin_sa.c USB: serial: refactor generic close 2010-05-20 13:21:33 -07:00
belkin_sa.h
bus.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
ch341.c USB: serial: refactor generic close 2010-05-20 13:21:33 -07:00
ChangeLog.history trivial: Fix misspelling of firmware 2009-03-30 15:21:59 +02:00
console.c usb-console: pass baud from console to the initial tty open 2010-05-20 13:21:32 -07:00
cp210x.c USB: cp210x: use generic submit_read_urb at open 2010-05-20 13:21:34 -07:00
cyberjack.c USB: tty: Prune uses of tty_request_room in the USB layer 2010-03-02 14:55:12 -08:00
cypress_m8.c Merge branch 'for-next' into for-linus 2010-03-08 16:55:37 +01:00
cypress_m8.h trivial: fix typo "to to" in multiple files 2009-09-21 15:14:55 +02:00
digi_acceleport.c USB: remove references to port->port.count from the serial drivers 2010-03-02 14:55:12 -08:00
empeg.c USB: tty: Prune uses of tty_request_room in the USB layer 2010-03-02 14:55:12 -08:00
ezusb_convert.pl
ezusb.c USB: remove use of err() in drivers/usb/serial 2008-10-17 14:41:10 -07:00
ftdi_sio_ids.h USB: serial: ftdi: add CONTEC vendor and product id 2010-03-19 07:24:09 -07:00
ftdi_sio.c USB: ftdi_sio: clean up SIO write support 2010-05-20 13:21:42 -07:00
ftdi_sio.h USB: ftdi_sio: correct spelling in header files 2010-03-02 14:54:35 -08:00
funsoft.c USB serial: make USB device id constant 2010-03-02 14:54:16 -08:00
garmin_gps.c USB: tty: Prune uses of tty_request_room in the USB layer 2010-03-02 14:55:12 -08:00
generic.c USB: serial: reimplement generic fifo-based writes 2010-05-20 13:21:42 -07:00
hp4x.c USB serial: make USB device id constant 2010-03-02 14:54:16 -08:00
io_16654.h
io_edgeport.c USB: tty: Prune uses of tty_request_room in the USB layer 2010-03-02 14:55:12 -08:00
io_edgeport.h
io_ionsp.h
io_tables.h USB serial: make USB device id constant 2010-03-02 14:54:16 -08:00
io_ti.c USB: tty: Prune uses of tty_request_room in the USB layer 2010-03-02 14:55:12 -08:00
io_ti.h
io_usbvend.h
ipaq.c USB: serial: allow drivers to define bulk buffer sizes 2010-05-20 13:21:33 -07:00
ipaq.h
ipw.c USB: tty: Prune uses of tty_request_room in the USB layer 2010-03-02 14:55:12 -08:00
ir-usb.c USB: remove references to port->port.count from the serial drivers 2010-03-02 14:55:12 -08:00
iuu_phoenix.c USB: serial: allow drivers to define bulk buffer sizes 2010-05-20 13:21:33 -07:00
iuu_phoenix.h
Kconfig USB: usbserial: fix mos7720 dependencies 2010-05-20 13:21:39 -07:00
keyspan_pda.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6 2010-03-03 08:48:58 -08:00
keyspan_usa26msg.h
keyspan_usa28msg.h
keyspan_usa49msg.h
keyspan_usa67msg.h
keyspan_usa90msg.h
keyspan.c USB: remove references to port->port.count from the serial drivers 2010-03-02 14:55:12 -08:00
keyspan.h USB serial: make USB device id constant 2010-03-02 14:54:16 -08:00
kl5kusb105.c USB: tty: Prune uses of tty_request_room in the USB layer 2010-03-02 14:55:12 -08:00
kl5kusb105.h
kobil_sct.c USB: tty: Prune uses of tty_request_room in the USB layer 2010-03-02 14:55:12 -08:00
kobil_sct.h
Makefile usb serial: Add generic USB wwan support 2010-05-20 13:21:37 -07:00
Makefile-keyspan_pda_fw
mct_u232.c USB: serial: refactor generic close 2010-05-20 13:21:33 -07:00
mct_u232.h USB: serial mct_usb232: move DMA buffers to heap 2010-03-02 14:53:06 -08:00
mos7720.c USB: usbserial: mos7720: cleanup, consolidation, replace send_mos_cmd with {read,write}_mos_reg 2010-05-20 13:21:39 -07:00
mos7840.c USB: mos7840: Cleanup useless header 2010-05-20 13:21:40 -07:00
moto_modem.c USB serial: make USB device id constant 2010-03-02 14:54:16 -08:00
navman.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
omninet.c USB: Convert concatenated __FILE__ to %s, __FILE__ 2010-03-02 14:54:59 -08:00
opticon.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
option.c USB: option: add PID for ZTE product 2010-05-20 13:21:40 -07:00
oti6858.c USB: oti6858: declare send_data() as static 2010-05-20 13:21:41 -07:00
oti6858.h
pl2303.c USB: pl2303: use generic close 2010-05-20 13:21:34 -07:00
pl2303.h USB: serial: pl2303: Hybrid reader Uniform HCR331 2010-04-30 09:25:10 -07:00
qcaux.c USB: qcaux: add Samsung U520 device ID 2010-05-20 13:21:40 -07:00
qcserial.c USB: qcserial: Add support for Qualcomm Gobi 2000 devices 2010-05-20 13:21:37 -07:00
safe_serial.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
siemens_mpi.c USB serial: make USB device id constant 2010-03-02 14:54:16 -08:00
sierra.c USB: Add id for HP ev2210 a.k.a Sierra MC5725 miniPCI-e Cell Modem. 2010-04-22 15:18:24 -07:00
spcp8x5.c USB: remove references to port->port.count from the serial drivers 2010-03-02 14:55:12 -08:00
symbolserial.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
ti_usb_3410_5052.c USB: ti_usb: fix printk format warning 2010-04-30 09:25:11 -07:00
ti_usb_3410_5052.h USB: ti_usb_3410_5052: adding multitech dialup fax/modem devices 2010-04-22 15:18:20 -07:00
usb_debug.c USB: usb_debug: use the generic kfifo-based write implementation 2010-05-20 13:21:34 -07:00
usb_wwan.c usb serial: Add generic USB wwan support 2010-05-20 13:21:37 -07:00
usb-serial.c USB: serial: reimplement generic fifo-based writes 2010-05-20 13:21:42 -07:00
usb-wwan.h usb serial: Add generic USB wwan support 2010-05-20 13:21:37 -07:00
visor.c USB: tty: Prune uses of tty_request_room in the USB layer 2010-03-02 14:55:12 -08:00
visor.h
vivopay-serial.c USB: serial: Add support for ViVOtech ViVOpay devices. 2010-03-02 14:54:57 -08:00
whiteheat.c USB: tty: sort out the request_room handling for whiteheat 2010-03-02 14:55:09 -08:00
whiteheat.h
zio.c USB Serial Driver: ZIO Motherboard 2010-05-20 13:21:32 -07:00