public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next v3 0/4] support for hwtstamp_get in phy - part 2
@ 2026-01-06 16:07 Vadim Fedorenko
  2026-01-06 16:07 ` [PATCH net-next v3 1/4] net: phy: micrel: improve HW timestamping config logic Vadim Fedorenko
                   ` (4 more replies)
  0 siblings, 5 replies; 8+ messages in thread
From: Vadim Fedorenko @ 2026-01-06 16:07 UTC (permalink / raw)
  To: Andrew Lunn, Russell King, Heiner Kallweit, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Richard Cochran,
	Andrew Lunn
  Cc: Simon Horman, Vladimir Oltean, Jacob Keller, Kory Maincent,
	netdev, Vadim Fedorenko

There are 2 drivers which had some inconsistency in HW timestamping
configuration logic. Improve both of them and add hwtstamp_get()
callback.

v2 -> v3:
* fix the copy-paste check of rx_filter instead of tx_type
* add tx_type check for lan8841
link to v2: https://lore.kernel.org/netdev/f9919964-236c-4f2e-a7ec-9fe7969aaa55@linux.dev/
v1 -> v2:
* add checks and return error in case of unsupported TX tiemstamps
* get function for lan8814 and lan8841 are the same - keep only one

Vadim Fedorenko (4):
  net: phy: micrel: improve HW timestamping config logic
  net: phy: micrel: add HW timestamp configuration reporting
  net: phy: microchip_rds_ptp: improve HW ts config logic
  net: phy: microchip_rds_ptp: add HW timestamp configuration reporting

 drivers/net/phy/micrel.c            | 44 +++++++++++++++++++++++++----
 drivers/net/phy/microchip_rds_ptp.c | 34 ++++++++++++++++++----
 2 files changed, 67 insertions(+), 11 deletions(-)

-- 
2.47.3

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH net-next v3 1/4] net: phy: micrel: improve HW timestamping config logic
  2026-01-06 16:07 [PATCH net-next v3 0/4] support for hwtstamp_get in phy - part 2 Vadim Fedorenko
@ 2026-01-06 16:07 ` Vadim Fedorenko
  2026-01-06 17:54   ` Kory Maincent
  2026-01-06 16:07 ` [PATCH net-next v3 2/4] net: phy: micrel: add HW timestamp configuration reporting Vadim Fedorenko
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 8+ messages in thread
From: Vadim Fedorenko @ 2026-01-06 16:07 UTC (permalink / raw)
  To: Andrew Lunn, Russell King, Heiner Kallweit, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Richard Cochran,
	Andrew Lunn
  Cc: Simon Horman, Vladimir Oltean, Jacob Keller, Kory Maincent,
	netdev, Vadim Fedorenko

The driver was adjusting stored values independently of what was
actually supported and configured. Improve logic to store values
once all checks are passing

Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Vadim Fedorenko <vadim.fedorenko@linux.dev>
---
 drivers/net/phy/micrel.c | 30 ++++++++++++++++++++++++------
 1 file changed, 24 insertions(+), 6 deletions(-)

diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c
index 05de68b9f719..c0aea74a559f 100644
--- a/drivers/net/phy/micrel.c
+++ b/drivers/net/phy/micrel.c
@@ -3157,9 +3157,6 @@ static int lan8814_hwtstamp_set(struct mii_timestamper *mii_ts,
 	int txcfg = 0, rxcfg = 0;
 	int pkt_ts_enable;
 
-	ptp_priv->hwts_tx_type = config->tx_type;
-	ptp_priv->rx_filter = config->rx_filter;
-
 	switch (config->rx_filter) {
 	case HWTSTAMP_FILTER_NONE:
 		ptp_priv->layer = 0;
@@ -3187,6 +3184,18 @@ static int lan8814_hwtstamp_set(struct mii_timestamper *mii_ts,
 		return -ERANGE;
 	}
 
+	switch (config->tx_type) {
+	case HWTSTAMP_TX_OFF:
+	case HWTSTAMP_TX_ON:
+	case HWTSTAMP_TX_ONESTEP_SYNC:
+		break;
+	default:
+		return -ERANGE;
+	}
+
+	ptp_priv->hwts_tx_type = config->tx_type;
+	ptp_priv->rx_filter = config->rx_filter;
+
 	if (ptp_priv->layer & PTP_CLASS_L2) {
 		rxcfg = PTP_RX_PARSE_CONFIG_LAYER2_EN_;
 		txcfg = PTP_TX_PARSE_CONFIG_LAYER2_EN_;
@@ -5051,9 +5060,6 @@ static int lan8841_hwtstamp_set(struct mii_timestamper *mii_ts,
 	int txcfg = 0, rxcfg = 0;
 	int pkt_ts_enable;
 
-	ptp_priv->hwts_tx_type = config->tx_type;
-	ptp_priv->rx_filter = config->rx_filter;
-
 	switch (config->rx_filter) {
 	case HWTSTAMP_FILTER_NONE:
 		ptp_priv->layer = 0;
@@ -5081,6 +5087,18 @@ static int lan8841_hwtstamp_set(struct mii_timestamper *mii_ts,
 		return -ERANGE;
 	}
 
+	switch (config->tx_type) {
+	case HWTSTAMP_TX_OFF:
+	case HWTSTAMP_TX_ON:
+	case HWTSTAMP_TX_ONESTEP_SYNC:
+		break;
+	default:
+		return -ERANGE;
+	}
+
+	ptp_priv->hwts_tx_type = config->tx_type;
+	ptp_priv->rx_filter = config->rx_filter;
+
 	/* Setup parsing of the frames and enable the timestamping for ptp
 	 * frames
 	 */
-- 
2.47.3


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH net-next v3 2/4] net: phy: micrel: add HW timestamp configuration reporting
  2026-01-06 16:07 [PATCH net-next v3 0/4] support for hwtstamp_get in phy - part 2 Vadim Fedorenko
  2026-01-06 16:07 ` [PATCH net-next v3 1/4] net: phy: micrel: improve HW timestamping config logic Vadim Fedorenko
