]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
net: ethernet: mtk_eth_soc: initialize PPE per-tag-layer MTU registers
authorDaniel Golle <daniel@makrotopia.org>
Fri, 10 Apr 2026 02:57:52 +0000 (03:57 +0100)
committerJakub Kicinski <kuba@kernel.org>
Sun, 12 Apr 2026 22:22:58 +0000 (15:22 -0700)
commit2dddb34dd0d07b01fa770eca89480a4da4f13153
tree523ea0a4f79ee39e517ff78467e2ccc8306a6fa6
parent5e700c773032e02def9a4c33d0023ebc3925cdd3
net: ethernet: mtk_eth_soc: initialize PPE per-tag-layer MTU registers

The PPE enforces output frame size limits via per-tag-layer VLAN_MTU
registers that the driver never initializes. The hardware defaults do
not account for PPPoE overhead, causing the PPE to punt encapsulated
frames back to the CPU instead of forwarding them.

Initialize the registers at PPE start and on MTU changes using the
maximum GMAC MTU. This is a conservative approximation -- the actual
per-PPE requirement depends on egress path, but using the global
maximum ensures the limits are never too small.

Fixes: ba37b7caf1ed2 ("net: ethernet: mtk_eth_soc: add support for initializing the PPE")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Link: https://patch.msgid.link/ec995ab8ce8be423267a1cc093147a74d2eb9d82.1775789829.git.daniel@makrotopia.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/mediatek/mtk_eth_soc.c
drivers/net/ethernet/mediatek/mtk_ppe.c
drivers/net/ethernet/mediatek/mtk_ppe.h