Hi,
On 9/2/26 15:14, Zxyan Zhu wrote:
DWXGMAC2 uses XGMAC_TIMESTAMP_STATUS at offset 0xd20, while the
generic stmmac PTP handler reads the dwmac4 offset GMAC_TIMESTAMP_STATUS
(0xb20). Before this change, the DWXGMAC2 and DWXLGMAC2 hwif entries
used &stmmac_ptp, whose timestamp_interrupt callback read the wrong
register and whose config_hw_tstamping callback never enabled the
XGMAC timestamp interrupt (XGMAC_TSIE was not in XGMAC_INT_DEFAULT_EN).
As a result, auxiliary snapshot events were never reported on XGMAC
platforms.
Add a dedicated DWXGMAC2 timestamp interrupt handler that:
- reads XGMAC_TIMESTAMP_STATUS before checking
STMMAC_FLAG_EXT_SNAPSHOT_EN, so that the timestamp interrupt status is
cleared even when auxiliary snapshots are disabled
- derives the pending auxiliary snapshot count from the persistent
ATSNS field instead of the transient AUXTSTRIG status bit
- generates the corresponding PTP_CLOCK_EXTTS events
Also enable XGMAC_TSIE in XGMAC_INT_DEFAULT_EN and hook the new
handler into the DWXGMAC2 and DWXLGMAC2 hwif entries.
Signed-off-by: Zxyan Zhu <redacted>
Reviewed-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Maxime