All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Golle <daniel@makrotopia.org>
To: arinc9.unal@gmail.com
Cc: "Andrew Lunn" <andrew@lunn.ch>,
	"Eric Dumazet" <edumazet@google.com>,
	erkin.bozoglu@xeront.com,
	"Florian Fainelli" <f.fainelli@gmail.com>,
	"Russell King" <linux@armlinux.org.uk>,
	"Richard van Schagen" <richard@routerhints.com>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Paolo Abeni" <pabeni@redhat.com>,
	"Landen Chao" <Landen.Chao@mediatek.com>,
	"Richard van Schagen" <vschagen@cs.com>,
	"Sean Wang" <sean.wang@mediatek.com>,
	"DENG Qingfang" <dqfext@gmail.com>,
	linux-mediatek@lists.infradead.org,
	"Matthias Brugger" <matthias.bgg@gmail.com>,
	linux-arm-kernel@lists.infradead.org,
	"AngeloGioacchino Del Regno"
	<angelogioacchino.delregno@collabora.com>,
	"Arınç ÜNAL" <arinc.unal@arinc9.com>,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	"Vladimir Oltean" <olteanv@gmail.com>,
	"David S. Miller" <davem@davemloft.net>
Subject: Re: [RFC PATCH net-next 21/22] net: dsa: mt7530: get rid of useless error returns on phylink code path
Date: Fri, 21 Apr 2023 19:58:48 +0100	[thread overview]
Message-ID: <ZELc6MjOicjsPGGb@makrotopia.org> (raw)
In-Reply-To: <20230421143648.87889-22-arinc.unal@arinc9.com>

On Fri, Apr 21, 2023 at 05:36:47PM +0300, arinc9.unal@gmail.com wrote:
> From: Arınç ÜNAL <arinc.unal@arinc9.com>
> 
> Remove error returns on the cases where they are already handled with the
> function the mac_port_get_caps member points to.
> 
> mt7531_mac_config() is also called from mt7531_cpu_port_config() outside of
> phylink but the port and interface modes are already handled there.
> 
> Change the functions and the mac_port_config function pointer to void now
> that there're no error returns anymore.
> 
> Remove mt753x_is_mac_port() that used to help the said error returns.
> 
> On mt7531_mac_config(), switch to if statements to simplify the code.
> 
> Remove internal phy cases from mt753x_phylink_mac_config() as there is no
> configuration to be done for them. There's also no need to check the
> interface mode as that's already handled with the function the
> mac_port_get_caps member points to.
> 
> Tested-by: Arınç ÜNAL <arinc.unal@arinc9.com>
> Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>

Acked-by: Daniel Golle <daniel@makrotopia.org>
Tested-by: Daniel Golle <daniel@makrotopia.org>
(on BPi-R3 MT7986A+MT7531AE, BPi-R64 MT7622+MT7531BE and MT7988A rfb)

