提交 4e8cff64 编写于 作者: B Ben Hutchings

e1000e: Implement the SIOCGHWTSTAMP ioctl

Compile-tested only.
Signed-off-by: NBen Hutchings <bhutchings@solarflare.com>
上级 ca0c88c2
...@@ -5790,7 +5790,7 @@ static int e1000_mii_ioctl(struct net_device *netdev, struct ifreq *ifr, ...@@ -5790,7 +5790,7 @@ static int e1000_mii_ioctl(struct net_device *netdev, struct ifreq *ifr,
* specified. Matching the kind of event packet is not supported, with the * specified. Matching the kind of event packet is not supported, with the
* exception of "all V2 events regardless of level 2 or 4". * exception of "all V2 events regardless of level 2 or 4".
**/ **/
static int e1000e_hwtstamp_ioctl(struct net_device *netdev, struct ifreq *ifr) static int e1000e_hwtstamp_set(struct net_device *netdev, struct ifreq *ifr)
{ {
struct e1000_adapter *adapter = netdev_priv(netdev); struct e1000_adapter *adapter = netdev_priv(netdev);
struct hwtstamp_config config; struct hwtstamp_config config;
...@@ -5825,6 +5825,14 @@ static int e1000e_hwtstamp_ioctl(struct net_device *netdev, struct ifreq *ifr) ...@@ -5825,6 +5825,14 @@ static int e1000e_hwtstamp_ioctl(struct net_device *netdev, struct ifreq *ifr)
sizeof(config)) ? -EFAULT : 0; sizeof(config)) ? -EFAULT : 0;
} }
static int e1000e_hwtstamp_get(struct net_device *netdev, struct ifreq *ifr)
{
struct e1000_adapter *adapter = netdev_priv(netdev);
return copy_to_user(ifr->ifr_data, &adapter->hwtstamp_config,
sizeof(adapter->hwtstamp_config)) ? -EFAULT : 0;
}
static int e1000_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd) static int e1000_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd)
{ {
switch (cmd) { switch (cmd) {
...@@ -5833,7 +5841,9 @@ static int e1000_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd) ...@@ -5833,7 +5841,9 @@ static int e1000_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd)
case SIOCSMIIREG: case SIOCSMIIREG:
return e1000_mii_ioctl(netdev, ifr, cmd); return e1000_mii_ioctl(netdev, ifr, cmd);
case SIOCSHWTSTAMP: case SIOCSHWTSTAMP:
return e1000e_hwtstamp_ioctl(netdev, ifr); return e1000e_hwtstamp_set(netdev, ifr);
case SIOCGHWTSTAMP:
return e1000e_hwtstamp_get(netdev, ifr);
default: default:
return -EOPNOTSUPP; return -EOPNOTSUPP;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册