aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/can
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/can')
-rw-r--r--drivers/net/can/mscan/mscan.c8
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)
581 581
582 priv->open_time = jiffies; 582 priv->open_time = jiffies;
583 583
584 clrbits8(&regs->canctl1, MSCAN_LISTEN); 584 if (ctrlmode.flags & CAN_CTRLMODE_LISTENONLY)
585 setbits8(&regs->canctl1, MSCAN_LISTEN);
586 else
587 clrbits8(&regs->canctl1, MSCAN_LISTEN);
585 588
586 ret = mscan_start(dev); 589 ret = mscan_start(dev);
587 if (ret) 590 if (ret)
@@ -690,7 +693,8 @@ struct net_device *alloc_mscandev(void)
690 priv->can.bittiming_const = &mscan_bittiming_const; 693 priv->can.bittiming_const = &mscan_bittiming_const;
691 priv->can.do_set_bittiming = mscan_do_set_bittiming; 694 priv->can.do_set_bittiming = mscan_do_set_bittiming;
692 priv->can.do_set_mode = mscan_do_set_mode; 695 priv->can.do_set_mode = mscan_do_set_mode;
693 priv->can.ctrlmode_supported = CAN_CTRLMODE_3_SAMPLES; 696 priv->can.ctrlmode_supported = CAN_CTRLMODE_3_SAMPLES |
697 CAN_CTRLMODE_LISTENONLY;
694 698
695 for (i = 0; i < TX_QUEUE_SIZE; i++) { 699 for (i = 0; i < TX_QUEUE_SIZE; i++) {
696 priv->tx_queue[i].id = i; 700 priv->tx_queue[i].id = i;