linux/drivers/net/can
Ira W. Snyder 83702f6927 can: janz-ican3: fix support for CAN_RAW_RECV_OWN_MSGS
The Janz VMOD-ICAN3 firmware does not support any sort of TX-done
notification or interrupt. The driver previously used the hardware
loopback to attempt to work around this deficiency, but this caused all
sockets to receive all messages, even if CAN_RAW_RECV_OWN_MSGS is off.

Using the new function ican3_cmp_echo_skb(), we can drop the loopback
messages and return the original skbs. This fixes the issues with
CAN_RAW_RECV_OWN_MSGS.

A private skb queue is used to store the echo skbs. This avoids the need
for any index management.

Due to a lack of TX-error interrupts, bus errors are permanently
enabled, and are used as a TX-error notification. This is used to drop
an echo skb when transmission fails. Bus error packets are not generated
if the user has not enabled bus error reporting.

Signed-off-by: Ira W. Snyder <iws@ovro.caltech.edu>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2012-07-20 17:49:04 +02:00
..
c_can can: mark bittiming_const pointer in struct can_priv as const 2012-07-20 12:31:05 +02:00
cc770 can: mark bittiming_const pointer in struct can_priv as const 2012-07-20 12:31:05 +02:00
mscan can: mark bittiming_const pointer in struct can_priv as const 2012-07-20 12:31:05 +02:00
sja1000 can: mark bittiming_const pointer in struct can_priv as const 2012-07-20 12:31:05 +02:00
softing can: softing: softing_main: ensure a consistent return value in error case 2012-07-17 09:35:59 +02:00
usb can: mark bittiming_const pointer in struct can_priv as const 2012-07-20 12:31:05 +02:00
at91_can.c can: mark bittiming_const pointer in struct can_priv as const 2012-07-20 12:31:05 +02:00
bfin_can.c can: mark bittiming_const pointer in struct can_priv as const 2012-07-20 12:31:05 +02:00
dev.c can: dev: fix sparse warning for can_restart 2012-07-02 11:07:25 +02:00
flexcan.c can: flexcan: add 2nd clock to support imx53 and newer 2012-07-20 12:31:05 +02:00
janz-ican3.c can: janz-ican3: fix support for CAN_RAW_RECV_OWN_MSGS 2012-07-20 17:49:04 +02:00
Kconfig can: Kconfig: add more information about Intel EG20T PCH CAN controller 2012-02-03 01:21:26 +01:00
Makefile can: cc770: add driver core for the Bosch CC770 and Intel AN82527 2011-12-01 13:09:31 -05:00
mcp251x.c can: mark bittiming_const pointer in struct can_priv as const 2012-07-20 12:31:05 +02:00
pch_can.c can: mark bittiming_const pointer in struct can_priv as const 2012-07-20 12:31:05 +02:00
slcan.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
ti_hecc.c can: mark bittiming_const pointer in struct can_priv as const 2012-07-20 12:31:05 +02:00
vcan.c vcan: add CAN FD support 2012-06-19 21:40:20 +02:00