Message ID | 1503909582.2455.2.camel@spectralink.com |
---|---|
State | RFC, archived |
Delegated to: | David Miller |
Headers | show |
Series | PTP: PHY timestamping when MAC is PTP capable | expand |
On Mon, Aug 28, 2017 at 08:39:44AM +0000, Sørensen, Stefan wrote: > I have run into a problem with packet timestamping on a platform (cpsw > + dp83640) where both the PHY and the MAC is PTP capable and I need > the PHY to perform the timestamping. In the current code, > SIOCGHWTSTAMP is passed to the MAC driver and only if it does not > support PTP itself will it pass it on to the PHY driver. > > I see two ways to fix this: Just disable CONFIG_CPTS and patch cpsw.c to pass SIOC[GS]HWTSTAMP. I don't see any reasonable way to make this sort of thing configurable at run time. Thanks, Richard
diff --git a/net/core/dev_ioctl.c b/net/core/dev_ioctl.c index 709a4e6fb447..52f4d2dfad11 100644 --- a/net/core/dev_ioctl.c +++ b/net/core/dev_ioctl.c @@ -4,6 +4,7 @@ #include <linux/rtnetlink.h> #include <linux/net_tstamp.h> #include <linux/wireless.h> +#include <linux/phy.h> #include <net/wext.h> /* @@ -316,6 +317,14 @@ static int dev_ifsioc(struct net *net, struct ifreq *ifr, unsigned int cmd) return err; /* fall through */ + case SIOCGHWTSTAMP: + if (dev->phydev) { + err = phy_mii_ioctl(dev->phydev, ifr, cmd); + if (err != -EOPNOTSUPP) + return err; + } + /* fall through */ + /* * Unknown or private ioctl