1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/net/ethernet/mediatek
Daniel Golle 193250ace2 net: ethernet: mtk_eth_soc: fix RX data corruption issue
Fix data corruption issue with SerDes connected PHYs operating at 1.25
Gbps speed where we could previously observe about 30% packet loss while
the bad packet counter was increasing.

As almost all boards with MediaTek MT7622 or MT7986 use either the MT7531
switch IC operating at 3.125Gbps SerDes rate or single-port PHYs using
rate-adaptation to 2500Base-X mode, this issue only got exposed now when
we started trying to use SFP modules operating with 1.25 Gbps with the
BananaPi R3 board.

The fix is to set bit 12 which disables the RX FIFO clear function when
setting up MAC MCR, MediaTek SDK did the same change stating:
"If without this patch, kernel might receive invalid packets that are
corrupted by GMAC."[1]

[1]: d8a2975939

Fixes: 42c03844e9 ("net-next: mediatek: add support for MediaTek MT7622 SoC")
Tested-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Link: https://lore.kernel.org/r/138da2735f92c8b6f8578ec2e5a794ee515b665f.1677937317.git.daniel@makrotopia.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-03-06 13:25:44 -08:00
..
Kconfig net: ethernet: mtk_eth_soc: add support for page_pool_get_stats 2022-07-25 10:38:57 +01:00
Makefile net: ethernet: mtk_wed: introduce wed wo support 2022-11-11 08:09:32 +00:00
mtk_eth_path.c net: mtk_eth: simplify the mediatek code return expression 2020-12-14 17:51:26 -08:00
mtk_eth_soc.c net: ethernet: mtk_eth_soc: fix RX data corruption issue 2023-03-06 13:25:44 -08:00
mtk_eth_soc.h net: ethernet: mtk_eth_soc: fix RX data corruption issue 2023-03-06 13:25:44 -08:00
mtk_ppe.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2023-02-02 14:49:55 -08:00
mtk_ppe.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2023-02-02 14:49:55 -08:00
mtk_ppe_debugfs.c net: ethernet: mtk_eth_soc: use DEFINE_SHOW_ATTRIBUTE to simplify code 2022-09-29 09:57:23 +02:00
mtk_ppe_offload.c net: ethernet: mediatek: ppe: assign per-port queues for offloaded traffic 2022-11-18 19:46:06 -08:00
mtk_ppe_regs.h net: ethernet: mtk_eth_soc: align reset procedure to vendor sdk 2023-01-17 11:36:44 +01:00
mtk_sgmii.c mtk_sgmii: enable PCS polling to allow SFP work 2023-02-02 11:55:53 -08:00
mtk_star_emac.c net: Remove C45 check in C22 only MDIO bus drivers 2023-01-20 18:12:45 -08:00
mtk_wed.c net: ethernet: mtk_wed: No need to clear memory after a dma_alloc_coherent() call 2023-02-13 19:45:46 -08:00
mtk_wed.h net: ethernet: mtk_wed: add reset/reset_complete callbacks 2023-01-17 11:36:45 +01:00
mtk_wed_debugfs.c net: ethernet: mtk_wed: add rx mib counters 2022-11-11 08:09:32 +00:00
mtk_wed_mcu.c net: ethernet: mtk_wed: fix some possible NULL pointer dereferences 2022-12-08 19:47:43 -08:00
mtk_wed_ops.c net: ethernet: mtk_eth_soc: add support for Wireless Ethernet Dispatch (WED) 2022-04-06 14:08:49 +01:00
mtk_wed_regs.h net: ethernet: mtk_wed: add mtk_wed_rx_reset routine 2022-11-29 11:40:24 +01:00
mtk_wed_wo.c net: ethernet: mtk_wed: get rid of queue lock for tx queue 2023-01-13 21:35:16 -08:00
mtk_wed_wo.h net: ethernet: mtk_wed: get rid of queue lock for tx queue 2023-01-13 21:35:16 -08:00