@ 2026-01-06 16:07 ` Vadim Fedorenko
  2026-01-06 16:07 ` [PATCH net-next v3 3/4] net: phy: microchip_rds_ptp: improve HW ts config logic Vadim Fedorenko
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: Vadim Fedorenko @ 2026-01-06 16:07 UTC (permalink / raw)
  To: Andrew Lunn, Russell King, Heiner Kallweit, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Richard Cochran,
	Andrew Lunn
  Cc: Simon Horman, Vladimir Oltean, Jacob Keller, Kory Maincent,
	netdev, Vadim Fedorenko

The driver stores HW timestamping configuration and can technically
report it. Add callback to do it.

Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Kory Maincent <kory.maincent@bootlin.com>
Signed-off-by: Vadim Fedorenko <vadim.fedorenko@linux.dev>
---
 drivers/net/phy/micrel.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c
index c0aea74a559f..225d4adf28be 100644
--- a/drivers/net/phy/micrel.c
+++ b/drivers/net/phy/micrel.c
@@ -3147,6 +3147,18 @@ static void lan8814_flush_fifo(struct phy_device *phydev, bool egress)
 	lanphy_read_page_reg(phydev, LAN8814_PAGE_PORT_REGS, PTP_TSU_INT_STS);
 }
 
+static int lan8814_hwtstamp_get(struct mii_timestamper *mii_ts,
+				struct kernel_hwtstamp_config *config)
+{
+	struct kszphy_ptp_priv *ptp_priv =
+			  container_of(mii_ts, struct kszphy_ptp_priv, mii_ts);
+
+	config->tx_type = ptp_priv->hwts_tx_type;
+	config->rx_filter = ptp_priv->rx_filter;
+
+	return 0;
+}
+
 static int lan8814_hwtstamp_set(struct mii_timestamper *mii_ts,
 				struct kernel_hwtstamp_config *config,
 				struct netlink_ext_ack *extack)
@@ -4399,6 +4411,7 @@ static void lan8814_ptp_init(struct phy_device *phydev)
 	ptp_priv->mii_ts.rxtstamp = lan8814_rxtstamp;
 	ptp_priv->mii_ts.txtstamp = lan8814_txtstamp;
 	ptp_priv->mii_ts.hwtstamp_set = lan8814_hwtstamp_set;
+	ptp_priv->mii_ts.hwtstamp_get = lan8814_hwtstamp_get;
 	ptp_priv->mii_ts.ts_info  = lan8814_ts_info;
 
 	phydev->mii_ts = &ptp_priv->mii_ts;
@@ -5943,6 +5956,7 @@ static int lan8841_probe(struct phy_device *phydev)
 	ptp_priv->mii_ts.rxtstamp = lan8841_rxtstamp;
 	ptp_priv->mii_ts.txtstamp = lan8814_txtstamp;
 	ptp_priv->mii_ts.hwtstamp_set = lan8841_hwtstamp_set;
+	ptp_priv->mii_ts.hwtstamp_get = lan8814_hwtstamp_get;
 	ptp_priv->mii_ts.ts_info = lan8841_ts_info;
 
 	phydev->mii_ts = &ptp_priv->mii_ts;
