diff options
Diffstat (limited to 'drivers/net/ethernet/intel/ixgbe/ixgbe_main.c')
| -rw-r--r-- | drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 15 | 
1 files changed, 13 insertions, 2 deletions
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index 868af693821..fa3d552e1f4 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c @@ -114,6 +114,7 @@ static DEFINE_PCI_DEVICE_TABLE(ixgbe_pci_tbl) = {  	{PCI_VDEVICE(INTEL, IXGBE_DEV_ID_82599_LS), board_82599 },  	{PCI_VDEVICE(INTEL, IXGBE_DEV_ID_82599EN_SFP), board_82599 },  	{PCI_VDEVICE(INTEL, IXGBE_DEV_ID_82599_SFP_SF_QP), board_82599 }, +	{PCI_VDEVICE(INTEL, IXGBE_DEV_ID_X540T1), board_X540 },  	/* required last entry */  	{0, }  }; @@ -2322,6 +2323,12 @@ static inline void ixgbe_irq_enable(struct ixgbe_adapter *adapter, bool queues,  	default:  		break;  	} + +#ifdef CONFIG_IXGBE_PTP +	if (adapter->hw.mac.type == ixgbe_mac_X540) +		mask |= IXGBE_EIMS_TIMESYNC; +#endif +  	if ((adapter->flags & IXGBE_FLAG_FDIR_HASH_CAPABLE) &&  	    !(adapter->flags2 & IXGBE_FLAG2_FDIR_REQUIRES_REINIT))  		mask |= IXGBE_EIMS_FLOW_DIR; @@ -2385,8 +2392,10 @@ static irqreturn_t ixgbe_msix_other(int irq, void *data)  	}  	ixgbe_check_fan_failure(adapter, eicr); +  #ifdef CONFIG_IXGBE_PTP -	ixgbe_ptp_check_pps_event(adapter, eicr); +	if (unlikely(eicr & IXGBE_EICR_TIMESYNC)) +		ixgbe_ptp_check_pps_event(adapter, eicr);  #endif  	/* re-enable the original interrupt state, no lsc, no queues */ @@ -2580,7 +2589,8 @@ static irqreturn_t ixgbe_intr(int irq, void *data)  	ixgbe_check_fan_failure(adapter, eicr);  #ifdef CONFIG_IXGBE_PTP -	ixgbe_ptp_check_pps_event(adapter, eicr); +	if (unlikely(eicr & IXGBE_EICR_TIMESYNC)) +		ixgbe_ptp_check_pps_event(adapter, eicr);  #endif  	/* would disable interrupts here but EIAM disabled it */ @@ -7045,6 +7055,7 @@ int ixgbe_wol_supported(struct ixgbe_adapter *adapter, u16 device_id,  		is_wol_supported = 1;  		break;  	case IXGBE_DEV_ID_X540T: +	case IXGBE_DEV_ID_X540T1:  		/* check eeprom to see if enabled wol */  		if ((wol_cap == IXGBE_DEVICE_CAPS_WOL_PORT0_1) ||  		    ((wol_cap == IXGBE_DEVICE_CAPS_WOL_PORT0) &&  |