123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- From e3f6719e2269868ca129b05da50cd55786848954 Mon Sep 17 00:00:00 2001
- From: "Russell King (Oracle)" <[email protected]>
- Date: Mon, 11 Apr 2022 10:46:06 +0100
- Subject: [PATCH 03/13] net: dsa: mt7530: remove interface checks
- MIME-Version: 1.0
- Content-Type: text/plain; charset=UTF-8
- Content-Transfer-Encoding: 8bit
- As phylink checks the interface mode against the supported_interfaces
- bitmap, we no longer need to validate the interface mode, nor handle
- PHY_INTERFACE_MODE_NA in the validation function. Remove these to
- simplify the implementation.
- Tested-by: Marek Behún <[email protected]>
- Signed-off-by: Russell King (Oracle) <[email protected]>
- Signed-off-by: Paolo Abeni <[email protected]>
- ---
- drivers/net/dsa/mt7530.c | 82 ----------------------------------------
- drivers/net/dsa/mt7530.h | 2 -
- 2 files changed, 84 deletions(-)
- --- a/drivers/net/dsa/mt7530.c
- +++ b/drivers/net/dsa/mt7530.c
- @@ -2525,37 +2525,6 @@ static void mt7530_mac_port_get_caps(str
- }
- }
-
- -static bool
- -mt7530_phy_mode_supported(struct dsa_switch *ds, int port,
- - const struct phylink_link_state *state)
- -{
- - struct mt7530_priv *priv = ds->priv;
- -
- - switch (port) {
- - case 0 ... 4: /* Internal phy */
- - if (state->interface != PHY_INTERFACE_MODE_GMII)
- - return false;
- - break;
- - case 5: /* 2nd cpu port with phy of port 0 or 4 / external phy */
- - if (!phy_interface_mode_is_rgmii(state->interface) &&
- - state->interface != PHY_INTERFACE_MODE_MII &&
- - state->interface != PHY_INTERFACE_MODE_GMII)
- - return false;
- - break;
- - case 6: /* 1st cpu port */
- - if (state->interface != PHY_INTERFACE_MODE_RGMII &&
- - state->interface != PHY_INTERFACE_MODE_TRGMII)
- - return false;
- - break;
- - default:
- - dev_err(priv->dev, "%s: unsupported port: %i\n", __func__,
- - port);
- - return false;
- - }
- -
- - return true;
- -}
- -
- static bool mt7531_is_rgmii_port(struct mt7530_priv *priv, u32 port)
- {
- return (port == 5) && (priv->p5_intf_sel != P5_INTF_SEL_GMAC5_SGMII);
- @@ -2592,44 +2561,6 @@ static void mt7531_mac_port_get_caps(str
- }
- }
-
- -static bool
- -mt7531_phy_mode_supported(struct dsa_switch *ds, int port,
- - const struct phylink_link_state *state)
- -{
- - struct mt7530_priv *priv = ds->priv;
- -
- - switch (port) {
- - case 0 ... 4: /* Internal phy */
- - if (state->interface != PHY_INTERFACE_MODE_GMII)
- - return false;
- - break;
- - case 5: /* 2nd cpu port supports either rgmii or sgmii/8023z */
- - if (mt7531_is_rgmii_port(priv, port))
- - return phy_interface_mode_is_rgmii(state->interface);
- - fallthrough;
- - case 6: /* 1st cpu port supports sgmii/8023z only */
- - if (state->interface != PHY_INTERFACE_MODE_SGMII &&
- - !phy_interface_mode_is_8023z(state->interface))
- - return false;
- - break;
- - default:
- - dev_err(priv->dev, "%s: unsupported port: %i\n", __func__,
- - port);
- - return false;
- - }
- -
- - return true;
- -}
- -
- -static bool
- -mt753x_phy_mode_supported(struct dsa_switch *ds, int port,
- - const struct phylink_link_state *state)
- -{
- - struct mt7530_priv *priv = ds->priv;
- -
- - return priv->info->phy_mode_supported(ds, port, state);
- -}
- -
- static int
- mt753x_pad_setup(struct dsa_switch *ds, const struct phylink_link_state *state)
- {
- @@ -2884,9 +2815,6 @@ mt753x_phylink_mac_config(struct dsa_swi
- struct mt7530_priv *priv = ds->priv;
- u32 mcr_cur, mcr_new;
-
- - if (!mt753x_phy_mode_supported(ds, port, state))
- - goto unsupported;
- -
- switch (port) {
- case 0 ... 4: /* Internal phy */
- if (state->interface != PHY_INTERFACE_MODE_GMII)
- @@ -3102,12 +3030,6 @@ mt753x_phylink_validate(struct dsa_switc
- __ETHTOOL_DECLARE_LINK_MODE_MASK(mask) = { 0, };
- struct mt7530_priv *priv = ds->priv;
-
- - if (state->interface != PHY_INTERFACE_MODE_NA &&
- - !mt753x_phy_mode_supported(ds, port, state)) {
- - linkmode_zero(supported);
- - return;
- - }
- -
- phylink_set_port_modes(mask);
-
- if (state->interface != PHY_INTERFACE_MODE_TRGMII &&
- @@ -3334,7 +3256,6 @@ static const struct mt753x_info mt753x_t
- .phy_write = mt7530_phy_write,
- .pad_setup = mt7530_pad_clk_setup,
- .mac_port_get_caps = mt7530_mac_port_get_caps,
- - .phy_mode_supported = mt7530_phy_mode_supported,
- .mac_port_validate = mt7530_mac_port_validate,
- .mac_port_get_state = mt7530_phylink_mac_link_state,
- .mac_port_config = mt7530_mac_config,
- @@ -3346,7 +3267,6 @@ static const struct mt753x_info mt753x_t
- .phy_write = mt7530_phy_write,
- .pad_setup = mt7530_pad_clk_setup,
- .mac_port_get_caps = mt7530_mac_port_get_caps,
- - .phy_mode_supported = mt7530_phy_mode_supported,
- .mac_port_validate = mt7530_mac_port_validate,
- .mac_port_get_state = mt7530_phylink_mac_link_state,
- .mac_port_config = mt7530_mac_config,
- @@ -3359,7 +3279,6 @@ static const struct mt753x_info mt753x_t
- .pad_setup = mt7531_pad_setup,
- .cpu_port_config = mt7531_cpu_port_config,
- .mac_port_get_caps = mt7531_mac_port_get_caps,
- - .phy_mode_supported = mt7531_phy_mode_supported,
- .mac_port_validate = mt7531_mac_port_validate,
- .mac_port_get_state = mt7531_phylink_mac_link_state,
- .mac_port_config = mt7531_mac_config,
- @@ -3422,7 +3341,6 @@ mt7530_probe(struct mdio_device *mdiodev
- if (!priv->info->sw_setup || !priv->info->pad_setup ||
- !priv->info->phy_read || !priv->info->phy_write ||
- !priv->info->mac_port_get_caps ||
- - !priv->info->phy_mode_supported ||
- !priv->info->mac_port_validate ||
- !priv->info->mac_port_get_state || !priv->info->mac_port_config)
- return -EINVAL;
- --- a/drivers/net/dsa/mt7530.h
- +++ b/drivers/net/dsa/mt7530.h
- @@ -798,8 +798,6 @@ struct mt753x_info {
- int (*cpu_port_config)(struct dsa_switch *ds, int port);
- void (*mac_port_get_caps)(struct dsa_switch *ds, int port,
- struct phylink_config *config);
- - bool (*phy_mode_supported)(struct dsa_switch *ds, int port,
- - const struct phylink_link_state *state);
- void (*mac_port_validate)(struct dsa_switch *ds, int port,
- unsigned long *supported);
- int (*mac_port_get_state)(struct dsa_switch *ds, int port,
|