aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Ferre <nicolas.ferre@atmel.com>2012-11-22 22:49:01 -0500
committerDavid S. Miller <davem@davemloft.net>2012-11-23 14:29:51 -0500
commitb3e3bd71b429c04490d6a57671f2bbe2121d4f5a (patch)
treee11921016138e5c9972524e1e1243ba0dfca501a
parent452b5ecda0f99a15d6900dd9f845b8a0c09b5aca (diff)
net/macb: GEM DMA configuration register update
Add information to the DMA Configuration Register to maximize system performance: - rx/tx packet buffer full memory size - allow possibility to use INCR16 if supported Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com> Acked-by: Joachim Eastwood <manabian@gmail.com Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/cadence/macb.c10
-rw-r--r--drivers/net/ethernet/cadence/macb.h11
2 files changed, 19 insertions, 2 deletions
diff --git a/drivers/net/ethernet/cadence/macb.c b/drivers/net/ethernet/cadence/macb.c
index cc6e593dd65..6a59bce38a8 100644
--- a/drivers/net/ethernet/cadence/macb.c
+++ b/drivers/net/ethernet/cadence/macb.c
@@ -1033,8 +1033,12 @@ static u32 macb_dbw(struct macb *bp)
1033} 1033}
1034 1034
1035/* 1035/*
1036 * Configure the receive DMA engine to use the correct receive buffer size. 1036 * Configure the receive DMA engine
1037 * This is a configurable parameter for GEM. 1037 * - use the correct receive buffer size
1038 * - set the possibility to use INCR16 bursts
1039 * (if not supported by FIFO, it will fallback to default)
1040 * - set both rx/tx packet buffers to full memory size
1041 * These are configurable parameters for GEM.
1038 */ 1042 */
1039static void macb_configure_dma(struct macb *bp) 1043static void macb_configure_dma(struct macb *bp)
1040{ 1044{
@@ -1043,6 +1047,8 @@ static void macb_configure_dma(struct macb *bp)
1043 if (macb_is_gem(bp)) { 1047 if (macb_is_gem(bp)) {
1044 dmacfg = gem_readl(bp, DMACFG) & ~GEM_BF(RXBS, -1L); 1048 dmacfg = gem_readl(bp, DMACFG) & ~GEM_BF(RXBS, -1L);
1045 dmacfg |= GEM_BF(RXBS, RX_BUFFER_SIZE / 64); 1049 dmacfg |= GEM_BF(RXBS, RX_BUFFER_SIZE / 64);
1050 dmacfg |= GEM_BF(FBLDO, 16);
1051 dmacfg |= GEM_BIT(TXPBMS) | GEM_BF(RXBMS, -1L);
1046 gem_writel(bp, DMACFG, dmacfg); 1052 gem_writel(bp, DMACFG, dmacfg);
1047 } 1053 }
1048} 1054}
diff --git a/drivers/net/ethernet/cadence/macb.h b/drivers/net/ethernet/cadence/macb.h
index 44144218dd3..570908b9357 100644
--- a/drivers/net/ethernet/cadence/macb.h
+++ b/drivers/net/ethernet/cadence/macb.h
@@ -171,8 +171,19 @@
171#define GEM_DBW128 2 171#define GEM_DBW128 2
172 172
173/* Bitfields in DMACFG. */ 173/* Bitfields in DMACFG. */
174#define GEM_FBLDO_OFFSET 0
175#define GEM_FBLDO_SIZE 5
176#define GEM_RXBMS_OFFSET 8
177#define GEM_RXBMS_SIZE 2
178#define GEM_TXPBMS_OFFSET 10
179#define GEM_TXPBMS_SIZE 1
180#define GEM_TXCOEN_OFFSET 11
181#define GEM_TXCOEN_SIZE 1
174#define GEM_RXBS_OFFSET 16 182#define GEM_RXBS_OFFSET 16
175#define GEM_RXBS_SIZE 8 183#define GEM_RXBS_SIZE 8
184#define GEM_DDRP_OFFSET 24
185#define GEM_DDRP_SIZE 1
186
176 187
177/* Bitfields in NSR */ 188/* Bitfields in NSR */
178#define MACB_NSR_LINK_OFFSET 0 189#define MACB_NSR_LINK_OFFSET 0