ar71xx: fix max frame length of the QCA955x SoCs
authorjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 23 Dec 2013 17:05:23 +0000 (17:05 +0000)
committerjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 23 Dec 2013 17:05:23 +0000 (17:05 +0000)
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@39161 3c298f89-4303-0410-b956-a3cf2f4a3e73

target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c

index 17b3ec4..21feeb9 100644 (file)
@@ -981,6 +981,17 @@ void __init ath79_register_eth(unsigned int id)
                pdata->has_gbit = 1;
                pdata->is_ar724x = 1;
 
+               /*
+                * Limit the maximum frame length to 4095 bytes.
+                * Although the documentation says that the hardware
+                * limit is 16383 bytes but that does not work in
+                * practice. It seems that the hardware only updates
+                * the lowest 12 bits of the packet length field
+                * in the RX descriptor.
+                */
+               pdata->max_frame_len = SZ_4K - 1;
+               pdata->desc_pktlen_mask = SZ_16K - 1;
+
                if (!pdata->fifo_cfg1)
                        pdata->fifo_cfg1 = 0x0010ffff;
                if (!pdata->fifo_cfg2)