diff options
Diffstat (limited to '')
| -rw-r--r-- | drivers/net/can/bfin_can.c | 2 | ||||
| -rw-r--r-- | drivers/net/can/c_can/c_can.c | 7 | ||||
| -rw-r--r-- | drivers/net/can/cc770/cc770.c | 2 | ||||
| -rw-r--r-- | drivers/net/can/flexcan.c | 4 | ||||
| -rw-r--r-- | drivers/net/can/janz-ican3.c | 1 | ||||
| -rw-r--r-- | drivers/net/can/m_can/m_can.c | 7 | ||||
| -rw-r--r-- | drivers/net/can/pch_can.c | 3 | ||||
| -rw-r--r-- | drivers/net/can/rcar_can.c | 11 | ||||
| -rw-r--r-- | drivers/net/can/sja1000/sja1000.c | 4 | ||||
| -rw-r--r-- | drivers/net/can/sun4i_can.c | 1 | ||||
| -rw-r--r-- | drivers/net/can/ti_hecc.c | 7 | ||||
| -rw-r--r-- | drivers/net/can/usb/ems_usb.c | 1 | ||||
| -rw-r--r-- | drivers/net/can/usb/esd_usb2.c | 1 | ||||
| -rw-r--r-- | drivers/net/can/usb/kvaser_usb.c | 5 | ||||
| -rw-r--r-- | drivers/net/can/usb/usb_8dev.c | 4 | ||||
| -rw-r--r-- | drivers/net/can/xilinx_can.c | 9 | 
16 files changed, 24 insertions, 45 deletions
diff --git a/drivers/net/can/bfin_can.c b/drivers/net/can/bfin_can.c index 57dadd52b428..1deb8ff90a89 100644 --- a/drivers/net/can/bfin_can.c +++ b/drivers/net/can/bfin_can.c @@ -501,8 +501,6 @@ static int bfin_can_err(struct net_device *dev, u16 isrc, u16 status)  			cf->data[2] |= CAN_ERR_PROT_FORM;  		else if (status & SER)  			cf->data[2] |= CAN_ERR_PROT_STUFF; -		else -			cf->data[2] |= CAN_ERR_PROT_UNSPEC;  	}  	priv->can.state = state; diff --git a/drivers/net/can/c_can/c_can.c b/drivers/net/can/c_can/c_can.c index 5d214d135332..f91b094288da 100644 --- a/drivers/net/can/c_can/c_can.c +++ b/drivers/net/can/c_can/c_can.c @@ -962,7 +962,6 @@ static int c_can_handle_bus_err(struct net_device *dev,  	 * type of the last error to occur on the CAN bus  	 */  	cf->can_id |= CAN_ERR_PROT | CAN_ERR_BUSERROR; -	cf->data[2] |= CAN_ERR_PROT_UNSPEC;  	switch (lec_type) {  	case LEC_STUFF_ERROR: @@ -975,8 +974,7 @@ static int c_can_handle_bus_err(struct net_device *dev,  		break;  	case LEC_ACK_ERROR:  		netdev_dbg(dev, "ack error\n"); -		cf->data[3] |= (CAN_ERR_PROT_LOC_ACK | -				CAN_ERR_PROT_LOC_ACK_DEL); +		cf->data[3] = CAN_ERR_PROT_LOC_ACK;  		break;  	case LEC_BIT1_ERROR:  		netdev_dbg(dev, "bit1 error\n"); @@ -988,8 +986,7 @@ static int c_can_handle_bus_err(struct net_device *dev,  		break;  	case LEC_CRC_ERROR:  		netdev_dbg(dev, "CRC error\n"); -		cf->data[3] |= (CAN_ERR_PROT_LOC_CRC_SEQ | -				CAN_ERR_PROT_LOC_CRC_DEL); +		cf->data[3] = CAN_ERR_PROT_LOC_CRC_SEQ;  		break;  	default:  		break; diff --git a/drivers/net/can/cc770/cc770.c b/drivers/net/can/cc770/cc770.c index 70a8cbb29e75..1e37313054f3 100644 --- a/drivers/net/can/cc770/cc770.c +++ b/drivers/net/can/cc770/cc770.c @@ -578,7 +578,7 @@ static int cc770_err(struct net_device *dev, u8 status)  				cf->data[2] |= CAN_ERR_PROT_BIT0;  				break;  			case STAT_LEC_CRC: -				cf->data[3] |= CAN_ERR_PROT_LOC_CRC_SEQ; +				cf->data[3] = CAN_ERR_PROT_LOC_CRC_SEQ;  				break;  			}  		} diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c index 868fe945e35a..41c0fc9f3b14 100644 --- a/drivers/net/can/flexcan.c +++ b/drivers/net/can/flexcan.c @@ -535,13 +535,13 @@ static void do_bus_err(struct net_device *dev,  	if (reg_esr & FLEXCAN_ESR_ACK_ERR) {  		netdev_dbg(dev, "ACK_ERR irq\n");  		cf->can_id |= CAN_ERR_ACK; -		cf->data[3] |= CAN_ERR_PROT_LOC_ACK; +		cf->data[3] = CAN_ERR_PROT_LOC_ACK;  		tx_errors = 1;  	}  	if (reg_esr & FLEXCAN_ESR_CRC_ERR) {  		netdev_dbg(dev, "CRC_ERR irq\n");  		cf->data[2] |= CAN_ERR_PROT_BIT; -		cf->data[3] |= CAN_ERR_PROT_LOC_CRC_SEQ; +		cf->data[3] = CAN_ERR_PROT_LOC_CRC_SEQ;  		rx_errors = 1;  	}  	if (reg_esr & FLEXCAN_ESR_FRM_ERR) { diff --git a/drivers/net/can/janz-ican3.c b/drivers/net/can/janz-ican3.c index c1e85368a198..5d04f5464faf 100644 --- a/drivers/net/can/janz-ican3.c +++ b/drivers/net/can/janz-ican3.c @@ -1096,7 +1096,6 @@ static int ican3_handle_cevtind(struct ican3_dev *mod, struct ican3_msg *msg)  			cf->data[2] |= CAN_ERR_PROT_STUFF;  			break;  		default: -			cf->data[2] |= CAN_ERR_PROT_UNSPEC;  			cf->data[3] = ecc & ECC_SEG;  			break;  		} diff --git a/drivers/net/can/m_can/m_can.c b/drivers/net/can/m_can/m_can.c index ef655177bb5e..39cf911f7a1e 100644 --- a/drivers/net/can/m_can/m_can.c +++ b/drivers/net/can/m_can/m_can.c @@ -487,7 +487,6 @@ static int m_can_handle_lec_err(struct net_device *dev,  	 * type of the last error to occur on the CAN bus  	 */  	cf->can_id |= CAN_ERR_PROT | CAN_ERR_BUSERROR; -	cf->data[2] |= CAN_ERR_PROT_UNSPEC;  	switch (lec_type) {  	case LEC_STUFF_ERROR: @@ -500,8 +499,7 @@ static int m_can_handle_lec_err(struct net_device *dev,  		break;  	case LEC_ACK_ERROR:  		netdev_dbg(dev, "ack error\n"); -		cf->data[3] |= (CAN_ERR_PROT_LOC_ACK | -				CAN_ERR_PROT_LOC_ACK_DEL); +		cf->data[3] = CAN_ERR_PROT_LOC_ACK;  		break;  	case LEC_BIT1_ERROR:  		netdev_dbg(dev, "bit1 error\n"); @@ -513,8 +511,7 @@ static int m_can_handle_lec_err(struct net_device *dev,  		break;  	case LEC_CRC_ERROR:  		netdev_dbg(dev, "CRC error\n"); -		cf->data[3] |= (CAN_ERR_PROT_LOC_CRC_SEQ | -				CAN_ERR_PROT_LOC_CRC_DEL); +		cf->data[3] = CAN_ERR_PROT_LOC_CRC_SEQ;  		break;  	default:  		break; diff --git a/drivers/net/can/pch_can.c b/drivers/net/can/pch_can.c index e187ca783da0..c1317889d3d8 100644 --- a/drivers/net/can/pch_can.c +++ b/drivers/net/can/pch_can.c @@ -559,8 +559,7 @@ static void pch_can_error(struct net_device *ndev, u32 status)  		stats->rx_errors++;  		break;  	case PCH_CRC_ERR: -		cf->data[3] |= CAN_ERR_PROT_LOC_CRC_SEQ | -			       CAN_ERR_PROT_LOC_CRC_DEL; +		cf->data[3] = CAN_ERR_PROT_LOC_CRC_SEQ;  		priv->can.can_stats.bus_error++;  		stats->rx_errors++;  		break; diff --git a/drivers/net/can/rcar_can.c b/drivers/net/can/rcar_can.c index 7bd54191f962..bc46be39549d 100644 --- a/drivers/net/can/rcar_can.c +++ b/drivers/net/can/rcar_can.c @@ -241,17 +241,16 @@ static void rcar_can_error(struct net_device *ndev)  		u8 ecsr;  		netdev_dbg(priv->ndev, "Bus error interrupt:\n"); -		if (skb) { +		if (skb)  			cf->can_id |= CAN_ERR_BUSERROR | CAN_ERR_PROT; -			cf->data[2] = CAN_ERR_PROT_UNSPEC; -		} +  		ecsr = readb(&priv->regs->ecsr);  		if (ecsr & RCAR_CAN_ECSR_ADEF) {  			netdev_dbg(priv->ndev, "ACK Delimiter Error\n");  			tx_errors++;  			writeb(~RCAR_CAN_ECSR_ADEF, &priv->regs->ecsr);  			if (skb) -				cf->data[3] |= CAN_ERR_PROT_LOC_ACK_DEL; +				cf->data[3] = CAN_ERR_PROT_LOC_ACK_DEL;  		}  		if (ecsr & RCAR_CAN_ECSR_BE0F) {  			netdev_dbg(priv->ndev, "Bit Error (dominant)\n"); @@ -272,7 +271,7 @@ static void rcar_can_error(struct net_device *ndev)  			rx_errors++;  			writeb(~RCAR_CAN_ECSR_CEF, &priv->regs->ecsr);  			if (skb) -				cf->data[3] |= CAN_ERR_PROT_LOC_CRC_SEQ; +				cf->data[3] = CAN_ERR_PROT_LOC_CRC_SEQ;  		}  		if (ecsr & RCAR_CAN_ECSR_AEF) {  			netdev_dbg(priv->ndev, "ACK Error\n"); @@ -280,7 +279,7 @@ static void rcar_can_error(struct net_device *ndev)  			writeb(~RCAR_CAN_ECSR_AEF, &priv->regs->ecsr);  			if (skb) {  				cf->can_id |= CAN_ERR_ACK; -				cf->data[3] |= CAN_ERR_PROT_LOC_ACK; +				cf->data[3] = CAN_ERR_PROT_LOC_ACK;  			}  		}  		if (ecsr & RCAR_CAN_ECSR_FEF) { diff --git a/drivers/net/can/sja1000/sja1000.c b/drivers/net/can/sja1000/sja1000.c index 7b92e911a616..8dda3b703d39 100644 --- a/drivers/net/can/sja1000/sja1000.c +++ b/drivers/net/can/sja1000/sja1000.c @@ -218,6 +218,9 @@ static void sja1000_start(struct net_device *dev)  	priv->write_reg(priv, SJA1000_RXERR, 0x0);  	priv->read_reg(priv, SJA1000_ECC); +	/* clear interrupt flags */ +	priv->read_reg(priv, SJA1000_IR); +  	/* leave reset mode */  	set_normal_mode(dev);  } @@ -446,7 +449,6 @@ static int sja1000_err(struct net_device *dev, uint8_t isrc, uint8_t status)  			cf->data[2] |= CAN_ERR_PROT_STUFF;  			break;  		default: -			cf->data[2] |= CAN_ERR_PROT_UNSPEC;  			cf->data[3] = ecc & ECC_SEG;  			break;  		} diff --git a/drivers/net/can/sun4i_can.c b/drivers/net/can/sun4i_can.c index d9a42c646783..68ef0a4cd821 100644 --- a/drivers/net/can/sun4i_can.c +++ b/drivers/net/can/sun4i_can.c @@ -575,7 +575,6 @@ static int sun4i_can_err(struct net_device *dev, u8 isrc, u8 status)  				cf->data[2] |= CAN_ERR_PROT_STUFF;  				break;  			default: -				cf->data[2] |= CAN_ERR_PROT_UNSPEC;  				cf->data[3] = (ecc & SUN4I_STA_ERR_SEG_CODE)  					       >> 16;  				break; diff --git a/drivers/net/can/ti_hecc.c b/drivers/net/can/ti_hecc.c index cf345cbfe819..680d1ff07a55 100644 --- a/drivers/net/can/ti_hecc.c +++ b/drivers/net/can/ti_hecc.c @@ -722,7 +722,6 @@ static int ti_hecc_error(struct net_device *ndev, int int_status,  	if (err_status & HECC_BUS_ERROR) {  		++priv->can.can_stats.bus_error;  		cf->can_id |= CAN_ERR_BUSERROR | CAN_ERR_PROT; -		cf->data[2] |= CAN_ERR_PROT_UNSPEC;  		if (err_status & HECC_CANES_FE) {  			hecc_set_bit(priv, HECC_CANES, HECC_CANES_FE);  			cf->data[2] |= CAN_ERR_PROT_FORM; @@ -737,13 +736,11 @@ static int ti_hecc_error(struct net_device *ndev, int int_status,  		}  		if (err_status & HECC_CANES_CRCE) {  			hecc_set_bit(priv, HECC_CANES, HECC_CANES_CRCE); -			cf->data[3] |= CAN_ERR_PROT_LOC_CRC_SEQ | -					CAN_ERR_PROT_LOC_CRC_DEL; +			cf->data[3] = CAN_ERR_PROT_LOC_CRC_SEQ;  		}  		if (err_status & HECC_CANES_ACKE) {  			hecc_set_bit(priv, HECC_CANES, HECC_CANES_ACKE); -			cf->data[3] |= CAN_ERR_PROT_LOC_ACK | -					CAN_ERR_PROT_LOC_ACK_DEL; +			cf->data[3] = CAN_ERR_PROT_LOC_ACK;  		}  	} diff --git a/drivers/net/can/usb/ems_usb.c b/drivers/net/can/usb/ems_usb.c index 2d390384ef3b..fc5b75675cd8 100644 --- a/drivers/net/can/usb/ems_usb.c +++ b/drivers/net/can/usb/ems_usb.c @@ -377,7 +377,6 @@ static void ems_usb_rx_err(struct ems_usb *dev, struct ems_cpc_msg *msg)  			cf->data[2] |= CAN_ERR_PROT_STUFF;  			break;  		default: -			cf->data[2] |= CAN_ERR_PROT_UNSPEC;  			cf->data[3] = ecc & SJA1000_ECC_SEG;  			break;  		} diff --git a/drivers/net/can/usb/esd_usb2.c b/drivers/net/can/usb/esd_usb2.c index 0e5a4493ba4f..113e64fcd73b 100644 --- a/drivers/net/can/usb/esd_usb2.c +++ b/drivers/net/can/usb/esd_usb2.c @@ -282,7 +282,6 @@ static void esd_usb2_rx_event(struct esd_usb2_net_priv *priv,  				cf->data[2] |= CAN_ERR_PROT_STUFF;  				break;  			default: -				cf->data[2] |= CAN_ERR_PROT_UNSPEC;  				cf->data[3] = ecc & SJA1000_ECC_SEG;  				break;  			} diff --git a/drivers/net/can/usb/kvaser_usb.c b/drivers/net/can/usb/kvaser_usb.c index 8b17a9065b0b..022bfa13ebfa 100644 --- a/drivers/net/can/usb/kvaser_usb.c +++ b/drivers/net/can/usb/kvaser_usb.c @@ -944,10 +944,9 @@ static void kvaser_usb_rx_error(const struct kvaser_usb *dev,  			cf->can_id |= CAN_ERR_BUSERROR | CAN_ERR_PROT;  			if (es->leaf.error_factor & M16C_EF_ACKE) -				cf->data[3] |= (CAN_ERR_PROT_LOC_ACK); +				cf->data[3] = CAN_ERR_PROT_LOC_ACK;  			if (es->leaf.error_factor & M16C_EF_CRCE) -				cf->data[3] |= (CAN_ERR_PROT_LOC_CRC_SEQ | -						CAN_ERR_PROT_LOC_CRC_DEL); +				cf->data[3] = CAN_ERR_PROT_LOC_CRC_SEQ;  			if (es->leaf.error_factor & M16C_EF_FORME)  				cf->data[2] |= CAN_ERR_PROT_FORM;  			if (es->leaf.error_factor & M16C_EF_STFE) diff --git a/drivers/net/can/usb/usb_8dev.c b/drivers/net/can/usb/usb_8dev.c index de95b1ccba3e..a731720f1d13 100644 --- a/drivers/net/can/usb/usb_8dev.c +++ b/drivers/net/can/usb/usb_8dev.c @@ -401,9 +401,7 @@ static void usb_8dev_rx_err_msg(struct usb_8dev_priv *priv,  		tx_errors = 1;  		break;  	case USB_8DEV_STATUSMSG_CRC: -		cf->data[2] |= CAN_ERR_PROT_UNSPEC; -		cf->data[3] |= CAN_ERR_PROT_LOC_CRC_SEQ | -			       CAN_ERR_PROT_LOC_CRC_DEL; +		cf->data[3] = CAN_ERR_PROT_LOC_CRC_SEQ;  		rx_errors = 1;  		break;  	case USB_8DEV_STATUSMSG_BIT0: diff --git a/drivers/net/can/xilinx_can.c b/drivers/net/can/xilinx_can.c index fc55e8e0351d..51670b322409 100644 --- a/drivers/net/can/xilinx_can.c +++ b/drivers/net/can/xilinx_can.c @@ -608,17 +608,15 @@ static void xcan_err_interrupt(struct net_device *ndev, u32 isr)  	/* Check for error interrupt */  	if (isr & XCAN_IXR_ERROR_MASK) { -		if (skb) { +		if (skb)  			cf->can_id |= CAN_ERR_PROT | CAN_ERR_BUSERROR; -			cf->data[2] |= CAN_ERR_PROT_UNSPEC; -		}  		/* Check for Ack error interrupt */  		if (err_status & XCAN_ESR_ACKER_MASK) {  			stats->tx_errors++;  			if (skb) {  				cf->can_id |= CAN_ERR_ACK; -				cf->data[3] |= CAN_ERR_PROT_LOC_ACK; +				cf->data[3] = CAN_ERR_PROT_LOC_ACK;  			}  		} @@ -654,8 +652,7 @@ static void xcan_err_interrupt(struct net_device *ndev, u32 isr)  			stats->rx_errors++;  			if (skb) {  				cf->can_id |= CAN_ERR_PROT; -				cf->data[3] = CAN_ERR_PROT_LOC_CRC_SEQ | -						CAN_ERR_PROT_LOC_CRC_DEL; +				cf->data[3] = CAN_ERR_PROT_LOC_CRC_SEQ;  			}  		}  			priv->can.can_stats.bus_error++;  | 
