From: Maxime Chevallier <maxime.chevallier@bootlin.com>
To: davem@davemloft.net
Cc: "Maxime Chevallier" <maxime.chevallier@bootlin.com>,
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>,
"Simon Horman" <horms@kernel.org>,
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>
Subject: [PATCH net-next 09/13] net: phy: marvell10g: Support SFP through phy_port
Date: Fri, 7 Feb 2025 23:36:28 +0100 [thread overview]
Message-ID: <20250207223634.600218-10-maxime.chevallier@bootlin.com> (raw)
In-Reply-To: <20250207223634.600218-1-maxime.chevallier@bootlin.com>
Convert the Marvell10G driver to use the generic SFP handling, through a
dedicated .attach_port() handler to populate the port's supported
interfaces. As there's no logic to setup the interface for now (as only
10GBaseR is supported for serdes line interfaces), no extra logic is
required.
Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
---
drivers/net/phy/marvell10g.c | 37 ++++++++++++++++--------------------
1 file changed, 16 insertions(+), 21 deletions(-)
diff --git a/drivers/net/phy/marvell10g.c b/drivers/net/phy/marvell10g.c
index 623bdb8466b8..4a66694e49bb 100644
--- a/drivers/net/phy/marvell10g.c
+++ b/drivers/net/phy/marvell10g.c
@@ -28,7 +28,7 @@
#include <linux/hwmon.h>
#include <linux/marvell_phy.h>
#include <linux/phy.h>
-#include <linux/sfp.h>
+#include <linux/phy_port.h>
#include <linux/netdevice.h>
#define MV_PHY_ALASKA_NBT_QUIRK_MASK 0xfffffffe
@@ -483,36 +483,23 @@ static int mv3310_set_edpd(struct phy_device *phydev, u16 edpd)
return err;
}
-static int mv3310_sfp_insert(void *upstream, const struct sfp_eeprom_id *id)
+static int mv3310_attach_port(struct phy_device *phydev, struct phy_port *port)
{
- struct phy_device *phydev = upstream;
- __ETHTOOL_DECLARE_LINK_MODE_MASK(support) = { 0, };
- DECLARE_PHY_INTERFACE_MASK(interfaces);
- phy_interface_t iface;
+ /* Nothing special to do to handle non-serdes ports */
+ if (!port->is_serdes)
+ return 0;
- sfp_parse_support(phydev->sfp_bus, id, support, interfaces);
- iface = sfp_select_interface(phydev->sfp_bus, support);
+ __set_bit(PHY_INTERFACE_MODE_10GBASER, port->interfaces);
- if (iface != PHY_INTERFACE_MODE_10GBASER) {
- dev_err(&phydev->mdio.dev, "incompatible SFP module inserted\n");
- return -EINVAL;
- }
return 0;
}
-static const struct sfp_upstream_ops mv3310_sfp_ops = {
- .attach = phy_sfp_attach,
- .detach = phy_sfp_detach,
- .connect_phy = phy_sfp_connect_phy,
- .disconnect_phy = phy_sfp_disconnect_phy,
- .module_insert = mv3310_sfp_insert,
-};
-
static int mv3310_probe(struct phy_device *phydev)
{
const struct mv3310_chip *chip = to_mv3310_chip(phydev);
struct mv3310_priv *priv;
u32 mmd_mask = MDIO_DEVS_PMAPMD | MDIO_DEVS_AN;
+ DECLARE_PHY_INTERFACE_MASK(interfaces);
int ret;
if (!phydev->is_c45 ||
@@ -563,9 +550,13 @@ static int mv3310_probe(struct phy_device *phydev)
if (ret)
return ret;
+ __set_bit(PHY_INTERFACE_MODE_10GBASER, interfaces);
+
chip->init_supported_interfaces(priv->supported_interfaces);
- return phy_sfp_probe(phydev, &mv3310_sfp_ops);
+ phydev->max_n_ports = 2;
+
+ return 0;
}
static void mv3310_remove(struct phy_device *phydev)
@@ -1422,6 +1413,7 @@ static struct phy_driver mv3310_drivers[] = {
.set_loopback = genphy_c45_loopback,
.get_wol = mv3110_get_wol,
.set_wol = mv3110_set_wol,
+ .attach_port = mv3310_attach_port,
},
{
.phy_id = MARVELL_PHY_ID_88X3310,
@@ -1441,6 +1433,7 @@ static struct phy_driver mv3310_drivers[] = {
.set_tunable = mv3310_set_tunable,
.remove = mv3310_remove,
.set_loopback = genphy_c45_loopback,
+ .attach_port = mv3310_attach_port,
},
{
.phy_id = MARVELL_PHY_ID_88E2110,
@@ -1461,6 +1454,7 @@ static struct phy_driver mv3310_drivers[] = {
.set_loopback = genphy_c45_loopback,
.get_wol = mv3110_get_wol,
.set_wol = mv3110_set_wol,
+ .attach_port = mv3310_attach_port,
},
{
.phy_id = MARVELL_PHY_ID_88E2110,
@@ -1479,6 +1473,7 @@ static struct phy_driver mv3310_drivers[] = {
.set_tunable = mv3310_set_tunable,
.remove = mv3310_remove,
.set_loopback = genphy_c45_loopback,
+ .attach_port = mv3310_attach_port,
},
};
--
2.48.1
next prev parent reply other threads:[~2025-02-07 22:36 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-07 22:36 [PATCH net-next 00/13] Introduce an ethernet port representation Maxime Chevallier
2025-02-07 22:36 ` [PATCH net-next 01/13] net: ethtool: Introduce ETHTOOL_LINK_MEDIUM_* values Maxime Chevallier
2025-02-07 22:36 ` [PATCH net-next 02/13] net: ethtool: Export the link_mode_params definitions Maxime Chevallier
2025-02-07 22:36 ` [PATCH net-next 03/13] net: phy: Introduce PHY ports representation Maxime Chevallier
2025-02-11 13:32 ` Kory Maincent
2025-02-11 13:42 ` Maxime Chevallier
2025-02-11 13:52 ` Kory Maincent
2025-02-11 14:04 ` Andrew Lunn
2025-02-11 14:17 ` Maxime Chevallier
2025-02-07 22:36 ` [PATCH net-next 04/13] net: phy: dp83822: Add support for phy_port representation Maxime Chevallier
2025-02-07 22:36 ` [PATCH net-next 05/13] net: phy: Create a phy_port for PHY-driven SFPs Maxime Chevallier
2025-02-12 15:59 ` Maxime Chevallier
2025-02-07 22:36 ` [PATCH net-next 06/13] net: phy: Intrduce generic SFP handling for PHY drivers Maxime Chevallier
2025-02-08 15:32 ` kernel test robot
2025-02-07 22:36 ` [PATCH net-next 07/13] net: phy: marvell-88x2222: Support SFP through phy_port interface Maxime Chevallier
2025-02-07 22:36 ` [PATCH net-next 08/13] net: phy: marvell: " Maxime Chevallier
2025-02-07 22:36 ` Maxime Chevallier [this message]
2025-02-07 22:36 ` [PATCH net-next 10/13] net: phy: at803x: " Maxime Chevallier
2025-02-07 22:36 ` [PATCH net-next 11/13] net: phy: Only rely on phy_port for PHY-driven SFP Maxime Chevallier
2025-02-08 16:04 ` kernel test robot
2025-02-11 9:17 ` Maxime Chevallier
2025-02-07 22:36 ` [PATCH net-next 12/13] net: phy: dp83822: Add SFP support through the phy_port interface Maxime Chevallier
2025-02-08 16:15 ` kernel test robot
2025-02-07 22:36 ` [PATCH net-next 13/13] dt-bindings: net: Introduce the phy-port description Maxime Chevallier
2025-02-08 2:14 ` [PATCH net-next 00/13] Introduce an ethernet port representation Sean Anderson
2025-02-10 8:55 ` Maxime Chevallier
2025-02-12 15:39 ` Sean Anderson
2025-02-12 15:44 ` Maxime Chevallier
2025-02-12 19:48 ` Rob Herring
2025-02-13 9:57 ` 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=20250207223634.600218-10-maxime.chevallier@bootlin.com \
--to=maxime.chevallier@bootlin.com \
--cc=andrew@lunn.ch \
--cc=atenart@kernel.org \
--cc=christophe.leroy@csgroup.eu \
--cc=conor+dt@kernel.org \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=edumazet@google.com \
--cc=f.fainelli@gmail.com \
--cc=herve.codina@bootlin.com \
--cc=hkallweit1@gmail.com \
--cc=horms@kernel.org \
--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=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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox