From: Oleksij Rempel <o.rempel@pengutronix.de>
To: Kory Maincent <kory.maincent@bootlin.com>
Cc: Andrew Lunn <andrew@lunn.ch>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Jonathan Corbet <corbet@lwn.net>,
Donald Hunter <donald.hunter@gmail.com>,
Rob Herring <robh@kernel.org>,
Andrew Lunn <andrew+netdev@lunn.ch>,
Simon Horman <horms@kernel.org>,
Heiner Kallweit <hkallweit1@gmail.com>,
Russell King <linux@armlinux.org.uk>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
netdev@vger.kernel.org, linux-doc@vger.kernel.org,
Kyle Swenson <kyle.swenson@est.tech>,
Dent Project <dentproject@linuxfoundation.org>,
kernel@pengutronix.de,
Maxime Chevallier <maxime.chevallier@bootlin.com>,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH net-next v5 02/12] net: pse-pd: Add support for reporting events
Date: Fri, 21 Feb 2025 09:50:33 +0100 [thread overview]
Message-ID: <Z7g-WYQNpVp5w7my@pengutronix.de> (raw)
In-Reply-To: <20250218-feature_poe_port_prio-v5-2-3da486e5fd64@bootlin.com>
Hi Kory,
On Tue, Feb 18, 2025 at 05:19:06PM +0100, Kory Maincent wrote:
> From: Kory Maincent (Dent Project) <kory.maincent@bootlin.com>
>
> Add support for devm_pse_irq_helper() to register PSE interrupts. This aims
> to report events such as over-current or over-temperature conditions
> similarly to how the regulator API handles them but using a specific PSE
> ethtool netlink socket.
Thank you for your work. Here some comments.
...
> --- a/drivers/net/mdio/fwnode_mdio.c
> +++ b/drivers/net/mdio/fwnode_mdio.c
> @@ -18,7 +18,8 @@ MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("FWNODE MDIO bus (Ethernet PHY) accessors");
>
> static struct pse_control *
> -fwnode_find_pse_control(struct fwnode_handle *fwnode)
> +fwnode_find_pse_control(struct fwnode_handle *fwnode,
> + struct phy_device *phydev)
> {
This change seems to be not directly related to the commit message.
Is it the preparation for the multi-phy support?
> struct pse_control *psec;
> struct device_node *np;
> @@ -30,7 +31,7 @@ fwnode_find_pse_control(struct fwnode_handle *fwnode)
> if (!np)
> return NULL;
>
> - psec = of_pse_control_get(np);
> + psec = of_pse_control_get(np, phydev);
> if (PTR_ERR(psec) == -ENOENT)
> return NULL;
>
> @@ -128,15 +129,9 @@ int fwnode_mdiobus_register_phy(struct mii_bus *bus,
> u32 phy_id;
> int rc;
>
> - psec = fwnode_find_pse_control(child);
> - if (IS_ERR(psec))
> - return PTR_ERR(psec);
> -
> mii_ts = fwnode_find_mii_timestamper(child);
> - if (IS_ERR(mii_ts)) {
> - rc = PTR_ERR(mii_ts);
> - goto clean_pse;
> - }
> + if (IS_ERR(mii_ts))
> + return PTR_ERR(mii_ts);
>
> is_c45 = fwnode_device_is_compatible(child, "ethernet-phy-ieee802.3-c45");
> if (is_c45 || fwnode_get_phy_id(child, &phy_id))
> @@ -169,6 +164,12 @@ int fwnode_mdiobus_register_phy(struct mii_bus *bus,
> goto clean_phy;
> }
>
> + psec = fwnode_find_pse_control(child, phy);
> + if (IS_ERR(psec)) {
> + rc = PTR_ERR(psec);
> + goto unregister_phy;
> + }
> +
> phy->psec = psec;
>
> /* phy->mii_ts may already be defined by the PHY driver. A
> @@ -180,12 +181,13 @@ int fwnode_mdiobus_register_phy(struct mii_bus *bus,
>
> return 0;
>
> +unregister_phy:
> + if (is_acpi_node(child) || is_of_node(child))
> + phy_device_remove(phy);
> clean_phy:
> phy_device_free(phy);
> clean_mii_ts:
> unregister_mii_timestamper(mii_ts);
> -clean_pse:
> - pse_control_put(psec);
>
> return rc;
> }
> diff --git a/drivers/net/pse-pd/pse_core.c b/drivers/net/pse-pd/pse_core.c
> index 4602e26eb8c8..10a5ab30afdd 100644
> --- a/drivers/net/pse-pd/pse_core.c
> +++ b/drivers/net/pse-pd/pse_core.c
> @@ -7,6 +7,7 @@
...
> +/**
> + * pse_to_regulator_notifs - Convert PSE notifications to Regulator
> + * notifications
> + * @notifs: PSE notifications
> + *
> + * Return: Regulator notifications
> + */
> +static unsigned long pse_to_regulator_notifs(unsigned long notifs)
I prefer converting it the other way around to make it reusable for
plain regulator-based PSEs. For example, the podl-pse-regulator driver
won’t have its own interrupt handler but will instead use
devm_regulator_register_notifier().
Even full-fledged PSE controllers like the PD692x0 are just one part of
a larger chain of regulators. An overcurrent event may originate from a
downstream regulator that is not part of the PD692x0 itself. In this
case, we need to process the event from the downstream regulator,
convert it into an ethtool event, and forward it to the user.
Here is one example how devm_regulator_register_notifier() can be used:
https://lore.kernel.org/all/20250220074429.2906141-1-o.rempel@pengutronix.de/
> +{
> + unsigned long rnotifs = 0;
> +
> + if (notifs & ETHTOOL_PSE_EVENT_OVER_CURRENT)
> + rnotifs |= REGULATOR_EVENT_OVER_CURRENT;
> + if (notifs & ETHTOOL_PSE_EVENT_OVER_TEMP)
> + rnotifs |= REGULATOR_EVENT_OVER_TEMP;
> +
> + return rnotifs;
> +}
> +
Other parts look ok for me.
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
next prev parent reply other threads:[~2025-02-21 8:50 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-18 16:19 [PATCH net-next v5 00/12] Add support for PSE budget evaluation strategy Kory Maincent
2025-02-18 16:19 ` [PATCH net-next v5 01/12] net: ethtool: Add support for ethnl_info_init_ntf helper function Kory Maincent
2025-02-18 16:19 ` [PATCH net-next v5 02/12] net: pse-pd: Add support for reporting events Kory Maincent
2025-02-21 0:42 ` Jakub Kicinski
2025-02-24 12:33 ` Kory Maincent
2025-02-24 21:47 ` Jakub Kicinski
2025-02-21 8:50 ` Oleksij Rempel [this message]
2025-02-24 11:02 ` Kory Maincent
2025-02-24 18:19 ` Kory Maincent
2025-02-18 16:19 ` [PATCH net-next v5 03/12] net: pse-pd: tps23881: Add support for PSE events and interrupts Kory Maincent
2025-02-18 16:19 ` [PATCH net-next v5 04/12] net: pse-pd: Add support for PSE power domains Kory Maincent
2025-02-21 0:43 ` Jakub Kicinski
2025-02-18 16:19 ` [PATCH net-next v5 05/12] net: ethtool: Add support for new power domains index description Kory Maincent
2025-02-18 16:19 ` [PATCH net-next v5 06/12] net: pse-pd: Add support for budget evaluation strategies Kory Maincent
2025-02-21 0:51 ` Jakub Kicinski
2025-02-24 13:10 ` Kory Maincent
2025-02-24 21:45 ` Jakub Kicinski
2025-02-25 9:25 ` Kory Maincent
2025-02-26 1:47 ` Jakub Kicinski
2025-02-26 5:59 ` Oleksij Rempel
2025-02-26 6:06 ` Oleksij Rempel
2025-02-27 2:42 ` Jakub Kicinski
2025-02-27 7:40 ` Oleksij Rempel
2025-02-27 14:57 ` Kory Maincent
2025-02-27 16:40 ` Oleksij Rempel
2025-02-27 18:26 ` Kory Maincent
2025-03-01 13:00 ` Oleksij Rempel
2025-03-03 13:40 ` Kory Maincent
2025-03-04 1:12 ` Jakub Kicinski
2025-02-18 16:19 ` [PATCH net-next v5 07/12] net: ethtool: Add PSE new budget evaluation strategy support feature Kory Maincent
2025-02-21 13:49 ` Oleksij Rempel
2025-02-24 13:13 ` Kory Maincent
2025-02-18 16:19 ` [PATCH net-next v5 08/12] net: pse-pd: pd692x0: Add support for PSE PI priority feature Kory Maincent
2025-02-18 16:19 ` [PATCH net-next v5 09/12] net: pse-pd: pd692x0: Add support for controller and manager power supplies Kory Maincent
2025-02-24 12:42 ` Maxime Chevallier
2025-02-24 12:49 ` Russell King (Oracle)
2025-02-24 13:17 ` Maxime Chevallier
2025-02-18 16:19 ` [PATCH net-next v5 10/12] dt-bindings: net: pse-pd: microchip,pd692x0: Add manager regulator supply Kory Maincent
2025-02-19 7:41 ` Krzysztof Kozlowski
2025-02-18 16:19 ` [PATCH net-next v5 11/12] net: pse-pd: tps23881: Add support for static port priority feature Kory Maincent
2025-02-18 16:19 ` [PATCH net-next v5 12/12] dt-bindings: net: pse-pd: ti,tps23881: Add interrupt description Kory Maincent
2025-02-19 7:41 ` Krzysztof Kozlowski
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=Z7g-WYQNpVp5w7my@pengutronix.de \
--to=o.rempel@pengutronix.de \
--cc=andrew+netdev@lunn.ch \
--cc=andrew@lunn.ch \
--cc=conor+dt@kernel.org \
--cc=corbet@lwn.net \
--cc=davem@davemloft.net \
--cc=dentproject@linuxfoundation.org \
--cc=devicetree@vger.kernel.org \
--cc=donald.hunter@gmail.com \
--cc=edumazet@google.com \
--cc=hkallweit1@gmail.com \
--cc=horms@kernel.org \
--cc=kernel@pengutronix.de \
--cc=kory.maincent@bootlin.com \
--cc=krzk+dt@kernel.org \
--cc=kuba@kernel.org \
--cc=kyle.swenson@est.tech \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=maxime.chevallier@bootlin.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=robh@kernel.org \
--cc=thomas.petazzoni@bootlin.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;
as well as URLs for NNTP newsgroup(s).