Message ID | 20240301-for-netnext-mt7530-improvements-3-v3-1-449f4f166454@arinc9.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 6ebe414b48cf43abb5abc17321dd4343a5a0d5ea |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | MT7530 DSA Subdriver Improvements Act III | expand |
On Fri, Mar 01, 2024 at 12:42:57PM +0200, Arınç ÜNAL via B4 Relay wrote: > From: Arınç ÜNAL <arinc.unal@arinc9.com> > > For the switch on the MT7988 SoC, the mac_port_config member for ID_MT7988 > in mt753x_table is not needed as the interfaces of all MACs are already > handled on mt7988_mac_port_get_caps(). > > Therefore, remove the mac_port_config member from ID_MT7988 in > mt753x_table. Before calling priv->info->mac_port_config(), if there's no > mac_port_config member in mt753x_table, exit mt753x_mac_config() > successfully. > > Remove calling priv->info->mac_port_config() from the sanity check as the > sanity check requires a pointer to a mac_port_config function to be > non-NULL. This will fail for MT7988 as mac_port_config won't be a member of > its info table. > > Co-developed-by: Daniel Golle <daniel@makrotopia.org> > Signed-off-by: Daniel Golle <daniel@makrotopia.org> > Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com> > Reviewed-by: Vladimir Oltean <olteanv@gmail.com> Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Thanks!
diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c index 03d966fa67b2..94d4b2c87799 100644 --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c @@ -2655,17 +2655,6 @@ static bool mt753x_is_mac_port(u32 port) return (port == 5 || port == 6); } -static int -mt7988_mac_config(struct dsa_switch *ds, int port, unsigned int mode, - phy_interface_t interface) -{ - if (dsa_is_cpu_port(ds, port) && - interface == PHY_INTERFACE_MODE_INTERNAL) - return 0; - - return -EINVAL; -} - static int mt7531_mac_config(struct dsa_switch *ds, int port, unsigned int mode, phy_interface_t interface) @@ -2706,6 +2695,9 @@ mt753x_mac_config(struct dsa_switch *ds, int port, unsigned int mode, { struct mt7530_priv *priv = ds->priv; + if (!priv->info->mac_port_config) + return 0; + return priv->info->mac_port_config(ds, port, mode, state->interface); } @@ -3169,7 +3161,6 @@ const struct mt753x_info mt753x_table[] = { .phy_write_c45 = mt7531_ind_c45_phy_write, .cpu_port_config = mt7988_cpu_port_config, .mac_port_get_caps = mt7988_mac_port_get_caps, - .mac_port_config = mt7988_mac_config, }, }; EXPORT_SYMBOL_GPL(mt753x_table); @@ -3197,8 +3188,7 @@ mt7530_probe_common(struct mt7530_priv *priv) * properly. */ if (!priv->info->sw_setup || !priv->info->phy_read_c22 || - !priv->info->phy_write_c22 || !priv->info->mac_port_get_caps || - !priv->info->mac_port_config) + !priv->info->phy_write_c22 || !priv->info->mac_port_get_caps) return -EINVAL; priv->id = priv->info->id;