All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Horman <horms@kernel.org>
To: Maxime Chevallier <maxime.chevallier@bootlin.com>
Cc: davem@davemloft.net, netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org,
	thomas.petazzoni@bootlin.com, "Andrew Lunn" <andrew@lunn.ch>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Eric Dumazet" <edumazet@google.com>,
	"Paolo Abeni" <pabeni@redhat.com>,
	"Russell King" <linux@armlinux.org.uk>,
	linux-arm-kernel@lists.infradead.org,
	"Christophe Leroy" <christophe.leroy@csgroup.eu>,
	"Herve Codina" <herve.codina@bootlin.com>,
	"Florian Fainelli" <f.fainelli@gmail.com>,
	"Heiner Kallweit" <hkallweit1@gmail.com>,
	"Vladimir Oltean" <vladimir.oltean@nxp.com>,
	"Köry Maincent" <kory.maincent@bootlin.com>,
	"Marek Behún" <kabel@kernel.org>,
	"Oleksij Rempel" <o.rempel@pengutronix.de>,
	"Nicolò Veronese" <nicveronese@gmail.com>,
	mwojtas@chromium.org, "Antoine Tenart" <atenart@kernel.org>,
	devicetree@vger.kernel.org, "Conor Dooley" <conor+dt@kernel.org>,
	"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
	"Rob Herring" <robh@kernel.org>,
	"Romain Gantois" <romain.gantois@bootlin.com>,
	"Daniel Golle" <daniel@makrotopia.org>,
	"Dimitri Fedrau" <dimitri.fedrau@liebherr.com>
Subject: Re: [PATCH net-next v5 04/14] net: phy: dp83822: Add support for phy_port representation
Date: Wed, 30 Apr 2025 09:52:20 +0100	[thread overview]
Message-ID: <20250430085220.GS3339421@horms.kernel.org> (raw)
In-Reply-To: <20250425141511.182537-5-maxime.chevallier@bootlin.com>

