diff options
author | Gabor Juhos <juhosg@openwrt.org> | 2013-12-23 17:05:23 +0000 |
---|---|---|
committer | Gabor Juhos <juhosg@openwrt.org> | 2013-12-23 17:05:23 +0000 |
commit | 05f8604e2eca452eea672c78031f58cdc37e40ef (patch) | |
tree | 36b33d7f1bab0ad6f888607f45d6a8442c0435a9 /target/linux/ar71xx/files/arch/mips | |
parent | 76f37c5d4627f73704abf057bdc2205110cc1e0d (diff) | |
download | upstream-05f8604e2eca452eea672c78031f58cdc37e40ef.tar.gz upstream-05f8604e2eca452eea672c78031f58cdc37e40ef.tar.bz2 upstream-05f8604e2eca452eea672c78031f58cdc37e40ef.zip |
ar71xx: fix max frame length of the QCA955x SoCs
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 39161
Diffstat (limited to 'target/linux/ar71xx/files/arch/mips')
-rw-r--r-- | target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c b/target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c index 17b3ec4a6d..21feeb9ad3 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c +++ b/target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c @@ -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) |