From: Marc Kleine-Budde <mkl@pengutronix.de>
To: Tomoya MORINAGA <tomoya-linux@dsn.okisemi.com>
Cc: Wolfgang Grandegger <wg@grandegger.com>,
socketcan-core@lists.berlios.de, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org, andrew.chih.howe.khor@intel.com,
qi.wang@intel.com, margie.foster@intel.com,
yong.y.wang@intel.com, kok.howg.ewe@intel.com,
joel.clark@intel.com
Subject: Re: [PATCH net-next-2.6 v8 18/20] CAN : Optimize "if" condition in rx/tx processing
Date: Sun, 12 Dec 2010 16:16:45 +0100 [thread overview]
Message-ID: <4D04E75D.10704@pengutronix.de> (raw)
In-Reply-To: <4CFE166D.8040805@dsn.okisemi.com>
[-- Attachment #1: Type: text/plain, Size: 2671 bytes --]
On 12/07/2010 12:11 PM, Tomoya MORINAGA wrote:
> For reduce "if" condition, easy to read/understand the code,
> optimize "if" condition in rx/tx processing.
>
> Signed-off-by: Tomoya MORINAGA <tomoya-linux@dsn.okisemi.com>
Acked-by: Marc Kleine-Budde <mkl@pengutronix.de>
> ---
> drivers/net/can/pch_can.c | 26 ++++++++++----------------
> 1 files changed, 10 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/net/can/pch_can.c b/drivers/net/can/pch_can.c
> index 8efbe35..dcd8f00 100644
> --- a/drivers/net/can/pch_can.c
> +++ b/drivers/net/can/pch_can.c
> @@ -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) {
> - 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_BUS_OFF | PCH_LEC_ALL)) &&
> + ((reg_stat & PCH_LEC_ALL) != PCH_LEC_ALL)) {
> + pch_can_error(ndev, reg_stat);
> + quota--;
> + }
>
> - 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);
--
Pengutronix e.K. | Marc Kleine-Budde |
Industrial Linux Solutions | Phone: +49-231-2826-924 |
Vertretung West/Dortmund | Fax: +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de |
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 262 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: Marc Kleine-Budde <mkl-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
To: Tomoya MORINAGA <tomoya-linux-ECg8zkTtlr0C6LszWs/t0g@public.gmane.org>
Cc: andrew.chih.howe.khor-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org,
qi.wang-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org,
margie.foster-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org,
netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
yong.y.wang-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org,
socketcan-core-0fE9KPoRgkgATYTw5x5z8w@public.gmane.org,
kok.howg.ewe-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org,
joel.clark-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org,
Wolfgang Grandegger <wg-5Yr1BZd7O62+XT7JhA+gdA@public.gmane.org>
Subject: Re: [PATCH net-next-2.6 v8 18/20] CAN : Optimize "if" condition in rx/tx processing
Date: Sun, 12 Dec 2010 16:16:45 +0100 [thread overview]
Message-ID: <4D04E75D.10704@pengutronix.de> (raw)
In-Reply-To: <4CFE166D.8040805-ECg8zkTtlr0C6LszWs/t0g@public.gmane.org>
[-- Attachment #1.1: Type: text/plain, Size: 2720 bytes --]
On 12/07/2010 12:11 PM, Tomoya MORINAGA wrote:
> For reduce "if" condition, easy to read/understand the code,
> optimize "if" condition in rx/tx processing.
>
> Signed-off-by: Tomoya MORINAGA <tomoya-linux-ECg8zkTtlr0C6LszWs/t0g@public.gmane.org>
Acked-by: Marc Kleine-Budde <mkl-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
> ---
> drivers/net/can/pch_can.c | 26 ++++++++++----------------
> 1 files changed, 10 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/net/can/pch_can.c b/drivers/net/can/pch_can.c
> index 8efbe35..dcd8f00 100644
> --- a/drivers/net/can/pch_can.c
> +++ b/drivers/net/can/pch_can.c
> @@ -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) {
> - 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_BUS_OFF | PCH_LEC_ALL)) &&
> + ((reg_stat & PCH_LEC_ALL) != PCH_LEC_ALL)) {
> + pch_can_error(ndev, reg_stat);
> + quota--;
> + }
>
> - 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);
--
Pengutronix e.K. | Marc Kleine-Budde |
Industrial Linux Solutions | Phone: +49-231-2826-924 |
Vertretung West/Dortmund | Fax: +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de |
[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 262 bytes --]
[-- Attachment #2: Type: text/plain, Size: 188 bytes --]
_______________________________________________
Socketcan-core mailing list
Socketcan-core-0fE9KPoRgkgATYTw5x5z8w@public.gmane.org
https://lists.berlios.de/mailman/listinfo/socketcan-core
next prev parent reply other threads:[~2010-12-12 18:29 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-07 11:11 [PATCH net-next-2.6 v8 18/20] CAN : Optimize "if" condition in rx/tx processing Tomoya MORINAGA
2010-12-07 11:11 ` Tomoya MORINAGA
2010-12-12 15:16 ` Marc Kleine-Budde [this message]
2010-12-12 15:16 ` Marc Kleine-Budde
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4D04E75D.10704@pengutronix.de \
--to=mkl@pengutronix.de \
--cc=andrew.chih.howe.khor@intel.com \
--cc=joel.clark@intel.com \
--cc=kok.howg.ewe@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=margie.foster@intel.com \
--cc=netdev@vger.kernel.org \
--cc=qi.wang@intel.com \
--cc=socketcan-core@lists.berlios.de \
--cc=tomoya-linux@dsn.okisemi.com \
--cc=wg@grandegger.com \
--cc=yong.y.wang@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.