From: Willem de Bruijn <willemdebruijn.kernel@gmail.com>
To: Kory Maincent <kory.maincent@bootlin.com>,
Florian Fainelli <florian.fainelli@broadcom.com>,
Broadcom internal kernel review list
<bcm-kernel-feedback-list@broadcom.com>,
Andrew Lunn <andrew@lunn.ch>,
Heiner Kallweit <hkallweit1@gmail.com>,
Russell King <linux@armlinux.org.uk>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>,
Paolo Abeni <pabeni@redhat.com>,
Richard Cochran <richardcochran@gmail.com>,
Radu Pirea <radu-nicolae.pirea@oss.nxp.com>,
Jay Vosburgh <j.vosburgh@gmail.com>,
Andy Gospodarek <andy@greyhouse.net>,
Nicolas Ferre <nicolas.ferre@microchip.com>,
Claudiu Beznea <claudiu.beznea@tuxon.dev>,
Willem de Bruijn <willemdebruijn.kernel@gmail.com>,
Jonathan Corbet <corbet@lwn.net>,
Horatiu Vultur <horatiu.vultur@microchip.com>,
UNGLinuxDriver@microchip.com, Simon Horman <horms@kernel.org>,
Vladimir Oltean <vladimir.oltean@nxp.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-doc@vger.kernel.org,
Maxime Chevallier <maxime.chevallier@bootlin.com>,
Rahul Rameshbabu <rrameshbabu@nvidia.com>,
Kory Maincent <kory.maincent@bootlin.com>
Subject: Re: [PATCH net-next v10 08/13] ptp: Add phc source and helpers to register specific PTP clock or get information
Date: Wed, 10 Apr 2024 23:00:53 -0400 [thread overview]
Message-ID: <66175265992c8_2d6bc6294d8@willemb.c.googlers.com.notmuch> (raw)
In-Reply-To: <20240409-feature_ptp_netnext-v10-8-0fa2ea5c89a9@bootlin.com>
Kory Maincent wrote:
> Prepare for future hardware timestamp selection by adding source and
> corresponding pointers to ptp_clock structure. Additionally, introduce
> helpers for registering specific phydev or netdev PTP clocks, retrieving
> PTP clock information such as hwtstamp source or phydev/netdev pointers,
> and obtaining the ptp_clock structure from the phc index.
>
> Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
> ---
>
> Change in v8:
> - New patch.
>
> Change in v10:
> - Add get and put function to avoid unregistering a ptp clock object used.
> - Fix kdoc issues.
> ---
> drivers/ptp/ptp_clock.c | 114 +++++++++++++++++++++++++++++++++++++++
> drivers/ptp/ptp_private.h | 5 ++
> include/linux/ptp_clock_kernel.h | 104 +++++++++++++++++++++++++++++++++++
> 3 files changed, 223 insertions(+)
>
> diff --git a/drivers/ptp/ptp_clock.c b/drivers/ptp/ptp_clock.c
> index c56cd0f63909..f962f460ec9d 100644
> --- a/drivers/ptp/ptp_clock.c
> +++ b/drivers/ptp/ptp_clock.c
> @@ -512,6 +512,120 @@ void ptp_cancel_worker_sync(struct ptp_clock *ptp)
> }
> EXPORT_SYMBOL(ptp_cancel_worker_sync);
>
> +struct ptp_clock *netdev_ptp_clock_register(struct ptp_clock_info *info,
> + struct net_device *dev)
> +{
> + struct ptp_clock *ptp;
> +
> + ptp = ptp_clock_register(info, &dev->dev);
> + if (IS_ERR(ptp))
> + return ptp;
> +
> + ptp->phc_source = HWTSTAMP_SOURCE_NETDEV;
> + ptp->netdev = dev;
> +
> + return ptp;
> +}
> +EXPORT_SYMBOL(netdev_ptp_clock_register);
> +
> +struct ptp_clock *phydev_ptp_clock_register(struct ptp_clock_info *info,
> + struct phy_device *phydev)
> +{
> + struct ptp_clock *ptp;
> +
> + ptp = ptp_clock_register(info, &phydev->mdio.dev);
> + if (IS_ERR(ptp))
> + return ptp;
> +
> + ptp->phc_source = HWTSTAMP_SOURCE_PHYLIB;
> + ptp->phydev = phydev;
> +
> + return ptp;
> +}
> +EXPORT_SYMBOL(phydev_ptp_clock_register);
> +
> +bool ptp_clock_from_phylib(struct ptp_clock *ptp)
> +{
> + return ptp->phc_source == HWTSTAMP_SOURCE_PHYLIB;
> +}
> +EXPORT_SYMBOL(ptp_clock_from_phylib);
> +
> +bool ptp_clock_from_netdev(struct ptp_clock *ptp)
> +{
> + return ptp->phc_source == HWTSTAMP_SOURCE_NETDEV;
> +}
> +EXPORT_SYMBOL(ptp_clock_from_netdev);
> +
> +struct net_device *ptp_clock_netdev(struct ptp_clock *ptp)
> +{
> + if (ptp->phc_source != HWTSTAMP_SOURCE_NETDEV)
> + return NULL;
> +
> + return ptp->netdev;
> +}
> +EXPORT_SYMBOL(ptp_clock_netdev);
> +
> +struct phy_device *ptp_clock_phydev(struct ptp_clock *ptp)
> +{
> + if (ptp->phc_source != HWTSTAMP_SOURCE_PHYLIB)
> + return NULL;
> +
> + return ptp->phydev;
> +}
> +EXPORT_SYMBOL(ptp_clock_phydev);
IMHO these four helpers just add a layer of indirection without much
benefit.
Do we ever expect more than two sources? Else, the phc_source could be
embedded as the least significant bit of the pointer in the union. In
that case we would need helpers to return the pointer without that LSB.
But space in struct ptp_clock is probably not so valuable that we need
to play such games.
> +/**
> + * netdev_ptp_clock_register() - register a PTP hardware clock driver for
> + * a net device
> + *
> + * @info: Structure describing the new clock.
> + * @dev: Pointer of the net device
> + */
> +
> +extern struct ptp_clock *
> +netdev_ptp_clock_register(struct ptp_clock_info *info,
> + struct net_device *dev);
No need for explicit extern?
next prev parent reply other threads:[~2024-04-11 3:00 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-09 8:26 [PATCH net-next v10 00/13] net: Make timestamping selectable Kory Maincent
2024-04-09 8:26 ` [PATCH net-next v10 01/13] net_tstamp: Add TIMESTAMPING SOFTWARE and HARDWARE mask Kory Maincent
2024-04-09 8:26 ` [PATCH net-next v10 02/13] net: Move dev_set_hwtstamp_phylib to net/core/dev.h Kory Maincent
2024-04-09 14:43 ` Willem de Bruijn
2024-04-09 8:26 ` [PATCH net-next v10 03/13] net: Make dev_get_hwtstamp_phylib accessible Kory Maincent
2024-04-09 8:26 ` [PATCH net-next v10 04/13] net: Make net_hwtstamp_validate accessible Kory Maincent
2024-04-09 8:26 ` [PATCH net-next v10 05/13] net: Change the API of PHY default timestamp to MAC Kory Maincent
2024-04-09 8:26 ` [PATCH net-next v10 06/13] net: net_tstamp: Add unspec field to hwtstamp_source enumeration Kory Maincent
2024-04-09 8:26 ` [PATCH net-next v10 07/13] net: Add struct kernel_ethtool_ts_info Kory Maincent
2024-04-10 1:27 ` Jakub Kicinski
2024-04-10 8:12 ` Kory Maincent
2024-04-10 10:04 ` Russell King (Oracle)
2024-04-10 13:54 ` Kory Maincent
2024-04-10 19:37 ` Russell King (Oracle)
2024-04-09 8:26 ` [PATCH net-next v10 08/13] ptp: Add phc source and helpers to register specific PTP clock or get information Kory Maincent
2024-04-11 3:00 ` Willem de Bruijn [this message]
2024-04-11 3:18 ` Willem de Bruijn
2024-04-14 5:33 ` Kory Maincent
2024-04-14 16:33 ` Willem de Bruijn
2024-04-09 8:26 ` [PATCH net-next v10 09/13] net: Add the possibility to support a selected hwtstamp in netdevice Kory Maincent
2024-04-09 8:26 ` [PATCH net-next v10 10/13] net: netdevsim: ptp_mock: Convert to netdev_ptp_clock_register Kory Maincent
2024-04-09 8:26 ` [PATCH net-next v10 11/13] net: macb: " Kory Maincent
2024-04-09 8:26 ` [PATCH net-next v10 12/13] net: ethtool: tsinfo: Add support for hwtstamp provider and get/set hwtstamp config Kory Maincent
2024-04-09 8:26 ` [PATCH net-next v10 13/13] netlink: specs: tsinfo: Enhance netlink attributes and add a set command Kory Maincent
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=66175265992c8_2d6bc6294d8@willemb.c.googlers.com.notmuch \
--to=willemdebruijn.kernel@gmail.com \
--cc=UNGLinuxDriver@microchip.com \
--cc=andrew@lunn.ch \
--cc=andy@greyhouse.net \
--cc=bcm-kernel-feedback-list@broadcom.com \
--cc=claudiu.beznea@tuxon.dev \
--cc=corbet@lwn.net \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=florian.fainelli@broadcom.com \
--cc=hkallweit1@gmail.com \
--cc=horatiu.vultur@microchip.com \
--cc=horms@kernel.org \
--cc=j.vosburgh@gmail.com \
--cc=kory.maincent@bootlin.com \
--cc=kuba@kernel.org \
--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=nicolas.ferre@microchip.com \
--cc=pabeni@redhat.com \
--cc=radu-nicolae.pirea@oss.nxp.com \
--cc=richardcochran@gmail.com \
--cc=rrameshbabu@nvidia.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
all inboxes | Powered by JetHome®