]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
net: ethernet: ti: am65-cpsw: Simplify setting supported interface
authorSiddharth Vadapalli <s-vadapalli@ti.com>
Tue, 21 Mar 2023 11:19:55 +0000 (16:49 +0530)
committerJakub Kicinski <kuba@kernel.org>
Thu, 23 Mar 2023 05:16:24 +0000 (22:16 -0700)
Convert the existing IF/ELSE statement based approach of setting the
supported_interfaces member of struct "phylink_config", to SWITCH
statements. This will help scale to newer PHY-MODES as well as newer
compatibles.

Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/ti/am65-cpsw-nuss.c

index 4cfbc1c2b1c43184191c04aca0c58e830f204719..cba8db14e1607c2b412a737d7c04edc914e83f8c 100644 (file)
@@ -2143,15 +2143,30 @@ am65_cpsw_nuss_init_port_ndev(struct am65_cpsw_common *common, u32 port_idx)
        port->slave.phylink_config.mac_capabilities = MAC_SYM_PAUSE | MAC_10 | MAC_100 | MAC_1000FD;
        port->slave.phylink_config.mac_managed_pm = true; /* MAC does PM */
 
-       if (phy_interface_mode_is_rgmii(port->slave.phy_if)) {
+       switch (port->slave.phy_if) {
+       case PHY_INTERFACE_MODE_RGMII:
+       case PHY_INTERFACE_MODE_RGMII_ID:
+       case PHY_INTERFACE_MODE_RGMII_RXID:
+       case PHY_INTERFACE_MODE_RGMII_TXID:
                phy_interface_set_rgmii(port->slave.phylink_config.supported_interfaces);
-       } else if (port->slave.phy_if == PHY_INTERFACE_MODE_RMII) {
+               break;
+
+       case PHY_INTERFACE_MODE_RMII:
                __set_bit(PHY_INTERFACE_MODE_RMII,
                          port->slave.phylink_config.supported_interfaces);
-       } else if (common->pdata.extra_modes & BIT(port->slave.phy_if)) {
-               __set_bit(PHY_INTERFACE_MODE_QSGMII,
-                         port->slave.phylink_config.supported_interfaces);
-       } else {
+               break;
+
+       case PHY_INTERFACE_MODE_QSGMII:
+               if (common->pdata.extra_modes & BIT(port->slave.phy_if)) {
+                       __set_bit(port->slave.phy_if,
+                                 port->slave.phylink_config.supported_interfaces);
+               } else {
+                       dev_err(dev, "selected phy-mode is not supported\n");
+                       return -EOPNOTSUPP;
+               }
+               break;
+
+       default:
                dev_err(dev, "selected phy-mode is not supported\n");
                return -EOPNOTSUPP;
        }