]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net: phy: micrel: add HW timestamp configuration reporting
authorVadim Fedorenko <vadim.fedorenko@linux.dev>
Tue, 6 Jan 2026 16:07:21 +0000 (16:07 +0000)
committerJakub Kicinski <kuba@kernel.org>
Fri, 9 Jan 2026 02:13:11 +0000 (18:13 -0800)
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>
Link: https://patch.msgid.link/20260106160723.3925872-3-vadim.fedorenko@linux.dev
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/phy/micrel.c

index c0aea74a559fab474ce5fb92dba2393dfefd03f2..225d4adf28be416d2cf3378b08cf0a99ef6c50b5 100644 (file)
@@ -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;