From d1cf7a7a9a3bae2c28627860e398926e4193ec61 Mon Sep 17 00:00:00 2001 From: Marc Kleine-Budde Date: Mon, 4 Oct 2010 12:09:31 +0200 Subject: [PATCH] --- yaml --- r: 215215 b: refs/heads/master c: 9c473fc33915ddb14b71a4929c838c22b20a24ce h: refs/heads/master i: 215213: e454a192bfa7f8fbdaf8833ebeae9ef1655de2b7 215211: 061959d4fb0c45f07a880125cbaf1a398bc941c1 215207: 41c85aa9b980d7781e0470be53d98bb8fe3afa83 215199: c91c9731d3dbd2e6fbd97cb41055394eed5b5ac8 v: v3 --- [refs] | 2 +- trunk/drivers/net/can/mcp251x.c | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index c35ff543b2ff..bf66bfe58292 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: beab675cb45f28a4a76780e43fd03e33bc773555 +refs/heads/master: 9c473fc33915ddb14b71a4929c838c22b20a24ce diff --git a/trunk/drivers/net/can/mcp251x.c b/trunk/drivers/net/can/mcp251x.c index 7f8aa4ce02c5..c664be261e98 100644 --- a/trunk/drivers/net/can/mcp251x.c +++ b/trunk/drivers/net/can/mcp251x.c @@ -793,15 +793,20 @@ static irqreturn_t mcp251x_can_ist(int irq, void *dev_id) /* receive buffer 0 */ if (intf & CANINTF_RX0IF) { mcp251x_hw_rx(spi, 0); - /* Free one buffer ASAP */ - mcp251x_write_bits(spi, CANINTF, intf & CANINTF_RX0IF, - 0x00); + /* + * Free one buffer ASAP + * (The MCP2515 does this automatically.) + */ + if (mcp251x_is_2510(spi)) + mcp251x_write_bits(spi, CANINTF, CANINTF_RX0IF, 0x00); } /* receive buffer 1 */ if (intf & CANINTF_RX1IF) { mcp251x_hw_rx(spi, 1); - clear_intf |= CANINTF_RX1IF; + /* the MCP2515 does this automatically */ + if (mcp251x_is_2510(spi)) + clear_intf |= CANINTF_RX1IF; } /* any error or tx interrupt we need to clear? */