diff options
| author | Marc Kleine-Budde <mkl@pengutronix.de> | 2011-01-06 03:58:42 -0500 |
|---|---|---|
| committer | Marc Kleine-Budde <mkl@pengutronix.de> | 2011-01-24 07:22:02 -0500 |
| commit | 0909c1ec6f016b3f580fa2f4630659a5874a8ef8 (patch) | |
| tree | 266e422c2c312164fb6198c8c0158d64ce7c41b5 | |
| parent | b30532515f0a62bfe17207ab00883dd262497006 (diff) | |
can: at91_can: clean up usage of AT91_MB_RX_FIRST and AT91_MB_RX_NUM
This patch cleans up the usage of two macros which specify the mailbox
usage. AT91_MB_RX_FIRST and AT91_MB_RX_NUM define the first and the
number of RX mailboxes. The current driver uses these variables in an
unclean way; assuming that AT91_MB_RX_FIRST is 0;
This patch cleans up the usage of these macros, no longer assuming
AT91_MB_RX_FIRST == 0.
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Acked-by: Wolfgang Grandegger <wg@grandegger.com>
| -rw-r--r-- | drivers/net/can/at91_can.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/drivers/net/can/at91_can.c b/drivers/net/can/at91_can.c index 7ef83d06f7ed..892c3d8c64a2 100644 --- a/drivers/net/can/at91_can.c +++ b/drivers/net/can/at91_can.c | |||
| @@ -2,7 +2,7 @@ | |||
| 2 | * at91_can.c - CAN network driver for AT91 SoC CAN controller | 2 | * at91_can.c - CAN network driver for AT91 SoC CAN controller |
| 3 | * | 3 | * |
| 4 | * (C) 2007 by Hans J. Koch <hjk@hansjkoch.de> | 4 | * (C) 2007 by Hans J. Koch <hjk@hansjkoch.de> |
| 5 | * (C) 2008, 2009, 2010 by Marc Kleine-Budde <kernel@pengutronix.de> | 5 | * (C) 2008, 2009, 2010, 2011 by Marc Kleine-Budde <kernel@pengutronix.de> |
| 6 | * | 6 | * |
| 7 | * This software may be distributed under the terms of the GNU General | 7 | * This software may be distributed under the terms of the GNU General |
| 8 | * Public License ("GPL") version 2 as distributed in the 'COPYING' | 8 | * Public License ("GPL") version 2 as distributed in the 'COPYING' |
| @@ -55,7 +55,8 @@ | |||
| 55 | #define AT91_MB_RX_MASK(i) ((1 << (i)) - 1) | 55 | #define AT91_MB_RX_MASK(i) ((1 << (i)) - 1) |
| 56 | #define AT91_MB_RX_SPLIT 8 | 56 | #define AT91_MB_RX_SPLIT 8 |
| 57 | #define AT91_MB_RX_LOW_LAST (AT91_MB_RX_SPLIT - 1) | 57 | #define AT91_MB_RX_LOW_LAST (AT91_MB_RX_SPLIT - 1) |
| 58 | #define AT91_MB_RX_LOW_MASK (AT91_MB_RX_MASK(AT91_MB_RX_SPLIT)) | 58 | #define AT91_MB_RX_LOW_MASK (AT91_MB_RX_MASK(AT91_MB_RX_SPLIT) & \ |
| 59 | ~AT91_MB_RX_MASK(AT91_MB_RX_FIRST)) | ||
| 59 | 60 | ||
| 60 | #define AT91_MB_TX_NUM (1 << AT91_MB_TX_SHIFT) | 61 | #define AT91_MB_TX_NUM (1 << AT91_MB_TX_SHIFT) |
| 61 | #define AT91_MB_TX_FIRST (AT91_MB_RX_LAST + 1) | 62 | #define AT91_MB_TX_FIRST (AT91_MB_RX_LAST + 1) |
| @@ -254,7 +255,8 @@ static void at91_setup_mailboxes(struct net_device *dev) | |||
| 254 | set_mb_mode_prio(priv, i, AT91_MB_MODE_TX, 0); | 255 | set_mb_mode_prio(priv, i, AT91_MB_MODE_TX, 0); |
| 255 | 256 | ||
| 256 | /* Reset tx and rx helper pointers */ | 257 | /* Reset tx and rx helper pointers */ |
| 257 | priv->tx_next = priv->tx_echo = priv->rx_next = 0; | 258 | priv->tx_next = priv->tx_echo = 0; |
| 259 | priv->rx_next = AT91_MB_RX_FIRST; | ||
| 258 | } | 260 | } |
| 259 | 261 | ||
| 260 | static int at91_set_bittiming(struct net_device *dev) | 262 | static int at91_set_bittiming(struct net_device *dev) |
| @@ -590,10 +592,10 @@ static int at91_poll_rx(struct net_device *dev, int quota) | |||
| 590 | "order of incoming frames cannot be guaranteed\n"); | 592 | "order of incoming frames cannot be guaranteed\n"); |
| 591 | 593 | ||
| 592 | again: | 594 | again: |
| 593 | for (mb = find_next_bit(addr, AT91_MB_RX_NUM, priv->rx_next); | 595 | for (mb = find_next_bit(addr, AT91_MB_RX_LAST + 1, priv->rx_next); |
| 594 | mb < AT91_MB_RX_NUM && quota > 0; | 596 | mb < AT91_MB_RX_LAST + 1 && quota > 0; |
| 595 | reg_sr = at91_read(priv, AT91_SR), | 597 | reg_sr = at91_read(priv, AT91_SR), |
| 596 | mb = find_next_bit(addr, AT91_MB_RX_NUM, ++priv->rx_next)) { | 598 | mb = find_next_bit(addr, AT91_MB_RX_LAST + 1, ++priv->rx_next)) { |
| 597 | at91_read_msg(dev, mb); | 599 | at91_read_msg(dev, mb); |
| 598 | 600 | ||
| 599 | /* reactivate mailboxes */ | 601 | /* reactivate mailboxes */ |
| @@ -610,8 +612,8 @@ static int at91_poll_rx(struct net_device *dev, int quota) | |||
| 610 | 612 | ||
| 611 | /* upper group completed, look again in lower */ | 613 | /* upper group completed, look again in lower */ |
| 612 | if (priv->rx_next > AT91_MB_RX_LOW_LAST && | 614 | if (priv->rx_next > AT91_MB_RX_LOW_LAST && |
| 613 | quota > 0 && mb >= AT91_MB_RX_NUM) { | 615 | quota > 0 && mb > AT91_MB_RX_LAST) { |
| 614 | priv->rx_next = 0; | 616 | priv->rx_next = AT91_MB_RX_FIRST; |
| 615 | goto again; | 617 | goto again; |
| 616 | } | 618 | } |
| 617 | 619 | ||
