linux/drivers/net/can
Ahmed S. Darwish 082d70b614 can: kvaser_usb: Comply with firmware max tx URBs value
Current driver code arbitrarily assumes a max outstanding tx
value of 16 parallel transmissions. Meanwhile, the device
firmware provides its actual maximum inside its reply to the
CMD_GET_SOFTWARE_INFO message.

Under heavy tx traffic, if the interleaved transmissions count
increases above the limit reported by firmware, the firmware
breaks up badly, reports a massive list of internal errors, and
the candump traces hardly matches the actual frames sent and
received.

On the other hand, in certain models, the firmware can support
up to 48 tx URBs instead of just 16, increasing the driver
throughput by two-fold and reducing the possibility of -ENOBUFs.

Thus dynamically set the driver's max tx URBs value according
to firmware replies.

Signed-off-by: Ahmed S. Darwish <ahmed.darwish@valeo.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2015-03-22 18:14:49 +01:00
..
c_can Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-01-27 16:59:56 -08:00
cc770 can: move can_stats.bus_off++ from can_bus_off into can_change_state 2015-01-20 13:56:53 +01:00
m_can Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-01-27 16:59:56 -08:00
mscan Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
sja1000 Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
softing can: move can_stats.bus_off++ from can_bus_off into can_change_state 2015-01-20 13:56:53 +01:00
spi can: move can_stats.bus_off++ from can_bus_off into can_change_state 2015-01-20 13:56:53 +01:00
usb can: kvaser_usb: Comply with firmware max tx URBs value 2015-03-22 18:14:49 +01:00
at91_can.c can: at91_can: remove unused variable 2015-01-21 22:47:44 +01:00
bfin_can.c can: move can_stats.bus_off++ from can_bus_off into can_change_state 2015-01-20 13:56:53 +01:00
dev.c can: add missing initialisations in CAN related skbuffs 2015-03-09 10:22:24 +01:00
flexcan.c can: flexcan: remove unused variable 2015-01-21 22:47:44 +01:00
grcan.c net: can: drop owner assignment from platform_drivers 2014-10-20 16:20:59 +02:00
janz-ican3.c can: janz-ican3: fix type mismatch in assignment 2015-02-04 14:06:43 +01:00
Kconfig net: can: Enable xilinx driver for ARM64 2015-03-14 09:01:16 +01:00
led.c can: only rename enabled led triggers when changing the netdev name 2014-05-27 15:05:41 +02:00
Makefile can: Enable -D__CHECK_ENDIAN__ for sparse by default 2014-12-07 21:22:06 +01:00
pch_can.c can: move can_stats.bus_off++ from can_bus_off into can_change_state 2015-01-20 13:56:53 +01:00
rcar_can.c can: move can_stats.bus_off++ from can_bus_off into can_change_state 2015-01-20 13:56:53 +01:00
slcan.c can: slcan/vcan: eliminate banner[] variable, switch to pr_info() 2014-12-07 21:22:05 +01:00
ti_hecc.c can: move can_stats.bus_off++ from can_bus_off into can_change_state 2015-01-20 13:56:53 +01:00
vcan.c can: slcan/vcan: eliminate banner[] variable, switch to pr_info() 2014-12-07 21:22:05 +01:00
xilinx_can.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00