diff options
Diffstat (limited to 'drivers/net/ethernet/intel/igc/igc_tsn.c')
| -rw-r--r-- | drivers/net/ethernet/intel/igc/igc_tsn.c | 30 | 
1 files changed, 30 insertions, 0 deletions
| diff --git a/drivers/net/ethernet/intel/igc/igc_tsn.c b/drivers/net/ethernet/intel/igc/igc_tsn.c index 0fce22de2ab8..f975ed807da1 100644 --- a/drivers/net/ethernet/intel/igc/igc_tsn.c +++ b/drivers/net/ethernet/intel/igc/igc_tsn.c @@ -48,6 +48,35 @@ static unsigned int igc_tsn_new_flags(struct igc_adapter *adapter)  	return new_flags;  } +void igc_tsn_adjust_txtime_offset(struct igc_adapter *adapter) +{ +	struct igc_hw *hw = &adapter->hw; +	u16 txoffset; + +	if (!is_any_launchtime(adapter)) +		return; + +	switch (adapter->link_speed) { +	case SPEED_10: +		txoffset = IGC_TXOFFSET_SPEED_10; +		break; +	case SPEED_100: +		txoffset = IGC_TXOFFSET_SPEED_100; +		break; +	case SPEED_1000: +		txoffset = IGC_TXOFFSET_SPEED_1000; +		break; +	case SPEED_2500: +		txoffset = IGC_TXOFFSET_SPEED_2500; +		break; +	default: +		txoffset = 0; +		break; +	} + +	wr32(IGC_GTXOFFSET, txoffset); +} +  /* Returns the TSN specific registers to their default values after   * the adapter is reset.   */ @@ -57,6 +86,7 @@ static int igc_tsn_disable_offload(struct igc_adapter *adapter)  	u32 tqavctrl;  	int i; +	wr32(IGC_GTXOFFSET, 0);  	wr32(IGC_TXPBS, I225_TXPBSIZE_DEFAULT);  	wr32(IGC_DTXMXPKTSZ, IGC_DTXMXPKTSZ_DEFAULT); |