mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07: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;
|
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)
|
static u32 igc_get_priv_flags(struct net_device *netdev)
|
||||||
{
|
{
|
||||||
struct igc_adapter *adapter = netdev_priv(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_indir_size = igc_get_rxfh_indir_size,
|
||||||
.get_rxfh = igc_get_rxfh,
|
.get_rxfh = igc_get_rxfh,
|
||||||
.set_rxfh = igc_set_rxfh,
|
.set_rxfh = igc_set_rxfh,
|
||||||
|
.get_ts_info = igc_get_ts_info,
|
||||||
.get_channels = igc_get_channels,
|
.get_channels = igc_get_channels,
|
||||||
.set_channels = igc_set_channels,
|
.set_channels = igc_set_channels,
|
||||||
.get_priv_flags = igc_get_priv_flags,
|
.get_priv_flags = igc_get_priv_flags,
|
||||||
|
Loading…
Reference in New Issue
Block a user