> ---
>  drivers/net/dsa/mt7530.c | 81 ++++++++--------------------------------
>  drivers/net/dsa/mt7530.h |  2 +-
>  2 files changed, 17 insertions(+), 66 deletions(-)
> 
> diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c
> index 8ece3d0d820c..3d19e06061cb 100644
> --- a/drivers/net/dsa/mt7530.c
> +++ b/drivers/net/dsa/mt7530.c
> @@ -2556,7 +2556,7 @@ static void mt7988_mac_port_get_caps(struct dsa_switch *ds, int port,
>  	}
>  }
>  
> -static int
> +static void
>  mt7530_mac_config(struct dsa_switch *ds, int port, unsigned int mode,
>  		  phy_interface_t interface)
>  {
> @@ -2567,22 +2567,14 @@ mt7530_mac_config(struct dsa_switch *ds, int port, unsigned int mode,
>  	} else if (port == 6) {
>  		mt7530_setup_port6(priv->ds, interface);
>  	}
> -
> -	return 0;
>  }
>  
> -static int mt7531_rgmii_setup(struct mt7530_priv *priv, u32 port,
> -			      phy_interface_t interface,
> -			      struct phy_device *phydev)
> +static void mt7531_rgmii_setup(struct mt7530_priv *priv, u32 port,
> +			       phy_interface_t interface,
> +			       struct phy_device *phydev)
>  {
>  	u32 val;
>  
> -	if (priv->p5_sgmii) {
> -		dev_err(priv->dev, "RGMII mode is not available for port %d\n",
> -			port);
> -		return -EINVAL;
> -	}
> -
>  	val = mt7530_read(priv, MT7531_CLKGEN_CTRL);
>  	val |= GP_CLK_EN;
>  	val &= ~GP_MODE_MASK;
> @@ -2610,20 +2602,14 @@ static int mt7531_rgmii_setup(struct mt7530_priv *priv, u32 port,
>  		case PHY_INTERFACE_MODE_RGMII_ID:
>  			break;
>  		default:
> -			return -EINVAL;
> +			break;
>  		}
>  	}
> -	mt7530_write(priv, MT7531_CLKGEN_CTRL, val);
>  
> -	return 0;
> -}
> -
> -static bool mt753x_is_mac_port(u32 port)
> -{
> -	return (port == 5 || port == 6);
> +	mt7530_write(priv, MT7531_CLKGEN_CTRL, val);
>  }
>  
> -static int
> +static void
>  mt7531_mac_config(struct dsa_switch *ds, int port, unsigned int mode,
>  		  phy_interface_t interface)
>  {
> @@ -2631,42 +2617,21 @@ mt7531_mac_config(struct dsa_switch *ds, int port, unsigned int mode,
>  	struct phy_device *phydev;
>  	struct dsa_port *dp;
>  
> -	if (!mt753x_is_mac_port(port)) {
> -		dev_err(priv->dev, "port %d is not a MAC port\n", port);
> -		return -EINVAL;
> -	}
> -
> -	switch (interface) {
> -	case PHY_INTERFACE_MODE_RGMII:
> -	case PHY_INTERFACE_MODE_RGMII_ID:
> -	case PHY_INTERFACE_MODE_RGMII_RXID:
> -	case PHY_INTERFACE_MODE_RGMII_TXID:
> +	if (phy_interface_mode_is_rgmii(interface)) {
>  		dp = dsa_to_port(ds, port);
>  		phydev = dp->slave->phydev;
> -		return mt7531_rgmii_setup(priv, port, interface, phydev);
> -	case PHY_INTERFACE_MODE_SGMII:
> -	case PHY_INTERFACE_MODE_NA:
> -	case PHY_INTERFACE_MODE_1000BASEX:
> -	case PHY_INTERFACE_MODE_2500BASEX:
> -		/* handled in SGMII PCS driver */
> -		return 0;
> -	default:
> -		return -EINVAL;
> +		mt7531_rgmii_setup(priv, port, interface, phydev);
>  	}
> -
> -	return -EINVAL;
>  }
>  
> -static int
> +static void
>  mt753x_mac_config(struct dsa_switch *ds, int port, unsigned int mode,
>  		  const struct phylink_link_state *state)
>  {
>  	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);
> +	if (priv->info->mac_port_config)
> +		priv->info->mac_port_config(ds, port, mode, state->interface);
>  }
>  
>  static struct phylink_pcs *
> @@ -2695,30 +2660,18 @@ mt753x_phylink_mac_config(struct dsa_switch *ds, int port, unsigned int mode,
>  	u32 mcr_cur, mcr_new;
>  
>  	switch (port) {
> -	case 0 ... 4: /* Internal phy */
> -		if (state->interface != PHY_INTERFACE_MODE_GMII &&
> -		    state->interface != PHY_INTERFACE_MODE_INTERNAL)
> -			goto unsupported;
> -		break;
>  	case 5: /* Port 5, can be used as a CPU port. */
>  		if (priv->p5_configured)
>  			break;
>  
> -		if (mt753x_mac_config(ds, port, mode, state) < 0)
> -			goto unsupported;
> +		mt753x_mac_config(ds, port, mode, state);
>  		break;
>  	case 6: /* Port 6, can be used as a CPU port. */
>  		if (priv->p6_configured)
>  			break;
>  
> -		if (mt753x_mac_config(ds, port, mode, state) < 0)
> -			goto unsupported;
> +		mt753x_mac_config(ds, port, mode, state);
>  		break;
> -	default:
> -unsupported:
> -		dev_err(ds->dev, "%s: unsupported %s port: %i\n",
> -			__func__, phy_modes(state->interface), port);
> -		return;
>  	}
>  
>  	mcr_cur = mt7530_read(priv, MT7530_PMCR_P(port));
> @@ -2811,7 +2764,6 @@ mt7531_cpu_port_config(struct dsa_switch *ds, int port)
>  	struct mt7530_priv *priv = ds->priv;
>  	phy_interface_t interface;
>  	int speed;
> -	int ret;
>  
>  	switch (port) {
>  	case 5:
> @@ -2836,9 +2788,8 @@ mt7531_cpu_port_config(struct dsa_switch *ds, int port)
>  	else
>  		speed = SPEED_1000;
>  
> -	ret = mt7531_mac_config(ds, port, MLO_AN_FIXED, interface);
> -	if (ret)
> -		return ret;
> +	mt7531_mac_config(ds, port, MLO_AN_FIXED, interface);
> +
>  	mt7530_write(priv, MT7530_PMCR_P(port),
>  		     PMCR_CPU_PORT_SETTING(priv->id));
>  	mt753x_phylink_pcs_link_up(&priv->pcs[port].pcs, MLO_AN_FIXED,
> diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h
> index cad9115de22b..ee2b3d2d6258 100644
> --- a/drivers/net/dsa/mt7530.h
> +++ b/drivers/net/dsa/mt7530.h
> @@ -722,7 +722,7 @@ struct mt753x_info {
>  	void (*mac_port_validate)(struct dsa_switch *ds, int port,
>  				  phy_interface_t interface,
>  				  unsigned long *supported);
> -	int (*mac_port_config)(struct dsa_switch *ds, int port,
> +	void (*mac_port_config)(struct dsa_switch *ds, int port,
>  			       unsigned int mode,
>  			       phy_interface_t interface);
>  };
> -- 
> 2.37.2
> 


WARNING: multiple messages have this Message-ID (diff)
From: Daniel Golle <daniel@makrotopia.org>
To: arinc9.unal@gmail.com
Cc: "Sean Wang" <sean.wang@mediatek.com>,
	"Landen Chao" <Landen.Chao@mediatek.com>,
	"DENG Qingfang" <dqfext@gmail.com>,
	"Andrew Lunn" <andrew@lunn.ch>,
	"Florian Fainelli" <f.fainelli@gmail.com>,
	"Vladimir Oltean" <olteanv@gmail.com>,
	"David S. Miller" <davem@davemloft.net>,
	"Eric Dumazet" <edumazet@google.com>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Paolo Abeni" <pabeni@redhat.com>,
	"Matthias Brugger" <matthias.bgg@gmail.com>,
	"AngeloGioacchino Del Regno"
	<angelogioacchino.delregno@collabora.com>,
	"Russell King" <linux@armlinux.org.uk>,
	"Arınç ÜNAL" <arinc.unal@arinc9.com>,
	"Richard van Schagen" <richard@routerhints.com>,
	"Richard van Schagen" <vschagen@cs.com>,
	"Frank Wunderlich" <frank-w@public-files.de>,
	erkin.bozoglu@xeront.com, netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-mediatek@lists.infradead.org
Subject: Re: [RFC PATCH net-next 21/22] net: dsa: mt7530: get rid of useless error returns on phylink code path
Date: Fri, 21 Apr 2023 19:58:48 +0100	[thread overview]
Message-ID: <ZELc6MjOicjsPGGb@makrotopia.org> (raw)
In-Reply-To: <20230421143648.87889-22-arinc.unal@arinc9.com>

On Fri, Apr 21, 2023 at 05:36:47PM +0300, arinc9.unal@gmail.com wrote:
> From: Arınç ÜNAL <arinc.unal@arinc9.com>
> 
> Remove error returns on the cases where they are already handled with the
> function the mac_port_get_caps member points to.
> 
> mt7531_mac_config() is also called from mt7531_cpu_port_config() outside of
> phylink but the port and interface modes are already handled there.
> 
> Change the functions and the mac_port_config function pointer to void now
> that there're no error returns anymore.
> 
> Remove mt753x_is_mac_port() that used to help the said error returns.
> 
> On mt7531_mac_config(), switch to if statements to simplify the code.
> 
> Remove internal phy cases from mt753x_phylink_mac_config() as there is no
> configuration to be done for them. There's also no need to check the
> interface mode as that's already handled with the function the
> mac_port_get_caps member points to.
> 
> Tested-by: Arınç ÜNAL <arinc.unal@arinc9.com>
> Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>

Acked-by: Daniel Golle <daniel@makrotopia.org>
Tested-by: Daniel Golle <daniel@makrotopia.org>
(on BPi-R3 MT7986A+MT7531AE, BPi-R64 MT7622+MT7531BE and MT7988A rfb)

> ---
>  drivers/net/dsa/mt7530.c | 81 ++++++++--------------------------------
>  drivers/net/dsa/mt7530.h |  2 +-
>  2 files changed, 17 insertions(+), 66 deletions(-)
> 
> diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c
> index 8ece3d0d820c..3d19e06061cb 100644
> --- a/drivers/net/dsa/mt7530.c
> +++ b/drivers/net/dsa/mt7530.c
> @@ -2556,7 +2556,7 @@ static void mt7988_mac_port_get_caps(struct dsa_switch *ds, int port,
>  	}
>  }
>  
> -static int
> +static void
>  mt7530_mac_config(struct dsa_switch *ds, int port, unsigned int mode,
>  		  phy_interface_t interface)
>  {
> @@ -2567,22 +2567,14 @@ mt7530_mac_config(struct dsa_switch *ds, int port, unsigned int mode,
>  	} else if (port == 6) {
>  		mt7530_setup_port6(priv->ds, interface);
>  	}
> -
> -	return 0;
>  }
>  
> -static int mt7531_rgmii_setup(struct mt7530_priv *priv, u32 port,
> -			      phy_interface_t interface,
> -			      struct phy_device *phydev)
> +static void mt7531_rgmii_setup(struct mt7530_priv *priv, u32 port,
> +			       phy_interface_t interface,
> +			       struct phy_device *phydev)
>  {
>  	u32 val;
>  
> -	if (priv->p5_sgmii) {
> -		dev_err(priv->dev, "RGMII mode is not available for port %d\n",
> -			port);
> -		return -EINVAL;
> -	}
> -
>  	val = mt7530_read(priv, MT7531_CLKGEN_CTRL);
>  	val |= GP_CLK_EN;
>  	val &= ~GP_MODE_MASK;
> @@ -2610,20 +2602,14 @@ static int mt7531_rgmii_setup(struct mt7530_priv *priv, u32 port,
>  		case PHY_INTERFACE_MODE_RGMII_ID:
>  			break;
>  		default:
> -			return -EINVAL;
> +			break;
>  		}
>  	}
> -	mt7530_write(priv, MT7531_CLKGEN_CTRL, val);
>  
> -	return 0;
> -}
> -
> -static bool mt753x_is_mac_port(u32 port)
> -{
> -	return (port == 5 || port == 6);
> +	mt7530_write(priv, MT7531_CLKGEN_CTRL, val);
>  }
>  
> -static int
> +static void
>  mt7531_mac_config(struct dsa_switch *ds, int port, unsigned int mode,
>  		  phy_interface_t interface)
>  {
> @@ -2631,42 +2617,21 @@ mt7531_mac_config(struct dsa_switch *ds, int port, unsigned int mode,
>  	struct phy_device *phydev;
>  	struct dsa_port *dp;
>  
> -	if (!mt753x_is_mac_port(port)) {
> -		dev_err(priv->dev, "port %d is not a MAC port\n", port);
> -		return -EINVAL;
> -	}
> -
> -	switch (interface) {
> -	case PHY_INTERFACE_MODE_RGMII:
> -	case PHY_INTERFACE_MODE_RGMII_ID:
> -	case PHY_INTERFACE_MODE_RGMII_RXID:
> -	case PHY_INTERFACE_MODE_RGMII_TXID:
> +	if (phy_interface_mode_is_rgmii(interface)) {
>  		dp = dsa_to_port(ds, port);
>  		phydev = dp->slave->phydev;
> -		return mt7531_rgmii_setup(priv, port, interface, phydev);
> -	case PHY_INTERFACE_MODE_SGMII:
> -	case PHY_INTERFACE_MODE_NA:
> -	case PHY_INTERFACE_MODE_1000BASEX:
> -	case PHY_INTERFACE_MODE_2500BASEX:
> -		/* handled in SGMII PCS driver */
> -		return 0;
> -	default:
> -		return -EINVAL;
> +		mt7531_rgmii_setup(priv, port, interface, phydev);
>  	}
> -
> -	return -EINVAL;
>  }
>  
> -static int
> +static void
>  mt753x_mac_config(struct dsa_switch *ds, int port, unsigned int mode,
>  		  const struct phylink_link_state *state)
>  {
>  	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);
> +	if (priv->info->mac_port_config)
> +		priv->info->mac_port_config(ds, port, mode, state->interface);
>  }
>  
>  static struct phylink_pcs *
> @@ -2695,30 +2660,18 @@ mt753x_phylink_mac_config(struct dsa_switch *ds, int port, unsigned int mode,
>  	u32 mcr_cur, mcr_new;
>  
>  	switch (port) {
> -	case 0 ... 4: /* Internal phy */
> -		if (state->interface != PHY_INTERFACE_MODE_GMII &&
> -		    state->interface != PHY_INTERFACE_MODE_INTERNAL)
> -			goto unsupported;
> -		break;
>  	case 5: /* Port 5, can be used as a CPU port. */
>  		if (priv->p5_configured)
>  			break;
>  
> -		if (mt753x_mac_config(ds, port, mode, state) < 0)
> -			goto unsupported;
> +		mt753x_mac_config(ds, port, mode, state);
>  		break;
>  	case 6: /* Port 6, can be used as a CPU port. */
>  		if (priv->p6_configured)
>  			break;
>  
> -		if (mt753x_mac_config(ds, port, mode, state) < 0)
> -			goto unsupported;
> +		mt753x_mac_config(ds, port, mode, state);
>  		break;
> -	default:
> -unsupported:
> -		dev_err(ds->dev, "%s: unsupported %s port: %i\n",
> -			__func__, phy_modes(state->interface), port);
> -		return;
>  	}
>  
>  	mcr_cur = mt7530_read(priv, MT7530_PMCR_P(port));
> @@ -2811,7 +2764,6 @@ mt7531_cpu_port_config(struct dsa_switch *ds, int port)
>  	struct mt7530_priv *priv = ds->priv;
>  	phy_interface_t interface;
>  	int speed;
> -	int ret;
>  
>  	switch (port) {
>  	case 5:
> @@ -2836,9 +2788,8 @@ mt7531_cpu_port_config(struct dsa_switch *ds, int port)
>  	else
>  		speed = SPEED_1000;
>  
> -	ret = mt7531_mac_config(ds, port, MLO_AN_FIXED, interface);
> -	if (ret)
> -		return ret;
> +	mt7531_mac_config(ds, port, MLO_AN_FIXED, interface);
> +
>  	mt7530_write(priv, MT7530_PMCR_P(port),
>  		     PMCR_CPU_PORT_SETTING(priv->id));
>  	mt753x_phylink_pcs_link_up(&priv->pcs[port].pcs, MLO_AN_FIXED,
> diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h
> index cad9115de22b..ee2b3d2d6258 100644
> --- a/drivers/net/dsa/mt7530.h
> +++ b/drivers/net/dsa/mt7530.h
> @@ -722,7 +722,7 @@ struct mt753x_info {
>  	void (*mac_port_validate)(struct dsa_switch *ds, int port,
>  				  phy_interface_t interface,
>  				  unsigned long *supported);
> -	int (*mac_port_config)(struct dsa_switch *ds, int port,
> +	void (*mac_port_config)(struct dsa_switch *ds, int port,
>  			       unsigned int mode,
>  			       phy_interface_t interface);
>  };
> -- 
> 2.37.2
> 

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: Daniel Golle <daniel@makrotopia.org>
To: arinc9.unal@gmail.com
Cc: "Sean Wang" <sean.wang@mediatek.com>,
	"Landen Chao" <Landen.Chao@mediatek.com>,
	"DENG Qingfang" <dqfext@gmail.com>,
	"Andrew Lunn" <andrew@lunn.ch>,
	"Florian Fainelli" <f.fainelli@gmail.com>,
	"Vladimir Oltean" <olteanv@gmail.com>,
	"David S. Miller" <davem@davemloft.net>,
	"Eric Dumazet" <edumazet@google.com>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Paolo Abeni" <pabeni@redhat.com>,
	"Matthias Brugger" <matthias.bgg@gmail.com>,
	"AngeloGioacchino Del Regno"
	<angelogioacchino.delregno@collabora.com>,
	"Russell King" <linux@armlinux.org.uk>,
	"Arınç ÜNAL" <arinc.unal@arinc9.com>,
	"Richard van Schagen" <richard@routerhints.com>,
	"Richard van Schagen" <vschagen@cs.com>,
	"Frank Wunderlich" <frank-w@public-files.de>,
	erkin.bozoglu@xeront.com, netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-mediatek@lists.infradead.org
Subject: Re: [RFC PATCH net-next 21/22] net: dsa: mt7530: get rid of useless error returns on phylink code path
Date: Fri, 21 Apr 2023 19:58:48 +0100	[thread overview]
Message-ID: <ZELc6MjOicjsPGGb@makrotopia.org> (raw)
In-Reply-To: <20230421143648.87889-22-arinc.unal@arinc9.com>

On Fri, Apr 21, 2023 at 05:36:47PM +0300, arinc9.unal@gmail.com wrote:
> From: Arınç ÜNAL <arinc.unal@arinc9.com>
> 
> Remove error returns on the cases where they are already handled with the
> function the mac_port_get_caps member points to.
> 
> mt7531_mac_config() is also called from mt7531_cpu_port_config() outside of
> phylink but the port and interface modes are already handled there.
> 
> Change the functions and the mac_port_config function pointer to void now
> that there're no error returns anymore.
> 
> Remove mt753x_is_mac_port() that used to help the said error returns.
> 
> On mt7531_mac_config(), switch to if statements to simplify the code.
> 
> Remove internal phy cases from mt753x_phylink_mac_config() as there is no
> configuration to be done for them. There's also no need to check the
> interface mode as that's already handled with the function the
> mac_port_get_caps member points to.
> 
> Tested-by: Arınç ÜNAL <arinc.unal@arinc9.com>
> Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>

Acked-by: Daniel Golle <daniel@makrotopia.org>
Tested-by: Daniel Golle <daniel@makrotopia.org>
(on BPi-R3 MT7986A+MT7531AE, BPi-R64 MT7622+MT7531BE and MT7988A rfb)

> ---
>  drivers/net/dsa/mt7530.c | 81 ++++++++--------------------------------
>  drivers/net/dsa/mt7530.h |  2 +-
>  2 files changed, 17 insertions(+), 66 deletions(-)
> 
> diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c
> index 8ece3d0d820c..3d19e06061cb 100644
> --- a/drivers/net/dsa/mt7530.c
> +++ b/drivers/net/dsa/mt7530.c
> @@ -2556,7 +2556,7 @@ static void mt7988_mac_port_get_caps(struct dsa_switch *ds, int port,
>  	}
>  }
>  
> -static int
> +static void
>  mt7530_mac_config(struct dsa_switch *ds, int port, unsigned int mode,
>  		  phy_interface_t interface)
>  {
> @@ -2567,22 +2567,14 @@ mt7530_mac_config(struct dsa_switch *ds, int port, unsigned int mode,
>  	} else if (port == 6) {
>  		mt7530_setup_port6(priv->ds, interface);
>  	}
> -
> -	return 0;
>  }
>  
> -static int mt7531_rgmii_setup(struct mt7530_priv *priv, u32 port,
> -			      phy_interface_t interface,
> -			      struct phy_device *phydev)
> +static void mt7531_rgmii_setup(struct mt7530_priv *priv, u32 port,
> +			       phy_interface_t interface,
> +			       struct phy_device *phydev)
>  {
>  	u32 val;
>  
> -	if (priv->p5_sgmii) {
> -		dev_err(priv->dev, "RGMII mode is not available for port %d\n",
> -			port);
> -		return -EINVAL;
> -	}
> -
>  	val = mt7530_read(priv, MT7531_CLKGEN_CTRL);
>  	val |= GP_CLK_EN;
>  	val &= ~GP_MODE_MASK;
> @@ -2610,20 +2602,14 @@ static int mt7531_rgmii_setup(struct mt7530_priv *priv, u32 port,
>  		case PHY_INTERFACE_MODE_RGMII_ID:
>  			break;
>  		default:
> -			return -EINVAL;
> +			break;
>  		}
>  	}
> -	mt7530_write(priv, MT7531_CLKGEN_CTRL, val);
>  
> -	return 0;
> -}
> -
> -static bool mt753x_is_mac_port(u32 port)
> -{
> -	return (port == 5 || port == 6);
> +	mt7530_write(priv, MT7531_CLKGEN_CTRL, val);
>  }
>  
> -static int
> +static void
>  mt7531_mac_config(struct dsa_switch *ds, int port, unsigned int mode,
>  		  phy_interface_t interface)
>  {
> @@ -2631,42 +2617,21 @@ mt7531_mac_config(struct dsa_switch *ds, int port, unsigned int mode,
>  	struct phy_device *phydev;
>  	struct dsa_port *dp;
>  
> -	if (!mt753x_is_mac_port(port)) {
> -		dev_err(priv->dev, "port %d is not a MAC port\n", port);
> -		return -EINVAL;
> -	}
> -
> -	switch (interface) {
> -	case PHY_INTERFACE_MODE_RGMII:
> -	case PHY_INTERFACE_MODE_RGMII_ID:
> -	case PHY_INTERFACE_MODE_RGMII_RXID:
> -	case PHY_INTERFACE_MODE_RGMII_TXID:
> +	if (phy_interface_mode_is_rgmii(interface)) {
>  		dp = dsa_to_port(ds, port);
>  		phydev = dp->slave->phydev;
> -		return mt7531_rgmii_setup(priv, port, interface, phydev);
> -	case PHY_INTERFACE_MODE_SGMII:
> -	case PHY_INTERFACE_MODE_NA:
> -	case PHY_INTERFACE_MODE_1000BASEX:
> -	case PHY_INTERFACE_MODE_2500BASEX:
> -		/* handled in SGMII PCS driver */
> -		return 0;
> -	default:
> -		return -EINVAL;
> +		mt7531_rgmii_setup(priv, port, interface, phydev);
>  	}
> -
> -	return -EINVAL;
>  }
>  
> -static int
> +static void
>  mt753x_mac_config(struct dsa_switch *ds, int port, unsigned int mode,
>  		  const struct phylink_link_state *state)
>  {
>  	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);
> +	if (priv->info->mac_port_config)
> +		priv->info->mac_port_config(ds, port, mode, state->interface);
>  }
>  
>  static struct phylink_pcs *
> @@ -2695,30 +2660,18 @@ mt753x_phylink_mac_config(struct dsa_switch *ds, int port, unsigned int mode,
>  	u32 mcr_cur, mcr_new;
>  
>  	switch (port) {
> -	case 0 ... 4: /* Internal phy */
> -		if (state->interface != PHY_INTERFACE_MODE_GMII &&
> -		    state->interface != PHY_INTERFACE_MODE_INTERNAL)
> -			goto unsupported;
> -		break;
>  	case 5: /* Port 5, can be used as a CPU port. */
>  		if (priv->p5_configured)
>  			break;
>  
> -		if (mt753x_mac_config(ds, port, mode, state) < 0)
> -			goto unsupported;
> +		mt753x_mac_config(ds, port, mode, state);
>  		break;
>  	case 6: /* Port 6, can be used as a CPU port. */
>  		if (priv->p6_configured)
>  			break;
>  
> -		if (mt753x_mac_config(ds, port, mode, state) < 0)
> -			goto unsupported;
> +		mt753x_mac_config(ds, port, mode, state);
>  		break;
> -	default:
> -unsupported:
> -		dev_err(ds->dev, "%s: unsupported %s port: %i\n",
> -			__func__, phy_modes(state->interface), port);
> -		return;
>  	}
>  
>  	mcr_cur = mt7530_read(priv, MT7530_PMCR_P(port));
> @@ -2811,7 +2764,6 @@ mt7531_cpu_port_config(struct dsa_switch *ds, int port)
>  	struct mt7530_priv *priv = ds->priv;
>  	phy_interface_t interface;
>  	int speed;
> -	int ret;
>  
>  	switch (port) {
>  	case 5:
> @@ -2836,9 +2788,8 @@ mt7531_cpu_port_config(struct dsa_switch *ds, int port)
>  	else
>  		speed = SPEED_1000;
>  
> -	ret = mt7531_mac_config(ds, port, MLO_AN_FIXED, interface);
> -	if (ret)
> -		return ret;
> +	mt7531_mac_config(ds, port, MLO_AN_FIXED, interface);
> +
>  	mt7530_write(priv, MT7530_PMCR_P(port),
>  		     PMCR_CPU_PORT_SETTING(priv->id));
>  	mt753x_phylink_pcs_link_up(&priv->pcs[port].pcs, MLO_AN_FIXED,
> diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h
> index cad9115de22b..ee2b3d2d6258 100644
> --- a/drivers/net/dsa/mt7530.h
> +++ b/drivers/net/dsa/mt7530.h
> @@ -722,7 +722,7 @@ struct mt753x_info {
>  	void (*mac_port_validate)(struct dsa_switch *ds, int port,
>  				  phy_interface_t interface,
>  				  unsigned long *supported);
> -	int (*mac_port_config)(struct dsa_switch *ds, int port,
> +	void (*mac_port_config)(struct dsa_switch *ds, int port,
>  			       unsigned int mode,
>  			       phy_interface_t interface);
>  };
> -- 
> 2.37.2
> 

  reply	other threads:[~2023-04-21 18:59 UTC|newest]

Thread overview: 120+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-21 14:36 [RFC PATCH net-next 00/22] net: dsa: MT7530, MT7531, and MT7988 improvements arinc9.unal
2023-04-21 14:36 ` arinc9.unal
2023-04-21 14:36 ` arinc9.unal
2023-04-21 14:36 ` [RFC PATCH net-next 01/22] net: dsa: mt7530: add missing @p5_interface to mt7530_priv description arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 16:21   ` Daniel Golle
2023-04-21 16:21     ` Daniel Golle
2023-04-21 16:21     ` Daniel Golle
2023-04-21 14:36 ` [RFC PATCH net-next 02/22] net: dsa: mt7530: use p5_interface_select as data type for p5_intf_sel arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 16:23   ` Daniel Golle
2023-04-21 16:23     ` Daniel Golle
2023-04-21 16:23     ` Daniel Golle
2023-04-21 18:27     ` Arınç ÜNAL
2023-04-21 18:27       ` Arınç ÜNAL
2023-04-21 18:27       ` Arınç ÜNAL
2023-04-21 14:36 ` [RFC PATCH net-next 03/22] net: dsa: mt7530: properly support MT7531AE and MT7531BE arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 15:22   ` Daniel Golle
2023-04-21 15:22     ` Daniel Golle
2023-04-21 15:22     ` Daniel Golle
2023-04-21 18:29     ` Arınç ÜNAL
2023-04-21 18:29       ` Arınç ÜNAL
2023-04-21 18:29       ` Arınç ÜNAL
2023-04-21 14:36 ` [RFC PATCH net-next 04/22] net: dsa: mt7530: improve comments regarding port 5 and 6 arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 16:24   ` Daniel Golle
2023-04-21 16:24     ` Daniel Golle
2023-04-21 16:24     ` Daniel Golle
2023-04-21 14:36 ` [RFC PATCH net-next 05/22] net: dsa: mt7530: read XTAL value from correct register arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 14:36 ` [RFC PATCH net-next 06/22] net: dsa: mt7530: improve code path for setting up port 5 arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 14:36 ` [RFC PATCH net-next 07/22] net: dsa: mt7530: do not run mt7530_setup_port5() if port 5 is disabled arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 14:36 ` [RFC PATCH net-next 08/22] net: dsa: mt7530: change p{5,6}_interface to p{5,6}_configured arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 17:28   ` Daniel Golle
2023-04-21 17:28     ` Daniel Golle
2023-04-21 17:28     ` Daniel Golle
2023-04-21 18:17     ` Arınç ÜNAL
2023-04-21 18:17       ` Arınç ÜNAL
2023-04-21 18:17       ` Arınç ÜNAL
2023-04-21 18:20       ` Arınç ÜNAL
2023-04-21 18:20         ` Arınç ÜNAL
2023-04-21 18:20         ` Arınç ÜNAL
2023-04-21 18:25         ` Arınç ÜNAL
2023-04-21 18:25           ` Arınç ÜNAL
2023-04-21 18:25           ` Arınç ÜNAL
2023-04-21 19:03           ` Daniel Golle
2023-04-21 19:03             ` Daniel Golle
2023-04-21 19:03             ` Daniel Golle
2023-04-21 14:36 ` [RFC PATCH net-next 09/22] net: dsa: mt7530: empty default case on mt7530_setup_port5() arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 14:36 ` [RFC PATCH net-next 10/22] net: dsa: mt7530: call port 6 setup from mt7530_mac_config() arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 14:36 ` [RFC PATCH net-next 11/22] net: dsa: mt7530: remove pad_setup function pointer arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 14:36 ` [RFC PATCH net-next 12/22] net: dsa: mt7530: move XTAL check to mt7530_setup() arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 14:36 ` [RFC PATCH net-next 13/22] net: dsa: mt7530: move enabling port 6 to mt7530_setup_port6() arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 14:36 ` [RFC PATCH net-next 14/22] net: dsa: mt7530: switch to if/else statements on mt7530_setup_port6() arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 14:36 ` [RFC PATCH net-next 15/22] net: dsa: mt7530: set TRGMII RD TAP if trgmii is being used arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 14:36 ` [RFC PATCH net-next 16/22] net: dsa: mt7530: move lowering port 5 RGMII driving to mt7530_setup() arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 14:36 ` [RFC PATCH net-next 17/22] net: dsa: mt7530: fix port capabilities for MT7988 arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 14:36 ` [RFC PATCH net-next 18/22] net: dsa: mt7530: remove .mac_port_config for MT7988 and make it optional arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 14:36 ` [RFC PATCH net-next 19/22] net: dsa: mt7530: set interrupt register only for MT7530 arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 18:32   ` Daniel Golle
2023-04-21 18:32     ` Daniel Golle
2023-04-21 18:32     ` Daniel Golle
2023-04-21 14:36 ` [RFC PATCH net-next 20/22] net: dsa: mt7530: force link-down on MACs before reset on MT7530 arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 18:42   ` Daniel Golle
2023-04-21 18:42     ` Daniel Golle
2023-04-21 18:42     ` Daniel Golle
2023-04-21 18:47     ` Arınç ÜNAL
2023-04-21 18:47       ` Arınç ÜNAL
2023-04-21 18:47       ` Arınç ÜNAL
2023-04-21 19:06       ` Daniel Golle
2023-04-21 19:06         ` Daniel Golle
2023-04-21 19:06         ` Daniel Golle
2023-04-29 15:37     ` Arınç ÜNAL
2023-04-29 15:37       ` Arınç ÜNAL
2023-04-29 15:37       ` Arınç ÜNAL
2023-04-21 14:36 ` [RFC PATCH net-next 21/22] net: dsa: mt7530: get rid of useless error returns on phylink code path arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 18:58   ` Daniel Golle [this message]
2023-04-21 18:58     ` Daniel Golle
2023-04-21 18:58     ` Daniel Golle
2023-04-21 14:36 ` [RFC PATCH net-next 22/22] net: dsa: mt7530: rename p5_intf_sel and use only for MT7530 switch arinc9.unal
2023-04-21 14:36   ` arinc9.unal
2023-04-21 14:36   ` arinc9.unal

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZELc6MjOicjsPGGb@makrotopia.org \
    --to=daniel@makrotopia.org \
    --cc=Landen.Chao@mediatek.com \
    --cc=andrew@lunn.ch \
    --cc=angelogioacchino.delregno@collabora.com \
    --cc=arinc.unal@arinc9.com \
    --cc=arinc9.unal@gmail.com \
    --cc=davem@davemloft.net \
    --cc=dqfext@gmail.com \
    --cc=edumazet@google.com \
    --cc=erkin.bozoglu@xeront.com \
    --cc=f.fainelli@gmail.com \
    --cc=kuba@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=linux@armlinux.org.uk \
    --cc=matthias.bgg@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=olteanv@gmail.com \
    --cc=pabeni@redhat.com \
    --cc=richard@routerhints.com \
    --cc=sean.wang@mediatek.com \
    --cc=vschagen@cs.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.