linux/drivers/net/can
Thomas Gleixner fa39b54ccf can: c_can: Get rid of pointless interrupts
The driver handles pointlessly TWO interrupts per packet. The reason
is that it enables the status interrupt which fires for each rx and tx
packet and it enables the per message object interrupts as well.

The status interrupt merily acks or in case of D_CAN ignores the TX/RX
state and then the message object interrupt fires.

The message objects interrupts are only useful if all message objects
have hardware filters activated.

But we don't have that and its not simple to implement in that driver
without rewriting it completely.

So we can ditch the message object interrupts and handle the RX/TX
right away from the status interrupt. Instead of TWO we handle ONE.

Note: We must keep the TXIE/RXIE bits in the message buffers because
the status interrupt alone is not reliable enough in corner cases.

If we ever have the need for HW filtering, then this code needs a
complete overhaul and we can think about it then. For now we prefer a
lower interrupt load.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Alexander Stein <alexander.stein@systec-electronic.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2014-04-24 22:08:57 +02:00
..
c_can can: c_can: Get rid of pointless interrupts 2014-04-24 22:08:57 +02:00
cc770 can: Unify MTU settings for CAN interfaces 2014-03-17 09:20:16 +01:00
mscan can: Unify MTU settings for CAN interfaces 2014-03-17 09:20:16 +01:00
sja1000 Kconfig: rename HAS_IOPORT to HAS_IOPORT_MAP 2014-04-07 16:36:11 -07:00
softing can: populate netdev::dev_id for udev discrimination 2014-03-17 09:20:16 +01:00
usb linux-can-fixes-for-3.15-20140401 2014-04-01 17:49:50 -04:00
at91_can.c can: Unify MTU settings for CAN interfaces 2014-03-17 09:20:16 +01:00
bfin_can.c can: Unify MTU settings for CAN interfaces 2014-03-17 09:20:16 +01:00
dev.c can: add bittiming check at interface open for CAN FD 2014-03-07 09:18:23 +01:00
flexcan.c can: Unify MTU settings for CAN interfaces 2014-03-17 09:20:16 +01:00
grcan.c can: Unify MTU settings for CAN interfaces 2014-03-17 09:20:16 +01:00
janz-ican3.c can: Unify MTU settings for CAN interfaces 2014-03-17 09:20:16 +01:00
Kconfig can: flexcan: fix flexcan driver build for big endian on ARM and little endian on PowerPc 2014-01-29 20:23:22 +01:00
led.c net: pass info struct via netdevice notifier 2013-05-28 13:11:01 -07:00
Makefile can: add tx/rx LED trigger support 2013-01-26 16:58:59 +01:00
mcp251x.c can: mcp251x: Fix regulators operation without CONFIG_REGULATOR 2014-03-17 09:20:17 +01:00
pch_can.c can: Unify MTU settings for CAN interfaces 2014-03-17 09:20:16 +01:00
slcan.c can: Unify MTU settings for CAN interfaces 2014-03-17 09:20:16 +01:00
ti_hecc.c can: Unify MTU settings for CAN interfaces 2014-03-17 09:20:16 +01:00
vcan.c can: add destructor for self generated skbs 2014-01-30 16:25:49 -08:00