mv643xx_eth: Disable RX/TX byte swapping on little-endian systems
authorLennert Buytenhek <buytenh@wantstofly.org>
Fri, 19 Oct 2007 02:10:28 +0000 (04:10 +0200)
committerDale Farnsworth <dale@farnsworth.org>
Tue, 23 Oct 2007 15:23:02 +0000 (08:23 -0700)
On little-endian systems, configure the SDMA unit with
MV643XX_ETH_BLM_RX_NO_SWAP and MV643XX_ETH_BLM_TX_NO_SWAP.

Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
Acked-by: Tzachi Perelstein <tzachi@marvell.com>
Signed-off-by: Dale Farnsworth <dale@farnsworth.org>
drivers/net/mv643xx_eth.h

index 20acd2e52456bb9dcc49b38858ea4b540151122f..d82b48d685c2c281d25a33b927d28c88ea8257f1 100644 (file)
 
 #define        MV643XX_ETH_IPG_INT_RX(value) ((value & 0x3fff) << 8)
 
+#if defined(__BIG_ENDIAN)
 #define        MV643XX_ETH_PORT_SDMA_CONFIG_DEFAULT_VALUE              \
                MV643XX_ETH_RX_BURST_SIZE_4_64BIT       |       \
                MV643XX_ETH_IPG_INT_RX(0)               |       \
                MV643XX_ETH_TX_BURST_SIZE_4_64BIT
+#elif defined(__LITTLE_ENDIAN)
+#define        MV643XX_ETH_PORT_SDMA_CONFIG_DEFAULT_VALUE              \
+               MV643XX_ETH_RX_BURST_SIZE_4_64BIT       |       \
+               MV643XX_ETH_BLM_RX_NO_SWAP              |       \
+               MV643XX_ETH_BLM_TX_NO_SWAP              |       \
+               MV643XX_ETH_IPG_INT_RX(0)               |       \
+               MV643XX_ETH_TX_BURST_SIZE_4_64BIT
+#else
+#error One of __BIG_ENDIAN or __LITTLE_ENDIAN must be defined
+#endif
 
 /* These macros describe Ethernet Port serial control reg (PSCR) bits */
 #define MV643XX_ETH_SERIAL_PORT_DISABLE                        0