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, 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>, "Jesse Brandeburg" <jesse.brandeburg@intel.com>, "Jonathan Corbet" <corbet@lwn.net>, "Marek Behún" <kabel@kernel.org>, "Piergiorgio Beruto" <piergiorgio.beruto@gmail.com>, "Oleksij Rempel" <o.rempel@pengutronix.de>, "Nicolò Veronese" <nicveronese@gmail.com>, "Simon Horman" <horms@kernel.org> Subject: [PATCH net-next v5 02/13] net: sfp: pass the phy_device when disconnecting an sfp module's PHY Date: Thu, 21 Dec 2023 19:00:35 +0100 [thread overview] Message-ID: <20231221180047.1924733-3-maxime.chevallier@bootlin.com> (raw) In-Reply-To: <20231221180047.1924733-1-maxime.chevallier@bootlin.com> Pass the phy_device as a parameter to the sfp upstream .disconnect_phy operation. This is preparatory work to help track phy devices across a net_device's link. Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com> --- V5: No changes V4: No changes V3: No changes drivers/net/phy/phy_device.c | 8 ++++++++ drivers/net/phy/phylink.c | 3 ++- drivers/net/phy/sfp-bus.c | 4 ++-- include/linux/sfp.h | 2 +- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c index d7c0812bd107..aad78e3f7894 100644 --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c @@ -266,6 +266,14 @@ static void phy_mdio_device_remove(struct mdio_device *mdiodev) static struct phy_driver genphy_driver; +static struct phy_link_topology *phy_get_link_topology(struct phy_device *phydev) +{ + if (phydev->attached_dev) + return &phydev->attached_dev->link_topo; + + return NULL; +} + static LIST_HEAD(phy_fixup_list); static DEFINE_MUTEX(phy_fixup_lock); diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c index 298dfd6982a5..3d25a4a6212b 100644 --- a/drivers/net/phy/phylink.c +++ b/drivers/net/phy/phylink.c @@ -3319,7 +3319,8 @@ static int phylink_sfp_connect_phy(void *upstream, struct phy_device *phy) return ret; } -static void phylink_sfp_disconnect_phy(void *upstream) +static void phylink_sfp_disconnect_phy(void *upstream, + struct phy_device *phydev) { phylink_disconnect_phy(upstream); } diff --git a/drivers/net/phy/sfp-bus.c b/drivers/net/phy/sfp-bus.c index 6fa679b36290..3a86c41e1235 100644 --- a/drivers/net/phy/sfp-bus.c +++ b/drivers/net/phy/sfp-bus.c @@ -486,7 +486,7 @@ static void sfp_unregister_bus(struct sfp_bus *bus) bus->socket_ops->stop(bus->sfp); bus->socket_ops->detach(bus->sfp); if (bus->phydev && ops && ops->disconnect_phy) - ops->disconnect_phy(bus->upstream); + ops->disconnect_phy(bus->upstream, bus->phydev); } bus->registered = false; } @@ -742,7 +742,7 @@ void sfp_remove_phy(struct sfp_bus *bus) const struct sfp_upstream_ops *ops = sfp_get_upstream_ops(bus); if (ops && ops->disconnect_phy) - ops->disconnect_phy(bus->upstream); + ops->disconnect_phy(bus->upstream, bus->phydev); bus->phydev = NULL; } EXPORT_SYMBOL_GPL(sfp_remove_phy); diff --git a/include/linux/sfp.h b/include/linux/sfp.h index 9346cd44814d..0573e53b0c11 100644 --- a/include/linux/sfp.h +++ b/include/linux/sfp.h @@ -544,7 +544,7 @@ struct sfp_upstream_ops { void (*link_down)(void *priv); void (*link_up)(void *priv); int (*connect_phy)(void *priv, struct phy_device *); - void (*disconnect_phy)(void *priv); + void (*disconnect_phy)(void *priv, struct phy_device *); }; #if IS_ENABLED(CONFIG_SFP) -- 2.43.0
WARNING: multiple messages have this Message-ID (diff)
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, 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>, "Jesse Brandeburg" <jesse.brandeburg@intel.com>, "Jonathan Corbet" <corbet@lwn.net>, "Marek Behún" <kabel@kernel.org>, "Piergiorgio Beruto" <piergiorgio.beruto@gmail.com>, "Oleksij Rempel" <o.rempel@pengutronix.de>, "Nicolò Veronese" <nicveronese@gmail.com>, "Simon Horman" <horms@kernel.org> Subject: [PATCH net-next v5 02/13] net: sfp: pass the phy_device when disconnecting an sfp module's PHY Date: Thu, 21 Dec 2023 19:00:35 +0100 [thread overview] Message-ID: <20231221180047.1924733-3-maxime.chevallier@bootlin.com> (raw) In-Reply-To: <20231221180047.1924733-1-maxime.chevallier@bootlin.com> Pass the phy_device as a parameter to the sfp upstream .disconnect_phy operation. This is preparatory work to help track phy devices across a net_device's link. Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com> --- V5: No changes V4: No changes V3: No changes drivers/net/phy/phy_device.c | 8 ++++++++ drivers/net/phy/phylink.c | 3 ++- drivers/net/phy/sfp-bus.c | 4 ++-- include/linux/sfp.h | 2 +- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c index d7c0812bd107..aad78e3f7894 100644 --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c @@ -266,6 +266,14 @@ static void phy_mdio_device_remove(struct mdio_device *mdiodev) static struct phy_driver genphy_driver; +static struct phy_link_topology *phy_get_link_topology(struct phy_device *phydev) +{ + if (phydev->attached_dev) + return &phydev->attached_dev->link_topo; + + return NULL; +} + static LIST_HEAD(phy_fixup_list); static DEFINE_MUTEX(phy_fixup_lock); diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c index 298dfd6982a5..3d25a4a6212b 100644 --- a/drivers/net/phy/phylink.c +++ b/drivers/net/phy/phylink.c @@ -3319,7 +3319,8 @@ static int phylink_sfp_connect_phy(void *upstream, struct phy_device *phy) return ret; } -static void phylink_sfp_disconnect_phy(void *upstream) +static void phylink_sfp_disconnect_phy(void *upstream, + struct phy_device *phydev) { phylink_disconnect_phy(upstream); } diff --git a/drivers/net/phy/sfp-bus.c b/drivers/net/phy/sfp-bus.c index 6fa679b36290..3a86c41e1235 100644 --- a/drivers/net/phy/sfp-bus.c +++ b/drivers/net/phy/sfp-bus.c @@ -486,7 +486,7 @@ static void sfp_unregister_bus(struct sfp_bus *bus) bus->socket_ops->stop(bus->sfp); bus->socket_ops->detach(bus->sfp); if (bus->phydev && ops && ops->disconnect_phy) - ops->disconnect_phy(bus->upstream); + ops->disconnect_phy(bus->upstream, bus->phydev); } bus->registered = false; } @@ -742,7 +742,7 @@ void sfp_remove_phy(struct sfp_bus *bus) const struct sfp_upstream_ops *ops = sfp_get_upstream_ops(bus); if (ops && ops->disconnect_phy) - ops->disconnect_phy(bus->upstream); + ops->disconnect_phy(bus->upstream, bus->phydev); bus->phydev = NULL; } EXPORT_SYMBOL_GPL(sfp_remove_phy); diff --git a/include/linux/sfp.h b/include/linux/sfp.h index 9346cd44814d..0573e53b0c11 100644 --- a/include/linux/sfp.h +++ b/include/linux/sfp.h @@ -544,7 +544,7 @@ struct sfp_upstream_ops { void (*link_down)(void *priv); void (*link_up)(void *priv); int (*connect_phy)(void *priv, struct phy_device *); - void (*disconnect_phy)(void *priv); + void (*disconnect_phy)(void *priv, struct phy_device *); }; #if IS_ENABLED(CONFIG_SFP) -- 2.43.0 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2023-12-21 18:00 UTC|newest] Thread overview: 76+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-12-21 18:00 [PATCH net-next v5 00/13] Introduce PHY listing and link_topology tracking Maxime Chevallier 2023-12-21 18:00 ` Maxime Chevallier 2023-12-21 18:00 ` [PATCH net-next v5 01/13] net: phy: Introduce ethernet link topology representation Maxime Chevallier 2023-12-21 18:00 ` Maxime Chevallier 2024-01-04 23:12 ` Jakub Kicinski 2024-01-04 23:12 ` Jakub Kicinski 2024-01-05 2:21 ` Andrew Lunn 2024-01-05 2:21 ` Andrew Lunn 2024-01-05 9:29 ` Maxime Chevallier 2024-01-05 9:29 ` Maxime Chevallier 2024-01-05 15:34 ` Jakub Kicinski 2024-01-05 15:34 ` Jakub Kicinski 2023-12-21 18:00 ` Maxime Chevallier [this message] 2023-12-21 18:00 ` [PATCH net-next v5 02/13] net: sfp: pass the phy_device when disconnecting an sfp module's PHY Maxime Chevallier 2024-01-03 15:20 ` Russell King (Oracle) 2024-01-03 15:20 ` Russell King (Oracle) 2024-01-03 17:45 ` Maxime Chevallier 2024-01-03 17:45 ` Maxime Chevallier 2023-12-21 18:00 ` [PATCH net-next v5 03/13] net: phy: add helpers to handle sfp phy connect/disconnect Maxime Chevallier 2023-12-21 18:00 ` Maxime Chevallier 2023-12-21 18:00 ` [PATCH net-next v5 04/13] net: sfp: Add helper to return the SFP bus name Maxime Chevallier 2023-12-21 18:00 ` Maxime Chevallier 2023-12-21 18:00 ` [PATCH net-next v5 05/13] net: ethtool: Allow passing a phy index for some commands Maxime Chevallier 2023-12-21 18:00 ` Maxime Chevallier 2024-01-04 23:15 ` Jakub Kicinski 2024-01-04 23:15 ` Jakub Kicinski 2024-01-05 9:30 ` Maxime Chevallier 2024-01-05 9:30 ` Maxime Chevallier 2023-12-21 18:00 ` [PATCH net-next v5 06/13] netlink: specs: add phy-index as a header parameter Maxime Chevallier 2023-12-21 18:00 ` Maxime Chevallier 2023-12-21 18:00 ` [PATCH net-next v5 07/13] net: ethtool: Introduce a command to list PHYs on an interface Maxime Chevallier 2023-12-21 18:00 ` Maxime Chevallier 2024-01-04 23:34 ` Jakub Kicinski 2024-01-04 23:34 ` Jakub Kicinski 2024-01-05 9:43 ` Maxime Chevallier 2024-01-05 9:43 ` Maxime Chevallier 2024-01-05 13:17 ` Andrew Lunn 2024-01-05 13:17 ` Andrew Lunn 2024-01-24 13:50 ` Maxime Chevallier 2024-01-24 13:50 ` Maxime Chevallier 2024-01-24 16:54 ` Andrew Lunn 2024-01-24 16:54 ` Andrew Lunn 2024-01-25 8:22 ` Maxime Chevallier 2024-01-25 8:22 ` Maxime Chevallier 2024-01-25 17:10 ` Andrew Lunn 2024-01-25 17:10 ` Andrew Lunn 2024-01-05 15:39 ` Jakub Kicinski 2024-01-05 15:39 ` Jakub Kicinski 2023-12-21 18:00 ` [PATCH net-next v5 08/13] netlink: specs: add ethnl PHY_GET command set Maxime Chevallier 2023-12-21 18:00 ` Maxime Chevallier 2023-12-21 18:00 ` [PATCH net-next v5 09/13] net: ethtool: plca: Target the command to the requested PHY Maxime Chevallier 2023-12-21 18:00 ` Maxime Chevallier 2023-12-21 18:00 ` [PATCH net-next v5 10/13] net: ethtool: pse-pd: " Maxime Chevallier 2023-12-21 18:00 ` Maxime Chevallier 2023-12-21 18:00 ` [PATCH net-next v5 11/13] net: ethtool: cable-test: " Maxime Chevallier 2023-12-21 18:00 ` Maxime Chevallier 2023-12-21 18:00 ` [PATCH net-next v5 12/13] net: ethtool: strset: Allow querying phy stats by index Maxime Chevallier 2023-12-21 18:00 ` Maxime Chevallier 2023-12-21 18:00 ` [PATCH net-next v5 13/13] Documentation: networking: document phy_link_topology Maxime Chevallier 2023-12-21 18:00 ` Maxime Chevallier 2024-01-01 18:40 ` [PATCH net-next v5 00/13] Introduce PHY listing and link_topology tracking patchwork-bot+netdevbpf 2024-01-01 18:40 ` patchwork-bot+netdevbpf 2024-01-02 11:57 ` Russell King (Oracle) 2024-01-02 11:57 ` Russell King (Oracle) 2024-01-02 18:51 ` Jakub Kicinski 2024-01-02 18:51 ` Jakub Kicinski 2024-01-03 14:33 ` Maxime Chevallier 2024-01-03 14:33 ` Maxime Chevallier 2024-01-04 23:47 ` Jakub Kicinski 2024-01-04 23:47 ` Jakub Kicinski 2024-01-04 23:50 ` Florian Fainelli 2024-01-04 23:50 ` Florian Fainelli 2024-01-05 0:56 ` Jakub Kicinski 2024-01-05 0:56 ` Jakub Kicinski 2024-01-05 9:00 ` Maxime Chevallier 2024-01-05 9:00 ` 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=20231221180047.1924733-3-maxime.chevallier@bootlin.com \ --to=maxime.chevallier@bootlin.com \ --cc=andrew@lunn.ch \ --cc=christophe.leroy@csgroup.eu \ --cc=corbet@lwn.net \ --cc=davem@davemloft.net \ --cc=edumazet@google.com \ --cc=f.fainelli@gmail.com \ --cc=herve.codina@bootlin.com \ --cc=hkallweit1@gmail.com \ --cc=horms@kernel.org \ --cc=jesse.brandeburg@intel.com \ --cc=kabel@kernel.org \ --cc=kory.maincent@bootlin.com \ --cc=kuba@kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux@armlinux.org.uk \ --cc=netdev@vger.kernel.org \ --cc=nicveronese@gmail.com \ --cc=o.rempel@pengutronix.de \ --cc=pabeni@redhat.com \ --cc=piergiorgio.beruto@gmail.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: linkBe 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.