On Fri, Apr 25, 2025 at 04:14:57PM +0200, Maxime Chevallier wrote:
> With the phy_port representation intrduced, we can use .attach_port to
> populate the port information based on either the straps or the
> ti,fiber-mode property. This allows simplifying the probe function and
> allow users to override the strapping configuration.
> 
> Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
> ---
>  drivers/net/phy/dp83822.c | 70 ++++++++++++++++++++++++---------------
>  1 file changed, 44 insertions(+), 26 deletions(-)
> 
> diff --git a/drivers/net/phy/dp83822.c b/drivers/net/phy/dp83822.c
> index 490c9f4e5d4e..bbbe509f3bd9 100644
> --- a/drivers/net/phy/dp83822.c
> +++ b/drivers/net/phy/dp83822.c
> @@ -11,6 +11,7 @@
>  #include <linux/module.h>
>  #include <linux/of.h>
>  #include <linux/phy.h>
> +#include <linux/phy_port.h>
>  #include <linux/netdevice.h>
>  #include <linux/bitfield.h>
>  
> @@ -814,17 +815,6 @@ static int dp83822_of_init(struct phy_device *phydev)
>  	int i, ret;
>  	u32 val;
>  
> -	/* Signal detection for the PHY is only enabled if the FX_EN and the
> -	 * SD_EN pins are strapped. Signal detection can only enabled if FX_EN
> -	 * is strapped otherwise signal detection is disabled for the PHY.
> -	 */
> -	if (dp83822->fx_enabled && dp83822->fx_sd_enable)
> -		dp83822->fx_signal_det_low = device_property_present(dev,
> -								     "ti,link-loss-low");
> -	if (!dp83822->fx_enabled)
> -		dp83822->fx_enabled = device_property_present(dev,
> -							      "ti,fiber-mode");
> -
>  	if (!device_property_read_string(dev, "ti,gpio2-clk-out", &of_val)) {
>  		if (strcmp(of_val, "mac-if") == 0) {
>  			dp83822->gpio2_clk_out = DP83822_CLK_SRC_MAC_IF;
> @@ -953,6 +943,47 @@ static int dp83822_read_straps(struct phy_device *phydev)
>  	return 0;
>  }
>  
> +static int dp83822_attach_port(struct phy_device *phydev, struct phy_port *port)
> +{
> +	struct dp83822_private *dp83822 = phydev->priv;
> +	struct device *dev = &phydev->mdio.dev;

Hi Maxime,

A nit from my side:

dev is unused if CONFIG_OF_MDIO is not defined.

Perhaps it's scope can be reduced somehow.
Or &phydev->mdio.dev can be used directly?
Or the code guarded by CONFIG_OF_MDIO could be moved into a separate
function that makes use if IS_ENABLED to return early if there is nothing
to do (maybe the best option if possible, as it would increase compile
coverage).
Or ...

> +	int ret;
> +
> +	if (port->mediums) {
> +		if (phy_port_is_fiber(port))
> +			dp83822->fx_enabled = true;
> +	} else {
> +		ret = dp83822_read_straps(phydev);
> +		if (ret)
> +			return ret;
> +
> +#ifdef CONFIG_OF_MDIO
> +		if (dp83822->fx_enabled && dp83822->fx_sd_enable)
> +			dp83822->fx_signal_det_low =
> +				device_property_present(dev, "ti,link-loss-low");
> +
> +		/* ti,fiber-mode is still used for backwards compatibility, but
> +		 * has been replaced with the mdi node definition, see
> +		 * ethernet-port.yaml
> +		 */
> +		if (!dp83822->fx_enabled)
> +			dp83822->fx_enabled =
> +				device_property_present(dev, "ti,fiber-mode");
> +#endif
> +
> +		if (dp83822->fx_enabled) {
> +			port->lanes = 1;
> +			port->mediums = BIT(ETHTOOL_LINK_MEDIUM_BASEF);
> +		} else {
> +			/* This PHY can only to 100BaseTX max, so on 2 lanes */
> +			port->lanes = 2;
> +			port->mediums = BIT(ETHTOOL_LINK_MEDIUM_BASET);
> +		}
> +	}
> +
> +	return 0;
> +}

...


  reply	other threads:[~2025-04-30  8:54 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-25 14:14 [PATCH net-next v5 00/14] Introduce an ethernet port representation Maxime Chevallier
2025-04-25 14:14 ` [PATCH net-next v5 01/14] dt-bindings: net: Introduce the ethernet-connector description Maxime Chevallier
2025-04-25 14:14 ` [PATCH net-next v5 02/14] net: ethtool: Introduce ETHTOOL_LINK_MEDIUM_* values Maxime Chevallier
2025-04-25 14:14 ` [PATCH net-next v5 03/14] net: phy: Introduce PHY ports representation Maxime Chevallier
2025-04-29  0:11   ` Jakub Kicinski
2025-04-29  7:20     ` Maxime Chevallier
2025-04-25 14:14 ` [PATCH net-next v5 04/14] net: phy: dp83822: Add support for phy_port representation Maxime Chevallier
2025-04-30  8:52   ` Simon Horman [this message]
2025-04-25 14:14 ` [PATCH net-next v5 05/14] net: phy: Create a phy_port for PHY-driven SFPs Maxime Chevallier
2025-04-25 14:14 ` [PATCH net-next v5 06/14] net: phy: Introduce generic SFP handling for PHY drivers Maxime Chevallier
2025-04-25 14:15 ` [PATCH net-next v5 07/14] net: phy: marvell-88x2222: Support SFP through phy_port interface Maxime Chevallier
2025-04-29  0:11   ` Jakub Kicinski
2025-04-25 14:15 ` [PATCH net-next v5 08/14] net: phy: marvell: " Maxime Chevallier
2025-04-25 14:15 ` [PATCH net-next v5 09/14] net: phy: marvell10g: Support SFP through phy_port Maxime Chevallier
2025-04-25 14:15 ` [PATCH net-next v5 10/14] net: phy: at803x: Support SFP through phy_port interface Maxime Chevallier
2025-04-25 14:15 ` [PATCH net-next v5 11/14] net: phy: qca807x: " Maxime Chevallier
2025-04-25 14:15 ` [PATCH net-next v5 12/14] net: phy: Only rely on phy_port for PHY-driven SFP Maxime Chevallier
2025-04-25 14:15 ` [PATCH net-next v5 13/14] net: phy: dp83822: Add SFP support through the phy_port interface Maxime Chevallier
2025-04-25 14:15 ` [PATCH net-next v5 14/14] Documentation: networking: Document the phy_port infrastructure Maxime Chevallier

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=20250430085220.GS3339421@horms.kernel.org \
    --to=horms@kernel.org \
    --cc=andrew@lunn.ch \
    --cc=atenart@kernel.org \
    --cc=christophe.leroy@csgroup.eu \
    --cc=conor+dt@kernel.org \
    --cc=daniel@makrotopia.org \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=dimitri.fedrau@liebherr.com \
    --cc=edumazet@google.com \
    --cc=f.fainelli@gmail.com \
    --cc=herve.codina@bootlin.com \
    --cc=hkallweit1@gmail.com \
    --cc=kabel@kernel.org \
    --cc=kory.maincent@bootlin.com \
    --cc=krzk+dt@kernel.org \
    --cc=kuba@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=maxime.chevallier@bootlin.com \
    --cc=mwojtas@chromium.org \
    --cc=netdev@vger.kernel.org \
    --cc=nicveronese@gmail.com \
    --cc=o.rempel@pengutronix.de \
    --cc=pabeni@redhat.com \
    --cc=robh@kernel.org \
    --cc=romain.gantois@bootlin.com \
    --cc=thomas.petazzoni@bootlin.com \
    --cc=vladimir.oltean@nxp.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.