Matt,

In igb_main.c you have ISR code like:

        if (icr & E1000_ICR_TS) {
                u32 tsicr = rd32(E1000_TSICR);

                if (tsicr & E1000_TSICR_TXTS) {
                        /* acknowledge the interrupt */
                        wr32(E1000_TSICR, E1000_TSICR_TXTS);
                        /* retrieve hardware timestamp */
                        schedule_work(&adapter->ptp_tx_work);
                }
        }

In the datasheet for the 82580 and the i210, for TSICR it says,

   Note: Once ICR.Time_Sync is set, the internal value of this
         register should be cleared by writing 1b to all bits
         or cleared by a read to enable receiving an additional
         ^^^^^^^^^^^^^^^^^^^^
         ICR.Time_Sync interrupt.

and that implies that your write to acknowledge the interrupt is
superfluous, since you already read the TSICR.

Is this an error in the datasheets, or is the code doing extra,
unneeded work?

Thanks,
Richard




------------------------------------------------------------------------------
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service 
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, & servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may
_______________________________________________
E1000-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel® Ethernet, visit 
http://communities.intel.com/community/wired

Reply via email to