mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
phy: add hwtstamp_get callback to phy drivers
PHY devices had lack of hwtstamp_get callback even though most of them are tracking configuration info. Introduce new call back to mii_timestamper. Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Reviewed-by: Kory Maincent <kory.maincent@bootlin.com> Signed-off-by: Vadim Fedorenko <vadim.fedorenko@linux.dev> Link: https://patch.msgid.link/20251124181151.277256-3-vadim.fedorenko@linux.dev Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
6aac2aa2df
commit
f467777efb
@@ -478,6 +478,9 @@ int __phy_hwtstamp_get(struct phy_device *phydev,
|
||||
if (!phydev)
|
||||
return -ENODEV;
|
||||
|
||||
if (phydev->mii_ts && phydev->mii_ts->hwtstamp_get)
|
||||
return phydev->mii_ts->hwtstamp_get(phydev->mii_ts, config);
|
||||
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
|
||||
@@ -29,6 +29,8 @@ struct phy_device;
|
||||
*
|
||||
* @hwtstamp_set: Handles SIOCSHWTSTAMP ioctl for hardware time stamping.
|
||||
*
|
||||
* @hwtstamp_get: Handles SIOCGHWTSTAMP ioctl for hardware time stamping.
|
||||
*
|
||||
* @link_state: Allows the device to respond to changes in the link
|
||||
* state. The caller invokes this function while holding
|
||||
* the phy_device mutex.
|
||||
@@ -55,6 +57,9 @@ struct mii_timestamper {
|
||||
struct kernel_hwtstamp_config *kernel_config,
|
||||
struct netlink_ext_ack *extack);
|
||||
|
||||
int (*hwtstamp_get)(struct mii_timestamper *mii_ts,
|
||||
struct kernel_hwtstamp_config *kernel_config);
|
||||
|
||||
void (*link_state)(struct mii_timestamper *mii_ts,
|
||||
struct phy_device *phydev);
|
||||
|
||||
|
||||
@@ -249,10 +249,11 @@ int net_hwtstamp_validate(const struct kernel_hwtstamp_config *cfg)
|
||||
*
|
||||
* Helper for calling the default hardware provider timestamping.
|
||||
*
|
||||
* Note: phy_mii_ioctl() only handles SIOCSHWTSTAMP (not SIOCGHWTSTAMP), and
|
||||
* there only exists a phydev->mii_ts->hwtstamp() method. So this will return
|
||||
* -EOPNOTSUPP for phylib for now, which is still more accurate than letting
|
||||
* the netdev handle the GET request.
|
||||
* Note: phy_mii_ioctl() only handles SIOCSHWTSTAMP (not SIOCGHWTSTAMP), but
|
||||
* phydev->mii_ts has both hwtstamp_get() and hwtstamp_set() methods. So this
|
||||
* will return -EOPNOTSUPP for phylib only if hwtstamp_get() is not
|
||||
* implemented for now, which is still more accurate than letting the netdev
|
||||
* handle the GET request.
|
||||
*/
|
||||
int dev_get_hwtstamp_phylib(struct net_device *dev,
|
||||
struct kernel_hwtstamp_config *cfg)
|
||||
|
||||
Reference in New Issue
Block a user