mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-22 23:12:32 +00:00
37 lines
1.3 KiB
Diff
37 lines
1.3 KiB
Diff
|
From a3ba7e3519d3dce17a0224b552fb88b7728f7061 Mon Sep 17 00:00:00 2001
|
||
|
From: Phil Elwell <phil@raspberrypi.org>
|
||
|
Date: Tue, 14 Nov 2017 11:03:22 +0000
|
||
|
Subject: [PATCH 104/703] mcp2515: Use DT-supplied interrupt flags
|
||
|
|
||
|
The MCP2515 datasheet clearly describes a level-triggered interrupt
|
||
|
pin. Therefore the receiving interrupt controller must also be
|
||
|
configured for level-triggered operation otherwise there is a danger
|
||
|
of a missed interrupt condition blocking all subsequent interrupts.
|
||
|
The ONESHOT flag ensures that the interrupt is masked until the
|
||
|
threaded interrupt handler exits.
|
||
|
|
||
|
Rather than change the flags globally (they must have worked for at
|
||
|
least one user), allow the flags to be overridden from Device Tree
|
||
|
in the event that the device has a DT node.
|
||
|
|
||
|
See: https://github.com/raspberrypi/linux/issues/2175
|
||
|
https://github.com/raspberrypi/linux/issues/2263
|
||
|
|
||
|
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||
|
---
|
||
|
drivers/net/can/spi/mcp251x.c | 3 +++
|
||
|
1 file changed, 3 insertions(+)
|
||
|
|
||
|
--- a/drivers/net/can/spi/mcp251x.c
|
||
|
+++ b/drivers/net/can/spi/mcp251x.c
|
||
|
@@ -951,6 +951,9 @@ static int mcp251x_open(struct net_devic
|
||
|
priv->tx_skb = NULL;
|
||
|
priv->tx_len = 0;
|
||
|
|
||
|
+ if (spi->dev.of_node)
|
||
|
+ flags = 0;
|
||
|
+
|
||
|
ret = request_threaded_irq(spi->irq, NULL, mcp251x_can_ist,
|
||
|
flags | IRQF_ONESHOT, DEVICE_NAME, priv);
|
||
|
if (ret) {
|