|
@@ -591,6 +591,7 @@ static int igb_ptp_feature_enable_i210(struct ptp_clock_info *ptp,
|
|
tsim |= TSINTR_SYS_WRAP;
|
|
tsim |= TSINTR_SYS_WRAP;
|
|
else
|
|
else
|
|
tsim &= ~TSINTR_SYS_WRAP;
|
|
tsim &= ~TSINTR_SYS_WRAP;
|
|
|
|
+ igb->pps_sys_wrap_on = !!on;
|
|
wr32(E1000_TSIM, tsim);
|
|
wr32(E1000_TSIM, tsim);
|
|
spin_unlock_irqrestore(&igb->tmreg_lock, flags);
|
|
spin_unlock_irqrestore(&igb->tmreg_lock, flags);
|
|
return 0;
|
|
return 0;
|
|
@@ -1235,7 +1236,9 @@ void igb_ptp_reset(struct igb_adapter *adapter)
|
|
case e1000_i211:
|
|
case e1000_i211:
|
|
wr32(E1000_TSAUXC, 0x0);
|
|
wr32(E1000_TSAUXC, 0x0);
|
|
wr32(E1000_TSSDP, 0x0);
|
|
wr32(E1000_TSSDP, 0x0);
|
|
- wr32(E1000_TSIM, TSYNC_INTERRUPTS);
|
|
|
|
|
|
+ wr32(E1000_TSIM,
|
|
|
|
+ TSYNC_INTERRUPTS |
|
|
|
|
+ (adapter->pps_sys_wrap_on ? TSINTR_SYS_WRAP : 0));
|
|
wr32(E1000_IMS, E1000_IMS_TS);
|
|
wr32(E1000_IMS, E1000_IMS_TS);
|
|
break;
|
|
break;
|
|
default:
|
|
default:
|