]> www.infradead.org Git - users/hch/misc.git/commitdiff
net: stmmac: remove mac_interface
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Wed, 17 Sep 2025 15:12:47 +0000 (16:12 +0100)
committerJakub Kicinski <kuba@kernel.org>
Sat, 20 Sep 2025 00:19:45 +0000 (17:19 -0700)
mac_interface has served little purpose, and has only caused confusion.
Now that we have cleaned up all platform glue drivers which should not
have been using mac_interface, there are no users remaining. Remove
mac_interface.

This results in the special dwmac specific "mac-mode" DT property
becoming redundant, and an in case, no DTS files in the kernel make use
of this property. Add a warning if the property is set, and it is
different from the "phy-mode".

Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Acked-by: Vladimir Zapolskiy <vz@mleia.com>
Link: https://patch.msgid.link/E1uytpv-00000006H2x-196h@rmk-PC.armlinux.org.uk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
drivers/net/ethernet/stmicro/stmmac/dwmac-lpc18xx.c
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
include/linux/stmmac.h

index dd82dc2189e9cf5929109e711cf08635247115cb..592aa9d636e505106a7de8ac0ef7cf2c378f7052 100644 (file)
@@ -98,8 +98,6 @@ static void loongson_default_data(struct pci_dev *pdev,
        /* Set default value for multicast hash bins */
        plat->multicast_filter_bins = 256;
 
-       plat->mac_interface = PHY_INTERFACE_MODE_NA;
-
        /* Set default value for unicast filter entries */
        plat->unicast_filter_entries = 1;
 
index c0c44916f8497bdee05681091f4983fd5d2b399a..2562a6d036a2a3df6ad2e86287e0ad823c798e0a 100644 (file)
@@ -41,7 +41,6 @@ static int lpc18xx_dwmac_probe(struct platform_device *pdev)
        if (IS_ERR(plat_dat))
                return PTR_ERR(plat_dat);
 
-       plat_dat->mac_interface = PHY_INTERFACE_MODE_NA;
        plat_dat->has_gmac = true;
 
        reg = syscon_regmap_lookup_by_compatible("nxp,lpc1850-creg");
index a23017a886f34ea5bc5414d5f721cd40ef0175c0..d17820d9e7f1789c81b3e10028b8f7c732708e57 100644 (file)
@@ -1118,10 +1118,7 @@ static const struct phylink_mac_ops stmmac_phylink_mac_ops = {
  */
 static void stmmac_check_pcs_mode(struct stmmac_priv *priv)
 {
-       int interface = priv->plat->mac_interface;
-
-       if (interface == PHY_INTERFACE_MODE_NA)
-               interface = priv->plat->phy_interface;
+       int interface = priv->plat->phy_interface;
 
        if (priv->dma_cap.pcs) {
                if ((interface == PHY_INTERFACE_MODE_RGMII) ||
index a3e077f225d1dcb33a992158ff89a70a16cac787..712ef235f0f400d2ada8ace619414a89e91aea00 100644 (file)
@@ -453,8 +453,12 @@ stmmac_probe_config_dt(struct platform_device *pdev, u8 *mac)
                return ERR_PTR(phy_mode);
 
        plat->phy_interface = phy_mode;
+
        rc = stmmac_of_get_mac_mode(np);
-       plat->mac_interface = rc < 0 ? plat->phy_interface : rc;
+       if (rc >= 0 && rc != phy_mode)
+               dev_warn(&pdev->dev,
+                        "\"mac-mode\" property used for %s but differs to \"phy-mode\" of %s, and will be ignored. Please report.\n",
+                        phy_modes(rc), phy_modes(phy_mode));
 
        /* Some wrapper drivers still rely on phy_node. Let's save it while
         * they are not converted to phylink. */
index f14f34ec6d5e2911985823714b71cd27ae885d1d..fa1318bac06c44a14071bacfcaeac5c20cb2d4b8 100644 (file)
@@ -190,8 +190,8 @@ struct plat_stmmacenet_data {
        int bus_id;
        int phy_addr;
        /* MAC ----- optional PCS ----- SerDes ----- optional PHY ----- Media
-        *                          ^            ^
-        *                    mac_interface phy_interface
+        *                                       ^
+        *                                  phy_interface
         *
         * The Synopsys dwmac core only covers the MAC and an optional
         * integrated PCS. Where the integrated PCS is used with a SerDes,
@@ -208,12 +208,7 @@ struct plat_stmmacenet_data {
         * is used, this counts as "the rest of the SoC" in the above
         * paragraph.
         *
-        * Thus, mac_interface is of little use inside the stmmac code;
-        * please do not use unless there is a definite requirement, and
-        * make sure to gain review feedback first.
-        */
-       phy_interface_t mac_interface;
-       /* phy_interface is the PHY-side interface - the interface used by
+        * phy_interface is the PHY-side interface - the interface used by
         * an attached PHY or SFP etc. This is equivalent to the interface
         * that phylink uses.
         */