net: mtk_eth_soc: add fixme comment for state->speed use
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Wed, 18 May 2022 14:55:07 +0000 (15:55 +0100)
committerJakub Kicinski <kuba@kernel.org>
Fri, 20 May 2022 01:14:30 +0000 (18:14 -0700)
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

index 87b5a83..211457a 100644 (file)
@@ -327,6 +327,14 @@ static void mtk_mac_config(struct phylink_config *config, unsigned int mode,
                                                              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);