summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorFugang Duan <B38611@freescale.com>2012-05-07 15:14:23 +0800
committerXinyu Chen <xinyu.chen@freescale.com>2012-05-08 16:07:07 +0800
commiteff78f9bc27b98d80006018e2e1508dd55059772 (patch)
treec693ca143324a553edad800dfba4092088c82450 /drivers
parent51b3a1f0f20518d40a5a605d4505d857c489b2d9 (diff)
ENGR00179636-04 - FEC : allocate the enough DMA size for BD.
- Increase RX BD size to 384 entrys from 16 entrys, and allocate the enough DMA memory for buffer description. Signed-off-by: Fugang Duan <B38611@freescale.com>
Diffstat (limited to 'drivers')
-rwxr-xr-xdrivers/net/fec.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/net/fec.c b/drivers/net/fec.c
index 7897de31b9a0..6e710e11f1a4 100755
--- a/drivers/net/fec.c
+++ b/drivers/net/fec.c
@@ -128,9 +128,7 @@ MODULE_PARM_DESC(macaddr, "FEC Ethernet MAC address");
#define TX_RING_SIZE 16 /* Must be power of two */
#define TX_RING_MOD_MASK 15 /* for this to work */
-#if (((RX_RING_SIZE + TX_RING_SIZE) * 8) > PAGE_SIZE)
-#error "FEC: descriptor ring size constants too large"
-#endif
+#define BUFDES_SIZE ((RX_RING_SIZE + TX_RING_SIZE) * sizeof(struct bufdesc))
/* Interrupt events/masks. */
#define FEC_ENET_HBERR ((uint)0x80000000) /* Heartbeat error */
@@ -1467,7 +1465,7 @@ static int fec_enet_init(struct net_device *ndev)
int i;
/* Allocate memory for buffer descriptors. */
- cbd_base = dma_alloc_coherent(NULL, PAGE_SIZE, &fep->bd_dma,
+ cbd_base = dma_alloc_coherent(NULL, BUFDES_SIZE, &fep->bd_dma,
GFP_KERNEL);
if (!cbd_base) {
printk("FEC: allocate descriptor memory failed?\n");