]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net: stmmac: ingenic: simplify x2000 mac_set_mode()
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Fri, 7 Nov 2025 08:29:16 +0000 (08:29 +0000)
committerJakub Kicinski <kuba@kernel.org>
Tue, 11 Nov 2025 01:30:40 +0000 (17:30 -0800)
As per the previous commit, we have validated that the phy_intf_sel
value is one that is permissible for this SoC, so there is no need to
handle invalid PHY interface modes. We can also apply the other
configuration based upon the phy_intf_sel value rather than the
PHY interface mode.

Reviewed-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Link: https://patch.msgid.link/E1vHHqO-0000000Djrb-0DPN@rmk-PC.armlinux.org.uk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/stmicro/stmmac/dwmac-ingenic.c

index 7b2576fbb1e12395ebd32767c7fc21a4cb47a98a..eb5744e0b9ea190010666b31dc3e471eb9f7825e 100644 (file)
@@ -122,39 +122,25 @@ static int x2000_mac_set_mode(struct plat_stmmacenet_data *plat_dat,
        struct ingenic_mac *mac = plat_dat->bsp_priv;
        unsigned int val;
 
-       switch (plat_dat->phy_interface) {
-       case PHY_INTERFACE_MODE_RMII:
-               val = FIELD_PREP(MACPHYC_TX_SEL_MASK, MACPHYC_TX_SEL_ORIGIN) |
-                         FIELD_PREP(MACPHYC_RX_SEL_MASK, MACPHYC_RX_SEL_ORIGIN);
-               break;
-
-       case PHY_INTERFACE_MODE_RGMII:
-       case PHY_INTERFACE_MODE_RGMII_ID:
-       case PHY_INTERFACE_MODE_RGMII_TXID:
-       case PHY_INTERFACE_MODE_RGMII_RXID:
-               val = 0;
+       val = FIELD_PREP(MACPHYC_PHY_INFT_MASK, phy_intf_sel);
+
+       if (phy_intf_sel == PHY_INTF_SEL_RMII) {
+               val |= FIELD_PREP(MACPHYC_TX_SEL_MASK, MACPHYC_TX_SEL_ORIGIN) |
+                      FIELD_PREP(MACPHYC_RX_SEL_MASK, MACPHYC_RX_SEL_ORIGIN);
+       } else if (phy_intf_sel == PHY_INTF_SEL_RGMII) {
                if (mac->tx_delay == 0)
                        val |= FIELD_PREP(MACPHYC_TX_SEL_MASK, MACPHYC_TX_SEL_ORIGIN);
                else
                        val |= FIELD_PREP(MACPHYC_TX_SEL_MASK, MACPHYC_TX_SEL_DELAY) |
-                                  FIELD_PREP(MACPHYC_TX_DELAY_MASK, (mac->tx_delay + 9750) / 19500 - 1);
+                              FIELD_PREP(MACPHYC_TX_DELAY_MASK, (mac->tx_delay + 9750) / 19500 - 1);
 
                if (mac->rx_delay == 0)
                        val |= FIELD_PREP(MACPHYC_RX_SEL_MASK, MACPHYC_RX_SEL_ORIGIN);
                else
                        val |= FIELD_PREP(MACPHYC_RX_SEL_MASK, MACPHYC_RX_SEL_DELAY) |
                                   FIELD_PREP(MACPHYC_RX_DELAY_MASK, (mac->rx_delay + 9750) / 19500 - 1);
-
-               break;
-
-       default:
-               dev_err(mac->dev, "Unsupported interface %s\n",
-                       phy_modes(plat_dat->phy_interface));
-               return -EINVAL;
        }
 
-       val |= FIELD_PREP(MACPHYC_PHY_INFT_MASK, phy_intf_sel);
-
        /* Update MAC PHY control register */
        return regmap_update_bits(mac->regmap, 0, mac->soc_info->mask, val);
 }