[Linux-stm32] [PATCH net-next 00/11] net: stmmac: timestamping/ptp cleanups

Gatien CHEVALLIER gatien.chevallier at foss.st.com
Wed Sep 10 08:10:48 PDT 2025



On 9/9/25 18:47, Russell King (Oracle) wrote:
> Hi,
> 
> This series cleans up the hardware timestamping / PTP initialisation
> and cleanup code in the stmmac driver. Several key points in no
> particular order:
> 
> 1. Golden rule: unregister first, then release resources.
>     stmmac_release_ptp didn't do this.
> 
> 2. Avoid leaking resources - __stmmac_open() failure leaves the
>     timestamping support initialised, but stops its clock. Also
>     violates (1).
> 
> 3. Avoid double-release of resources - stmmac_open() followed by
>     stmmac_xdp_open() failing results in the PTP clock prepare and
>     enable counts being released, and if the interface is then
>     brought down, they are incorrectly released again. As XDP
>     doesn't gain any additional prepare/enables on the PTP clock,
>     remove this incorrect cleanup.
> 
> 4. Changing the MTU of the interface is disruptive to PTP, and
>     remains so as long as. This is not fixed by this series (too
>     invasive at the moment.)
> 
> 5. Avoid exporting functions that aren't used...
> 
> 6. Avoid unnecessary runtime PM state manipulations (no point
>     manipulating this when MTU changes).
> 
> 7. Make the PTP/timestamping initialisation more readable - no
>     point calling functions in the same file from one callsite
>     that return error codes from one location in the called function,
>     to only have the sole callee print messages depending on that
>     return code. Also simplifying the mess in stmmac_hw_setup().
>     Also placing support checks in a better location. Also getting
>     rid of the "ptp_register" boolean through this restructuring.
> 
> Not tested beyond compile testing. (I don't have my Jetson Xavier NX
> platform.) So anyone testing this and providing feedback would be
> most welcome.
> 
> On that point... I hardly (never?) seem to get testing feedback from
> anyone when touching stmmac. I suspect that's because of the structure
> of the driver, where MAINTAINERS only lists people for their appropriate
> dwmac-* files. Thus they don't get Cc'd for core stmmac changes. Not
> sure what the solution is, but manually picking out all the entries
> in MAINTAINERS every time doesn't scale.
> 
> Therefore, I suggest merging this into net-next so people get to test
> it by way of it being in a tree they might be using.
> 
>   drivers/net/ethernet/stmicro/stmmac/stmmac.h      |   1 -
>   drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 113 ++++++++++++----------
>   drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c  |  10 +-
>   3 files changed, 67 insertions(+), 57 deletions(-)
> 

Tried on the stm32mp135f-dk board and was able to run ptp4l with
coherent timestamps, so:

Tested-by: Gatien Chevallier <gatien.chevallier at foss.st.com>



More information about the linux-arm-kernel mailing list