net/macb: force endian_swp_pkt_en to off
authorSteffen Trumtrar <s.trumtrar@pengutronix.de>
Wed, 27 Mar 2013 23:07:06 +0000 (23:07 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 28 Mar 2013 18:41:18 +0000 (14:41 -0400)
The core has a bit for swapping packet data endianism.
Reset default from Cadence is off. Xilinx however, who uses this core on the
Zynq SoCs, opted for on.
Force it to off. This shouldn't change the behaviour for current users of the
macb, but enables usage on Zynq devices.

Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/cadence/macb.c
drivers/net/ethernet/cadence/macb.h

index 3593c2c594a6440bf31450d9aa4c8fa285056726..2747a7f595285ca37227d26baea44b28c1ab8a10 100644 (file)
@@ -1057,6 +1057,7 @@ static void macb_configure_dma(struct macb *bp)
                dmacfg |= GEM_BF(RXBS, RX_BUFFER_SIZE / 64);
                dmacfg |= GEM_BF(FBLDO, 16);
                dmacfg |= GEM_BIT(TXPBMS) | GEM_BF(RXBMS, -1L);
+               dmacfg &= ~GEM_BIT(ENDIA);
                gem_writel(bp, DMACFG, dmacfg);
        }
 }
index 570908b935784204e6b85d7f44a81c5a499db409..993d703806885d9f3ebedd4f5c035bfdd03306d8 100644 (file)
 /* Bitfields in DMACFG. */
 #define GEM_FBLDO_OFFSET                       0
 #define GEM_FBLDO_SIZE                         5
+#define GEM_ENDIA_OFFSET                       7
+#define GEM_ENDIA_SIZE                         1
 #define GEM_RXBMS_OFFSET                       8
 #define GEM_RXBMS_SIZE                         2
 #define GEM_TXPBMS_OFFSET                      10