diff options
author | Takashi Iwai <tiwai@suse.de> | 2014-09-08 13:01:10 +0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2014-09-08 13:01:44 +0400 |
commit | 7fd4394dfe1db02ba904dfa1048f718cbca822d1 (patch) | |
tree | 902d159ced8c873ee8f58c3301c30f674f099a03 /drivers/net/can/flexcan.c | |
parent | d6cc58e127a0b7df78d869a29ff073da6fb899bb (diff) | |
parent | 7af142f752116e86adbe2073f2922d8265a77709 (diff) | |
download | linux-7fd4394dfe1db02ba904dfa1048f718cbca822d1.tar.xz |
Merge branch 'topic/pcm-nonatomic' into for-next
This is a merge for exending PCM ops to be non-atomic.
Diffstat (limited to 'drivers/net/can/flexcan.c')
-rw-r--r-- | drivers/net/can/flexcan.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c index f425ec2c7839..944aa5d3af6e 100644 --- a/drivers/net/can/flexcan.c +++ b/drivers/net/can/flexcan.c @@ -549,6 +549,13 @@ static void do_state(struct net_device *dev, /* process state changes depending on the new state */ switch (new_state) { + case CAN_STATE_ERROR_WARNING: + netdev_dbg(dev, "Error Warning\n"); + cf->can_id |= CAN_ERR_CRTL; + cf->data[1] = (bec.txerr > bec.rxerr) ? + CAN_ERR_CRTL_TX_WARNING : + CAN_ERR_CRTL_RX_WARNING; + break; case CAN_STATE_ERROR_ACTIVE: netdev_dbg(dev, "Error Active\n"); cf->can_id |= CAN_ERR_PROT; @@ -852,6 +859,8 @@ static int flexcan_chip_start(struct net_device *dev) if (priv->devtype_data->features & FLEXCAN_HAS_BROKEN_ERR_STATE || priv->can.ctrlmode & CAN_CTRLMODE_BERR_REPORTING) reg_ctrl |= FLEXCAN_CTRL_ERR_MSK; + else + reg_ctrl &= ~FLEXCAN_CTRL_ERR_MSK; /* save for later use */ priv->reg_ctrl_default = reg_ctrl; |