diff options
author | Marc Kleine-Budde <mkl@pengutronix.de> | 2011-11-09 10:50:49 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-11-14 00:51:22 -0500 |
commit | 452448f9283e1939408b397e87974a418825b0a8 (patch) | |
tree | 8c4a3f41eff61985f1afc53149ad10538e3df3ea /drivers/net/can/mscan | |
parent | 8b5c171bb3dc0686b2647a84e990199c5faa9ef8 (diff) | |
download | talos-op-linux-452448f9283e1939408b397e87974a418825b0a8.tar.gz talos-op-linux-452448f9283e1939408b397e87974a418825b0a8.zip |
net/can/mscan: add listen only mode
This patch adds listen only mode to the mscan controller.
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Acked-by: Wolfgang Grandegger <wg@grandegger.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/can/mscan')
-rw-r--r-- | drivers/net/can/mscan/mscan.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/net/can/mscan/mscan.c b/drivers/net/can/mscan/mscan.c index ec4a3119e2c9..74f3b1829e02 100644 --- a/drivers/net/can/mscan/mscan.c +++ b/drivers/net/can/mscan/mscan.c @@ -581,7 +581,10 @@ static int mscan_open(struct net_device *dev) priv->open_time = jiffies; - clrbits8(®s->canctl1, MSCAN_LISTEN); + if (ctrlmode.flags & CAN_CTRLMODE_LISTENONLY) + setbits8(®s->canctl1, MSCAN_LISTEN); + else + clrbits8(®s->canctl1, MSCAN_LISTEN); ret = mscan_start(dev); if (ret) @@ -690,7 +693,8 @@ struct net_device *alloc_mscandev(void) priv->can.bittiming_const = &mscan_bittiming_const; priv->can.do_set_bittiming = mscan_do_set_bittiming; priv->can.do_set_mode = mscan_do_set_mode; - priv->can.ctrlmode_supported = CAN_CTRLMODE_3_SAMPLES; + priv->can.ctrlmode_supported = CAN_CTRLMODE_3_SAMPLES | + CAN_CTRLMODE_LISTENONLY; for (i = 0; i < TX_QUEUE_SIZE; i++) { priv->tx_queue[i].id = i; |