Use one code block when returning because the interface type is
unsupported and also check if some unsupported port gets configured.
In addition fix a double the and use dsa_is_cpu_port() instated of
manually getting the CPU port.

Signed-off-by: Hauke Mehrtens <ha...@hauke-m.de>
---
 drivers/net/dsa/lantiq_gswip.c | 38 ++++++++++++++++++--------------------
 1 file changed, 18 insertions(+), 20 deletions(-)

diff --git a/drivers/net/dsa/lantiq_gswip.c b/drivers/net/dsa/lantiq_gswip.c
index 9c28d0b2fcdb..4e3732b5790f 100644
--- a/drivers/net/dsa/lantiq_gswip.c
+++ b/drivers/net/dsa/lantiq_gswip.c
@@ -615,32 +615,24 @@ static void gswip_phylink_validate(struct dsa_switch *ds, 
int port,
                if (!phy_interface_mode_is_rgmii(state->interface) &&
                    state->interface != PHY_INTERFACE_MODE_MII &&
                    state->interface != PHY_INTERFACE_MODE_REVMII &&
-                   state->interface != PHY_INTERFACE_MODE_RMII) {
-                       bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
-                       dev_err(ds->dev,
-                       "Unsupported interface: %d\n", state->interface);
-                       return;
-               }
+                   state->interface != PHY_INTERFACE_MODE_RMII)
+                       goto unsupported;
                break;
        case 2:
        case 3:
        case 4:
-               if (state->interface != PHY_INTERFACE_MODE_INTERNAL) {
-                       bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
-                       dev_err(ds->dev,
-                       "Unsupported interface: %d\n", state->interface);
-                       return;
-               }
+               if (state->interface != PHY_INTERFACE_MODE_INTERNAL)
+                       goto unsupported;
                break;
        case 5:
                if (!phy_interface_mode_is_rgmii(state->interface) &&
-                   state->interface != PHY_INTERFACE_MODE_INTERNAL) {
-                       bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
-                       dev_err(ds->dev,
-                       "Unsupported interface: %d\n", state->interface);
-                       return;
-               }
+                   state->interface != PHY_INTERFACE_MODE_INTERNAL)
+                       goto unsupported;
                break;
+       default:
+               bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
+               dev_err(ds->dev, "Unsupported port: %i\n", port);
+               return;
        }
 
        /* Allow all the expected bits */
@@ -667,6 +659,12 @@ static void gswip_phylink_validate(struct dsa_switch *ds, 
int port,
                   __ETHTOOL_LINK_MODE_MASK_NBITS);
        bitmap_and(state->advertising, state->advertising, mask,
                   __ETHTOOL_LINK_MODE_MASK_NBITS);
+       return;
+
+unsupported:
+       bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
+       dev_err(ds->dev, "Unsupported interface: %d\n", state->interface);
+       return;
 }
 
 static void gswip_phylink_mac_config(struct dsa_switch *ds, int port,
@@ -970,7 +968,7 @@ static int gswip_gphy_fw_list(struct gswip_priv *priv,
        int err;
        int i = 0;
 
-       /* The The VRX200 rev 1.1 uses the GSWIP 2.0 and needs the older
+       /* The VRX200 rev 1.1 uses the GSWIP 2.0 and needs the older
         * GPHY firmware. The VRX200 rev 1.2 uses the GSWIP 2.1 and also
         * needs a different GPHY firmware.
         */
@@ -1097,7 +1095,7 @@ static int gswip_probe(struct platform_device *pdev)
                dev_err(dev, "dsa switch register failed: %i\n", err);
                goto mdio_bus;
        }
-       if (priv->ds->dst->cpu_dp->index != priv->hw_info->cpu_port) {
+       if (!dsa_is_cpu_port(priv->ds, priv->hw_info->cpu_port)) {
                dev_err(dev, "wrong CPU port defined, HW only supports port: 
%i",
                        priv->hw_info->cpu_port);
                err = -EINVAL;
-- 
2.11.0

Reply via email to