File tree Expand file tree Collapse file tree 1 file changed +10
-0
lines changed
drivers/net/ethernet/intel/igb Expand file tree Collapse file tree 1 file changed +10
-0
lines changed Original file line number Diff line number Diff line change @@ -6985,10 +6985,20 @@ static void igb_extts(struct igb_adapter *adapter, int tsintr_tt)
69856985
69866986static void igb_tsync_interrupt (struct igb_adapter * adapter )
69876987{
6988+ const u32 mask = (TSINTR_SYS_WRAP | E1000_TSICR_TXTS |
6989+ TSINTR_TT0 | TSINTR_TT1 |
6990+ TSINTR_AUTT0 | TSINTR_AUTT1 );
69886991 struct e1000_hw * hw = & adapter -> hw ;
69896992 u32 tsicr = rd32 (E1000_TSICR );
69906993 struct ptp_clock_event event ;
69916994
6995+ if (hw -> mac .type == e1000_82580 ) {
6996+ /* 82580 has a hardware bug that requires an explicit
6997+ * write to clear the TimeSync interrupt cause.
6998+ */
6999+ wr32 (E1000_TSICR , tsicr & mask );
7000+ }
7001+
69927002 if (tsicr & TSINTR_SYS_WRAP ) {
69937003 event .type = PTP_CLOCK_PPS ;
69947004 if (adapter -> ptp_caps .pps )
You can’t perform that action at this time.
0 commit comments