> Commit 7c571ac57d9d ("net: ptp: introduce .supported_extts_flags to > ptp_clock_info") modified the PTP core to validate the supported flags > of external timestamp requests, rather than relying on each driver to > check them. > > stmmac_enable() and dwmac1000_ptp_enable() ignore the flags, and > neither stmmac_ptp_clock_ops nor dwmac1000_ptp_clock_ops was given any > .supported_extts_flags. Since PTP_EXTTS_REQUEST2 always implies > PTP_STRICT_FLAGS, the core now rejects every PTP_EXTTS_REQUEST2 for > this driver with -EOPNOTSUPP, where before that commit the same > requests succeeded. Only the PTP_EXTTS_REQUEST ioctl still works. > > Tests on an NXP i.MX 8M Plus (FRDM-IMX8MPLUS, GMAC 5.10a) show that the > auxiliary snapshot inputs timestamp just the rising edge. The reference > manuals for the STM32MP13 (GMAC 4.20a) and the Cyclone V HPS (GMAC > 3.70a, which uses dwmac1000_ptp_clock_ops) say the same. > > Encode this in .supported_extts_flags. A PTP_EXTTS_REQUEST2 for the > rising edge then succeeds, and one for the falling edge or for both > edges fails with -EOPNOTSUPP. > > Fixes: 7c571ac57d9d ("net: ptp: introduce .supported_extts_flags to ptp_clock_info") > Cc: stable@vger.kernel.org > Signed-off-by: James Clark Reviewed-by: Lorenzo Bianconi > --- > I used an LLM coding assistant to help prepare this patch. > > drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c > index a37405534beb..31a66e855d6b 100644 > --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c > +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c > @@ -277,6 +277,7 @@ const struct ptp_clock_info stmmac_ptp_clock_ops = { > .n_per_out = 0, /* will be overwritten in stmmac_ptp_register */ > .n_pins = 0, > .pps = 0, > + .supported_extts_flags = PTP_RISING_EDGE | PTP_STRICT_FLAGS, > .adjfine = stmmac_adjust_freq, > .adjtime = stmmac_adjust_time, > .gettimex64 = stmmac_get_timex, > @@ -294,6 +295,7 @@ const struct ptp_clock_info dwmac1000_ptp_clock_ops = { > .n_per_out = 0, > .n_pins = 0, > .pps = 0, > + .supported_extts_flags = PTP_RISING_EDGE | PTP_STRICT_FLAGS, > .adjfine = stmmac_adjust_freq, > .adjtime = stmmac_adjust_time, > .gettimex64 = stmmac_get_timex, > -- > 2.56.0 > >