1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/net/ethernet/mediatek
Frank Wunderlich c57e558194 net: ethernet: mtk_eth_soc: handle dma buffer size soc specific
The mainline MTK ethernet driver suffers long time from rarly but
annoying tx queue timeouts. We think that this is caused by fixed
dma sizes hardcoded for all SoCs.

We suspect this problem arises from a low level of free TX DMADs,
the TX Ring alomost full.

The transmit timeout is caused by the Tx queue not waking up. The
Tx queue stops when the free counter is less than ring->thres, and
it will wake up once the free counter is greater than ring->thres.
If the CPU is too late to wake up the Tx queues, it may cause a
transmit timeout.
Therefore, we increased the TX and RX DMADs to improve this error
situation.

Use the dma-size implementation from SDK in a per SoC manner. In
difference to SDK we have no RSS feature yet, so all RX/TX sizes
should be raised from 512 to 2048 byte except fqdma on mt7988 to
avoid the tx timeout issue.

Fixes: 656e705243 ("net-next: mediatek: add support for MT7623 ethernet")
Suggested-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2024-06-05 14:04:44 +01:00
..
Kconfig net: ethernet: mtk_eth_soc: switch to external PCS driver 2023-03-20 19:48:35 -07:00
Makefile net: ethernet: mtk_eth_soc: switch to external PCS driver 2023-03-20 19:48:35 -07:00
mtk_eth_path.c net: ethernet: mtk_eth_soc: add basic support for MT7988 SoC 2023-07-26 22:05:10 -07:00
mtk_eth_soc.c net: ethernet: mtk_eth_soc: handle dma buffer size soc specific 2024-06-05 14:04:44 +01:00
mtk_eth_soc.h net: ethernet: mtk_eth_soc: handle dma buffer size soc specific 2024-06-05 14:04:44 +01:00
mtk_ppe.c net: ethernet: mtk_eth_soc: Reuse value using READ_ONCE instead of re-rereading it 2024-04-04 15:46:52 +02:00
mtk_ppe.h net: ethernet: mtk_wed: introduce partial AMSDU offload support for MT7988 2023-09-19 18:27:56 +02:00
mtk_ppe_debugfs.c net: ethernet: mtk_eth_soc: always mtk_get_ib1_pkt_type 2023-07-19 21:15:04 -07:00
mtk_ppe_offload.c net: ethernet: mtk_eth_soc: flower: validate control flags 2024-04-22 17:42:34 -07:00
mtk_ppe_regs.h net: ethernet: mtk_eth_soc: support per-flow accounting on MT7988 2023-08-03 11:28:37 +02:00
mtk_star_emac.c net: Explicitly include correct DT includes 2023-07-27 20:33:16 -07:00
mtk_wed.c net: ethernet: mtk_eth_soc: fix WED + wifi reset 2024-04-17 18:40:46 -07:00
mtk_wed.h net: ethernet: mtk_wed: introduce partial AMSDU offload support for MT7988 2023-09-19 18:27:56 +02:00
mtk_wed_debugfs.c net: ethernet: mtk_wed: debugfs: add WED 3.0 debugfs entries 2023-09-19 18:27:56 +02:00
mtk_wed_mcu.c net: ethernet: mtk_wed: remove wo pointer in wo_r32/wo_w32 signature 2023-10-24 17:08:46 -07: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 wed 3.0 reset support 2023-09-19 18:27:56 +02:00
mtk_wed_wo.c net: introduce page_frag_cache_drain() 2024-03-05 11:38:14 +01:00
mtk_wed_wo.h net: ethernet: mtk_wed: introduce WED support for MT7988 2023-09-19 18:27:56 +02:00