diff options
Diffstat (limited to 'drivers/net/ethernet/intel/igc/igc_ptp.c')
| -rw-r--r-- | drivers/net/ethernet/intel/igc/igc_ptp.c | 19 | 
1 files changed, 14 insertions, 5 deletions
| diff --git a/drivers/net/ethernet/intel/igc/igc_ptp.c b/drivers/net/ethernet/intel/igc/igc_ptp.c index 30568e3544cd..0d6e3215e98f 100644 --- a/drivers/net/ethernet/intel/igc/igc_ptp.c +++ b/drivers/net/ethernet/intel/igc/igc_ptp.c @@ -560,10 +560,6 @@ static void igc_ptp_enable_tx_timestamp(struct igc_adapter *adapter)  static int igc_ptp_set_timestamp_mode(struct igc_adapter *adapter,  				      struct hwtstamp_config *config)  { -	/* reserved for future extensions */ -	if (config->flags) -		return -EINVAL; -  	switch (config->tx_type) {  	case HWTSTAMP_TX_OFF:  		igc_ptp_disable_tx_timestamp(adapter); @@ -768,7 +764,20 @@ int igc_ptp_get_ts_config(struct net_device *netdev, struct ifreq *ifr)   */  static bool igc_is_crosststamp_supported(struct igc_adapter *adapter)  { -	return IS_ENABLED(CONFIG_X86_TSC) ? pcie_ptm_enabled(adapter->pdev) : false; +	if (!IS_ENABLED(CONFIG_X86_TSC)) +		return false; + +	/* FIXME: it was noticed that enabling support for PCIe PTM in +	 * some i225-V models could cause lockups when bringing the +	 * interface up/down. There should be no downsides to +	 * disabling crosstimestamping support for i225-V, as it +	 * doesn't have any PTP support. That way we gain some time +	 * while root causing the issue. +	 */ +	if (adapter->pdev->device == IGC_DEV_ID_I225_V) +		return false; + +	return pcie_ptm_enabled(adapter->pdev);  }  static struct system_counterval_t igc_device_tstamp_to_system(u64 tstamp) |