forked from Openwrt/openwrt
aab466f422
Backport generic phylink validate series and make use of it for mtk_eth_soc Ethernet driver as well as mt7530 DSA driver. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
39 lines
1.5 KiB
Diff
39 lines
1.5 KiB
Diff
From 650a49bc65df6b0e0051a8f62d7c22d95a8f350d Mon Sep 17 00:00:00 2001
|
|
From: "Russell King (Oracle)" <rmk+kernel@armlinux.org.uk>
|
|
Date: Wed, 18 May 2022 15:55:07 +0100
|
|
Subject: [PATCH 08/12] net: mtk_eth_soc: add fixme comment for state->speed
|
|
use
|
|
|
|
Add a fixme comment for the last remaining incorrect usage of
|
|
state->speed in the mac_config() method, which is strangely in a code
|
|
path which is only run when the PHY interface mode changes.
|
|
|
|
This means if we are in RGMII mode, changes in state->speed will not
|
|
cause the INTF_MODE, TRGMII_RCK_CTRL and TRGMII_TCK_CTRL registers to
|
|
be set according to the speed, nor will the TRGPLL clock be set to the
|
|
correct value.
|
|
|
|
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
|
---
|
|
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 8 ++++++++
|
|
1 file changed, 8 insertions(+)
|
|
|
|
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
|
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
|
@@ -374,6 +374,14 @@ static void mtk_mac_config(struct phylin
|
|
state->interface))
|
|
goto err_phy;
|
|
} else {
|
|
+ /* FIXME: this is incorrect. Not only does it
|
|
+ * use state->speed (which is not guaranteed
|
|
+ * to be correct) but it also makes use of it
|
|
+ * in a code path that will only be reachable
|
|
+ * when the PHY interface mode changes, not
|
|
+ * when the speed changes. Consequently, RGMII
|
|
+ * is probably broken.
|
|
+ */
|
|
mtk_gmac0_rgmii_adjust(mac->hw,
|
|
state->interface,
|
|
state->speed);
|