-- 
2.47.3


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH net-next v3 3/4] net: phy: microchip_rds_ptp: improve HW ts config logic
  2026-01-06 16:07 [PATCH net-next v3 0/4] support for hwtstamp_get in phy - part 2 Vadim Fedorenko
  2026-01-06 16:07 ` [PATCH net-next v3 1/4] net: phy: micrel: improve HW timestamping config logic Vadim Fedorenko
  2026-01-06 16:07 ` [PATCH net-next v3 2/4] net: phy: micrel: add HW timestamp configuration reporting Vadim Fedorenko
@ 2026-01-06 16:07 ` Vadim Fedorenko
  2026-01-06 17:58   ` Kory Maincent
  2026-01-06 16:07 ` [PATCH net-next v3 4/4] net: phy: microchip_rds_ptp: add HW timestamp configuration reporting Vadim Fedorenko
  2026-01-09  4:20 ` [PATCH net-next v3 0/4] support for hwtstamp_get in phy - part 2 patchwork-bot+netdevbpf
  4 siblings, 1 reply; 8+ messages in thread
From: Vadim Fedorenko @ 2026-01-06 16:07 UTC (permalink / raw)
  To: Andrew Lunn, Russell King, Heiner Kallweit, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Richard Cochran,
	Andrew Lunn
  Cc: Simon Horman, Vladimir Oltean, Jacob Keller, Kory Maincent,
	netdev, Vadim Fedorenko

The driver stores new HW timestamping configuration values
unconditionally and may create inconsistency with what is actually
configured in case of error. Improve the logic to store new values only
once everything is configured.

Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Vadim Fedorenko <vadim.fedorenko@linux.dev>
---
 drivers/net/phy/microchip_rds_ptp.c | 21 ++++++++++++++++-----
 1 file changed, 16 insertions(+), 5 deletions(-)

