|
|
@@ -173,10 +173,12 @@ MODULE_PARM_DESC(macaddr, "FEC Ethernet MAC address");
|
|
|
#endif /* CONFIG_M5272 */
|
|
|
|
|
|
/* The FEC stores dest/src/type/vlan, data, and checksum for receive packets.
|
|
|
+ *
|
|
|
+ * 2048 byte skbufs are allocated. However, alignment requirements
|
|
|
+ * varies between FEC variants. Worst case is 64, so round down by 64.
|
|
|
*/
|
|
|
-#define PKT_MAXBUF_SIZE 1522
|
|
|
+#define PKT_MAXBUF_SIZE (round_down(2048 - 64, 64))
|
|
|
#define PKT_MINBUF_SIZE 64
|
|
|
-#define PKT_MAXBLR_SIZE 1536
|
|
|
|
|
|
/* FEC receive acceleration */
|
|
|
#define FEC_RACC_IPDIS (1 << 1)
|
|
|
@@ -851,7 +853,7 @@ static void fec_enet_enable_ring(struct net_device *ndev)
|
|
|
for (i = 0; i < fep->num_rx_queues; i++) {
|
|
|
rxq = fep->rx_queue[i];
|
|
|
writel(rxq->bd.dma, fep->hwp + FEC_R_DES_START(i));
|
|
|
- writel(PKT_MAXBLR_SIZE, fep->hwp + FEC_R_BUFF_SIZE(i));
|
|
|
+ writel(PKT_MAXBUF_SIZE, fep->hwp + FEC_R_BUFF_SIZE(i));
|
|
|
|
|
|
/* enable DMA1/2 */
|
|
|
if (i)
|