Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fea9294c authored by Tomoya's avatar Tomoya Committed by David S. Miller
Browse files

pch_can: Optimize "if" condition in rx/tx processing



For reduce "if" condition, easy to read/understand the code,
optimize "if" condition in rx/tx processing.

Signed-off-by: default avatarTomoya MORINAGA <tomoya-linux@dsn.okisemi.com>
Acked-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 3332bc54
Loading
Loading
Loading
Loading
+10 −16
Original line number Diff line number Diff line
@@ -746,19 +746,16 @@ static int pch_can_poll(struct napi_struct *napi, int quota)

	if (int_stat == PCH_STATUS_INT) {
		reg_stat = ioread32(&priv->regs->stat);
		if (reg_stat & (PCH_BUS_OFF | PCH_LEC_ALL)) {
			if (reg_stat & PCH_BUS_OFF ||
			   (reg_stat & PCH_LEC_ALL) != PCH_LEC_ALL) {

		if ((reg_stat & (PCH_BUS_OFF | PCH_LEC_ALL)) &&
		   ((reg_stat & PCH_LEC_ALL) != PCH_LEC_ALL)) {
			pch_can_error(ndev, reg_stat);
			quota--;
		}
		}

		if (reg_stat & PCH_TX_OK)
			pch_can_bit_clear(&priv->regs->stat, PCH_TX_OK);

		if (reg_stat & PCH_RX_OK)
			pch_can_bit_clear(&priv->regs->stat, PCH_RX_OK);
		if (reg_stat & (PCH_TX_OK | PCH_RX_OK))
			pch_can_bit_clear(&priv->regs->stat,
					  reg_stat & (PCH_TX_OK | PCH_RX_OK));

		int_stat = pch_can_int_pending(priv);
	}
@@ -900,14 +897,13 @@ static netdev_tx_t pch_xmit(struct sk_buff *skb, struct net_device *ndev)
	if (can_dropped_invalid_skb(ndev, skb))
		return NETDEV_TX_OK;

	tx_obj_no = priv->tx_obj;
	if (priv->tx_obj == PCH_TX_OBJ_END) {
		if (ioread32(&priv->regs->treq2) & PCH_TREQ2_TX_MASK)
			netif_stop_queue(ndev);

		tx_obj_no = priv->tx_obj;
		priv->tx_obj = PCH_TX_OBJ_START;
	} else {
		tx_obj_no = priv->tx_obj;
		priv->tx_obj++;
	}

@@ -926,9 +922,7 @@ static netdev_tx_t pch_xmit(struct sk_buff *skb, struct net_device *ndev)
	id2 |= PCH_ID_MSGVAL;

	/* If remote frame has to be transmitted.. */
	if (cf->can_id & CAN_RTR_FLAG)
		id2 &= ~PCH_ID2_DIR;
	else
	if (!(cf->can_id & CAN_RTR_FLAG))
		id2 |= PCH_ID2_DIR;

	iowrite32(id2, &priv->regs->ifregs[1].id2);