RE: [Intel-wired-lan] [PATCH iwl-net] ice: fix PTP timestamping broken by SyncE code on E825C
From: Mekala, SunithaX D
Date: Fri Apr 03 2026 - 17:28:41 EST
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@xxxxxxxxxx> On Behalf Of Petr Oros
> Sent: Friday, March 27, 2026 12:47 AM
> To: netdev@xxxxxxxxxxxxxxx
> Cc: Vecera, Ivan <ivecera@xxxxxxxxxx>; Kitszel, Przemyslaw <przemyslaw.kitszel@xxxxxxxxx>; Richard Cochran <richardcochran@xxxxxxxxx>; Eric Dumazet <edumazet@xxxxxxxxxx>; > stable@xxxxxxxxxxxxxxx; Kubalewski, Arkadiusz <arkadiusz.kubalewski@xxxxxxxxx>; Loktionov, Aleksandr <aleksandr.loktionov@xxxxxxxxx>; Andrew Lunn <andrew+netdev@xxxxxxx>; Nguyen, Anthony L <anthony.l.nguyen@xxxxxxxxx>; intel-wired-lan@xxxxxxxxxxxxxxxx; Jakub Kicinski <kuba@xxxxxxxxxx>; Paolo Abeni <pabeni@xxxxxxxxxx>; David S. Miller <davem@xxxxxxxxxxxxx>; linux-kernel@xxxxxxxxxxxxxxx
> Subject: [Intel-wired-lan] [PATCH iwl-net] ice: fix PTP timestamping broken by SyncE code on E825C
>
> The E825C SyncE support added in commit ad1df4f2d591 ("ice: dpll:
> Support E825-C SyncE and dynamic pin discovery") introduced a SyncE
> reconfiguration block in ice_ptp_link_change() that prevents
> ice_ptp_port_phy_restart() from being called in several error paths.
> Without the PHY restart, PTP timestamps stop working after any link
> change event.
>
> There are three ways the PHY restart gets blocked:
>
> 1. When DPLL initialization fails (e.g. missing ACPI firmware node
> properties), ICE_FLAG_DPLL is not set and the function returns early
> before reaching the PHY restart.
>
> 2. When ice_tspll_bypass_mux_active_e825c() fails to read the CGU
> register, WARN_ON_ONCE fires and the function returns early.
>
>3. When ice_tspll_cfg_synce_ethdiv_e825c() fails to configure the
> clock divider for an active pin, same early return.
>
>SyncE and PTP are independent features. SyncE reconfiguration failures
>must not prevent the PTP PHY restart that is essential for timestamp
>recovery after link changes.
>
>Fix by making the entire SyncE block conditional on ICE_FLAG_DPLL
>without an early return, and replacing the WARN_ON_ONCE + return error
>handling inside the loop with dev_err_once + break. The function always
>proceeds to ice_ptp_port_phy_restart() regardless of SyncE errors.
>
>Fixes: ad1df4f2d591 ("ice: dpll: Support E825-C SyncE and dynamic pin discovery")
>Signed-off-by: Petr Oros <poros@xxxxxxxxxx>
>---
> drivers/net/ethernet/intel/ice/ice_ptp.c | 22 ++++++++++++----------
> 1 file changed, 12 insertions(+), 10 deletions(-)
>
Tested-by: Sunitha Mekala <sunithax.d.mekala@xxxxxxxxx> (A Contingent worker at Intel)