can: mcp251x: Move to threaded interrupts instead of workqueues.
authorChristian Pellegrin <chripell@fsfe.org>
Wed, 3 Feb 2010 07:39:54 +0000 (07:39 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 4 Feb 2010 04:32:28 +0000 (20:32 -0800)
commitbf66f3736a945dd4e92d86427276c6eeab0a6c1d
tree997d7552463813e0855e77cd85e67c81bcfc6cbd
parent35cfabdc5e9b99e732899db8f36c63a215e105bc
can: mcp251x: Move to threaded interrupts instead of workqueues.

This patch addresses concerns about efficiency of handling incoming
packets. Handling of interrupts is done in a threaded interrupt handler
which has a smaller latency than workqueues. This change needed a rework
of the locking scheme that was much simplified. Some other (more or less
longstanding) bugs are fixed: utilization of just half of the RX
buffers, useless wait for interrupt on open, more reliable reset
sequence. The MERR interrupt is not used anymore: it overloads the CPU
in error-passive state without any additional information. One shot mode
is disabled because it's not clear if it can be handled efficiently on
this CAN controller.

Signed-off-by: Christian Pellegrin <chripell@fsfe.org>
Acked-by: Wolfgang Grandegger <wg@grandegger.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/can/mcp251x.c