net: fec: report correct hardware stamping info to ethtool
Report correct hardware stamping capability by ethtool interface. The v1.0 ptp4l check it. Signed-off-by: Frank Li <Frank.Li@freescale.com> Acked-by: Sascha Hauer <s.hauer@pengutronix.de> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
d0e2c55e7c
commit
5ebae48971
|
@ -1174,12 +1174,41 @@ static void fec_enet_get_drvinfo(struct net_device *ndev,
|
||||||
strlcpy(info->bus_info, dev_name(&ndev->dev), sizeof(info->bus_info));
|
strlcpy(info->bus_info, dev_name(&ndev->dev), sizeof(info->bus_info));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int fec_enet_get_ts_info(struct net_device *ndev,
|
||||||
|
struct ethtool_ts_info *info)
|
||||||
|
{
|
||||||
|
struct fec_enet_private *fep = netdev_priv(ndev);
|
||||||
|
|
||||||
|
if (fep->bufdesc_ex) {
|
||||||
|
|
||||||
|
info->so_timestamping = SOF_TIMESTAMPING_TX_SOFTWARE |
|
||||||
|
SOF_TIMESTAMPING_RX_SOFTWARE |
|
||||||
|
SOF_TIMESTAMPING_SOFTWARE |
|
||||||
|
SOF_TIMESTAMPING_TX_HARDWARE |
|
||||||
|
SOF_TIMESTAMPING_RX_HARDWARE |
|
||||||
|
SOF_TIMESTAMPING_RAW_HARDWARE;
|
||||||
|
if (fep->ptp_clock)
|
||||||
|
info->phc_index = ptp_clock_index(fep->ptp_clock);
|
||||||
|
else
|
||||||
|
info->phc_index = -1;
|
||||||
|
|
||||||
|
info->tx_types = (1 << HWTSTAMP_TX_OFF) |
|
||||||
|
(1 << HWTSTAMP_TX_ON);
|
||||||
|
|
||||||
|
info->rx_filters = (1 << HWTSTAMP_FILTER_NONE) |
|
||||||
|
(1 << HWTSTAMP_FILTER_ALL);
|
||||||
|
return 0;
|
||||||
|
} else {
|
||||||
|
return ethtool_op_get_ts_info(ndev, info);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static const struct ethtool_ops fec_enet_ethtool_ops = {
|
static const struct ethtool_ops fec_enet_ethtool_ops = {
|
||||||
.get_settings = fec_enet_get_settings,
|
.get_settings = fec_enet_get_settings,
|
||||||
.set_settings = fec_enet_set_settings,
|
.set_settings = fec_enet_set_settings,
|
||||||
.get_drvinfo = fec_enet_get_drvinfo,
|
.get_drvinfo = fec_enet_get_drvinfo,
|
||||||
.get_link = ethtool_op_get_link,
|
.get_link = ethtool_op_get_link,
|
||||||
.get_ts_info = ethtool_op_get_ts_info,
|
.get_ts_info = fec_enet_get_ts_info,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int fec_enet_ioctl(struct net_device *ndev, struct ifreq *rq, int cmd)
|
static int fec_enet_ioctl(struct net_device *ndev, struct ifreq *rq, int cmd)
|
||||||
|
|
Loading…
Reference in New Issue