diff --git a/drivers/net/phy/microchip_rds_ptp.c b/drivers/net/phy/microchip_rds_ptp.c
index 4c6326b0ceaf..5f6e7cd11622 100644
--- a/drivers/net/phy/microchip_rds_ptp.c
+++ b/drivers/net/phy/microchip_rds_ptp.c
@@ -488,9 +488,6 @@ static int mchp_rds_ptp_hwtstamp_set(struct mii_timestamper *mii_ts,
 	unsigned long flags;
 	int rc;
 
-	clock->hwts_tx_type = config->tx_type;
-	clock->rx_filter = config->rx_filter;
-
 	switch (config->rx_filter) {
 	case HWTSTAMP_FILTER_NONE:
 		clock->layer = 0;
@@ -518,6 +515,15 @@ static int mchp_rds_ptp_hwtstamp_set(struct mii_timestamper *mii_ts,
 		return -ERANGE;
 	}
 
+	switch (config->tx_type) {
+	case HWTSTAMP_TX_ONESTEP_SYNC:
+	case HWTSTAMP_TX_ON:
+	case HWTSTAMP_TX_OFF:
+		break;
+	default:
+		return -ERANGE;
+	}
+
 	/* Setup parsing of the frames and enable the timestamping for ptp
 	 * frames
 	 */
@@ -553,7 +559,7 @@ static int mchp_rds_ptp_hwtstamp_set(struct mii_timestamper *mii_ts,
 	if (rc < 0)
 		return rc;
 
-	if (clock->hwts_tx_type == HWTSTAMP_TX_ONESTEP_SYNC)
+	if (config->tx_type == HWTSTAMP_TX_ONESTEP_SYNC)
 		/* Enable / disable of the TX timestamp in the SYNC frames */
 		rc = mchp_rds_phy_modify_mmd(clock, MCHP_RDS_PTP_TX_MOD,
 					     MCHP_RDS_PTP_PORT,
@@ -587,8 +593,13 @@ static int mchp_rds_ptp_hwtstamp_set(struct mii_timestamper *mii_ts,
 	/* Now enable the timestamping interrupts */
 	rc = mchp_rds_ptp_config_intr(clock,
 				      config->rx_filter != HWTSTAMP_FILTER_NONE);
+	if (rc < 0)
+		return rc;
 
-	return rc < 0 ? rc : 0;
+	clock->hwts_tx_type = config->tx_type;
+	clock->rx_filter = config->rx_filter;
+
+	return 0;
 }
 
 static int mchp_rds_ptp_ts_info(struct mii_timestamper *mii_ts,
-- 
2.47.3


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH net-next v3 4/4] net: phy: microchip_rds_ptp: add HW timestamp configuration reporting
  2026-01-06 16:07 [PATCH net-next v3 0/4] support for hwtstamp_get in phy - part 2 Vadim Fedorenko
                   ` (2 preceding siblings ...)
  2026-01-06 16:07 ` [PATCH net-next v3 3/4] net: phy: microchip_rds_ptp: improve HW ts config logic Vadim Fedorenko
@ 2026-01-06 16:07 ` Vadim Fedorenko
  2026-01-09  4:20 ` [PATCH net-next v3 0/4] support for hwtstamp_get in phy - part 2 patchwork-bot+netdevbpf
  4 siblings, 0 replies; 8+ messages in thread
From: Vadim Fedorenko @ 2026-01-06 16:07 UTC (permalink / raw)
  To: Andrew Lunn, Russell King, Heiner Kallweit, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Richard Cochran,
	Andrew Lunn
  Cc: Simon Horman, Vladimir Oltean, Jacob Keller, Kory Maincent,
	netdev, Vadim Fedorenko

The driver stores HW timestamping configuration and can technically
report it. Add callback to do it.

Reviewed-by: Kory Maincent <kory.maincent@bootlin.com>
Signed-off-by: Vadim Fedorenko <vadim.fedorenko@linux.dev>
---
 drivers/net/phy/microchip_rds_ptp.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/drivers/net/phy/microchip_rds_ptp.c b/drivers/net/phy/microchip_rds_ptp.c
index 5f6e7cd11622..f5f2928e705f 100644
--- a/drivers/net/phy/microchip_rds_ptp.c
+++ b/drivers/net/phy/microchip_rds_ptp.c
@@ -476,6 +476,18 @@ static bool mchp_rds_ptp_rxtstamp(struct mii_timestamper *mii_ts,
 	return true;
 }
 
+static int mchp_rds_ptp_hwtstamp_get(struct mii_timestamper *mii_ts,
+				     struct kernel_hwtstamp_config *config)
+{
+	struct mchp_rds_ptp_clock *clock =
+				container_of(mii_ts, struct mchp_rds_ptp_clock,
+					     mii_ts);
+	config->tx_type = clock->hwts_tx_type;
+	config->rx_filter = clock->rx_filter;
+
+	return 0;
+}
+
 static int mchp_rds_ptp_hwtstamp_set(struct mii_timestamper *mii_ts,
 				     struct kernel_hwtstamp_config *config,
 				     struct netlink_ext_ack *extack)
@@ -1293,6 +1305,7 @@ struct mchp_rds_ptp_clock *mchp_rds_ptp_probe(struct phy_device *phydev, u8 mmd,
 	clock->mii_ts.rxtstamp = mchp_rds_ptp_rxtstamp;
 	clock->mii_ts.txtstamp = mchp_rds_ptp_txtstamp;
 	clock->mii_ts.hwtstamp_set = mchp_rds_ptp_hwtstamp_set;
+	clock->mii_ts.hwtstamp_get = mchp_rds_ptp_hwtstamp_get;
 	clock->mii_ts.ts_info = mchp_rds_ptp_ts_info;
 
 	phydev->mii_ts = &clock->mii_ts;
-- 
2.47.3


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH net-next v3 1/4] net: phy: micrel: improve HW timestamping config logic
  2026-01-06 16:07 ` [PATCH net-next v3 1/4] net: phy: micrel: improve HW timestamping config logic Vadim Fedorenko
@ 2026-01-06 17:54   ` Kory Maincent
  0 siblings, 0 replies; 8+ messages in thread
From: Kory Maincent @ 2026-01-06 17:54 UTC (permalink / raw)
  To: Vadim Fedorenko
  Cc: Andrew Lunn, Russell King, Heiner Kallweit, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Richard Cochran,
	Andrew Lunn, Simon Horman, Vladimir Oltean, Jacob Keller, netdev

On Tue,  6 Jan 2026 16:07:20 +0000
Vadim Fedorenko <vadim.fedorenko@linux.dev> wrote:

> The driver was adjusting stored values independently of what was
> actually supported and configured. Improve logic to store values
> once all checks are passing
> 
> Reviewed-by: Andrew Lunn <andrew@lunn.ch>
> Signed-off-by: Vadim Fedorenko <vadim.fedorenko@linux.dev>

Reviewed-by: Kory Maincent <kory.maincent@bootlin.com>

Thank you!
-- 
Köry Maincent, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH net-next v3 3/4] net: phy: microchip_rds_ptp: improve HW ts config logic
  2026-01-06 16:07 ` [PATCH net-next v3 3/4] net: phy: microchip_rds_ptp: improve HW ts config logic Vadim Fedorenko
@ 2026-01-06 17:58   ` Kory Maincent
  0 siblings, 0 replies; 8+ messages in thread
From: Kory Maincent @ 2026-01-06 17:58 UTC (permalink / raw)
  To: Vadim Fedorenko
  Cc: Andrew Lunn, Russell King, Heiner Kallweit, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Richard Cochran,
	Andrew Lunn, Simon Horman, Vladimir Oltean, Jacob Keller, netdev

On Tue,  6 Jan 2026 16:07:22 +0000
Vadim Fedorenko <vadim.fedorenko@linux.dev> wrote:

> The driver stores new HW timestamping configuration values
> unconditionally and may create inconsistency with what is actually
> configured in case of error. Improve the logic to store new values only
> once everything is configured.
> 
> Reviewed-by: Andrew Lunn <andrew@lunn.ch>
> Signed-off-by: Vadim Fedorenko <vadim.fedorenko@linux.dev>

Reviewed-by: Kory Maincent <kory.maincent@bootlin.com>

Thank you!
-- 
Köry Maincent, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH net-next v3 0/4] support for hwtstamp_get in phy - part 2
  2026-01-06 16:07 [PATCH net-next v3 0/4] support for hwtstamp_get in phy - part 2 Vadim Fedorenko
                   ` (3 preceding siblings ...)
  2026-01-06 16:07 ` [PATCH net-next v3 4/4] net: phy: microchip_rds_ptp: add HW timestamp configuration reporting Vadim Fedorenko
@ 2026-01-09  4:20 ` patchwork-bot+netdevbpf
  4 siblings, 0 replies; 8+ messages in thread
From: patchwork-bot+netdevbpf @ 2026-01-09  4:20 UTC (permalink / raw)
  To: Vadim Fedorenko
  Cc: andrew+netdev, linux, hkallweit1, davem, edumazet, kuba, pabeni,
	richardcochran, andrew, horms, vladimir.oltean, jacob.e.keller,
	kory.maincent, netdev

Hello:

This series was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Tue,  6 Jan 2026 16:07:19 +0000 you wrote:
> There are 2 drivers which had some inconsistency in HW timestamping
> configuration logic. Improve both of them and add hwtstamp_get()
> callback.
> 
> v2 -> v3:
> * fix the copy-paste check of rx_filter instead of tx_type
> * add tx_type check for lan8841
> link to v2: https://lore.kernel.org/netdev/f9919964-236c-4f2e-a7ec-9fe7969aaa55@linux.dev/
> v1 -> v2:
> * add checks and return error in case of unsupported TX tiemstamps
> * get function for lan8814 and lan8841 are the same - keep only one
> 
> [...]

Here is the summary with links:
  - [net-next,v3,1/4] net: phy: micrel: improve HW timestamping config logic
    https://git.kernel.org/netdev/net-next/c/88c7ed2fb071
  - [net-next,v3,2/4] net: phy: micrel: add HW timestamp configuration reporting
    https://git.kernel.org/netdev/net-next/c/32d83db3aaf6
  - [net-next,v3,3/4] net: phy: microchip_rds_ptp: improve HW ts config logic
    https://git.kernel.org/netdev/net-next/c/ffde97f8ff6a
  - [net-next,v3,4/4] net: phy: microchip_rds_ptp: add HW timestamp configuration reporting
    https://git.kernel.org/netdev/net-next/c/f529893f404b

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2026-01-09  4:23 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-06 16:07 [PATCH net-next v3 0/4] support for hwtstamp_get in phy - part 2 Vadim Fedorenko
2026-01-06 16:07 ` [PATCH net-next v3 1/4] net: phy: micrel: improve HW timestamping config logic Vadim Fedorenko
2026-01-06 17:54   ` Kory Maincent
2026-01-06 16:07 ` [PATCH net-next v3 2/4] net: phy: micrel: add HW timestamp configuration reporting Vadim Fedorenko
2026-01-06 16:07 ` [PATCH net-next v3 3/4] net: phy: microchip_rds_ptp: improve HW ts config logic Vadim Fedorenko
2026-01-06 17:58   ` Kory Maincent
2026-01-06 16:07 ` [PATCH net-next v3 4/4] net: phy: microchip_rds_ptp: add HW timestamp configuration reporting Vadim Fedorenko
2026-01-09  4:20 ` [PATCH net-next v3 0/4] support for hwtstamp_get in phy - part 2 patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox