mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-26 05:34:13 +08:00
igc: Add support for ethtool GET_TS_INFO command
This command allows igc to report what types of timestamping are supported. ptp4l uses this to detect if the hardware supports timestamping. Signed-off-by: Vinicius Costa Gomes <vinicius.gomes@intel.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
2c344ae245
commit
60dbede0c4
@ -1600,6 +1600,39 @@ static int igc_set_channels(struct net_device *netdev,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int igc_get_ts_info(struct net_device *dev,
|
||||
struct ethtool_ts_info *info)
|
||||
{
|
||||
struct igc_adapter *adapter = netdev_priv(dev);
|
||||
|
||||
if (adapter->ptp_clock)
|
||||
info->phc_index = ptp_clock_index(adapter->ptp_clock);
|
||||
else
|
||||
info->phc_index = -1;
|
||||
|
||||
switch (adapter->hw.mac.type) {
|
||||
case igc_i225:
|
||||
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;
|
||||
|
||||
info->tx_types =
|
||||
BIT(HWTSTAMP_TX_OFF) |
|
||||
BIT(HWTSTAMP_TX_ON);
|
||||
|
||||
info->rx_filters = BIT(HWTSTAMP_FILTER_NONE);
|
||||
info->rx_filters |= BIT(HWTSTAMP_FILTER_ALL);
|
||||
|
||||
return 0;
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
}
|
||||
|
||||
static u32 igc_get_priv_flags(struct net_device *netdev)
|
||||
{
|
||||
struct igc_adapter *adapter = netdev_priv(netdev);
|
||||
@ -1847,6 +1880,7 @@ static const struct ethtool_ops igc_ethtool_ops = {
|
||||
.get_rxfh_indir_size = igc_get_rxfh_indir_size,
|
||||
.get_rxfh = igc_get_rxfh,
|
||||
.set_rxfh = igc_set_rxfh,
|
||||
.get_ts_info = igc_get_ts_info,
|
||||
.get_channels = igc_get_channels,
|
||||
.set_channels = igc_set_channels,
|
||||
.get_priv_flags = igc_get_priv_flags,
|
||||
|
Loading…
Reference in New Issue
Block a user