diff options
Diffstat (limited to 'drivers/net')
-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) | |||
581 | 581 | ||
582 | priv->open_time = jiffies; | 582 | priv->open_time = jiffies; |
583 | 583 | ||
584 | clrbits8(®s->canctl1, MSCAN_LISTEN); | 584 | if (ctrlmode.flags & CAN_CTRLMODE_LISTENONLY) |
585 | setbits8(®s->canctl1, MSCAN_LISTEN); | ||
586 | else | ||
587 | clrbits8(®s->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; |