OSDN Git Service

net: mvpp2: remove interface checks in mvpp2_phylink_validate()
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Wed, 27 Oct 2021 09:49:19 +0000 (10:49 +0100)
committerDavid S. Miller <davem@davemloft.net>
Thu, 28 Oct 2021 11:55:44 +0000 (12:55 +0100)
As phylink checks the interface mode against the supported_interfaces
bitmap, we no longer need to validate the interface mode in the
validation function. Remove this to simplify it.

Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c

index 43ffff0..48703b6 100644 (file)
@@ -6261,32 +6261,13 @@ static void mvpp2_phylink_validate(struct phylink_config *config,
        struct mvpp2_port *port = mvpp2_phylink_to_port(config);
        __ETHTOOL_DECLARE_LINK_MODE_MASK(mask) = { 0, };
 
-       /* Invalid combinations */
-       switch (state->interface) {
-       case PHY_INTERFACE_MODE_10GBASER:
-       case PHY_INTERFACE_MODE_XAUI:
-               if (!mvpp2_port_supports_xlg(port))
-                       goto empty_set;
-               break;
-       case PHY_INTERFACE_MODE_RGMII:
-       case PHY_INTERFACE_MODE_RGMII_ID:
-       case PHY_INTERFACE_MODE_RGMII_RXID:
-       case PHY_INTERFACE_MODE_RGMII_TXID:
-               if (!mvpp2_port_supports_rgmii(port))
-                       goto empty_set;
-               break;
-       case PHY_INTERFACE_MODE_1000BASEX:
-       case PHY_INTERFACE_MODE_2500BASEX:
-               /* When in 802.3z mode, we must have AN enabled:
-                * Bit 2 Field InBandAnEn In-band Auto-Negotiation enable. ...
-                * When <PortType> = 1 (1000BASE-X) this field must be set to 1.
-                */
-               if (!phylink_test(state->advertising, Autoneg))
-                       goto empty_set;
-               break;
-       default:
-               break;
-       }
+       /* When in 802.3z mode, we must have AN enabled:
+        * Bit 2 Field InBandAnEn In-band Auto-Negotiation enable. ...
+        * When <PortType> = 1 (1000BASE-X) this field must be set to 1.
+        */
+       if (phy_interface_mode_is_8023z(state->interface) &&
+           !phylink_test(state->advertising, Autoneg))
+               goto empty_set;
 
        phylink_set(mask, Autoneg);
        phylink_set_port_modes(mask);