Subject: Re: [PATCH iwl-next v3] i40e: PTP: set supported flags in ptp_clock_info

From: Simon Horman <[email-masked]>
Date: Mon, 16 Mar 2026 08:28:17 +0000

On Fri, Mar 13, 2026 at 02:54:10PM +0100, Przemyslaw Korba wrote:
> Since upstream commit d9f3e9ecc456 ("net: ptp: introduce
> .supported_perout_flags to ptp_clock_info") and commit 7c571ac57d9d ("net:
> ptp: introduce .supported_extts_flags to ptp_clock_info"), kernel core now
> requires that the driver set the .supported_perout_flags and
> .supported_extts_flags fields in PTP clock info. Otherwise, the additional
> flags will be rejected by the kernel automatically.
> 
> Set supported flags field so we can set extts pins.
> 
> Fixes: d9f3e9ecc456 ("net: ptp: introduce .supported_perout_flags to ptp_clock_info")
> Signed-off-by: Przemyslaw Korba <[email-masked]>

I don't think it is particularly important, but the AI generated review
points out that citing the following commit may be more appropriate,
as this patch deals with extts_flags rather than perout_flags.

7c571ac57d9d ("net: ptp: introduce .supported_extts_flags to ptp_clock_info")

Also, as this is for iwl-next I do wonder if there should be a fixes tag
at all. I do see that Paul asked for one in v1. But is this fixing a bug?
And if so, should it be targeted at iwl-net?

> ---
> v3:
> - remove unnecessary flag checks for newer kernels and update commit
> message

Thanks for the update.

> v2:
> - add fixes tag
> - remove old TODO comment
> v1: https://lore.kernel.org/intel-wired-lan/[email-masked]/

FTR, the AI generated review also notes that the TODO covers both EXTTS and
PEROUT, while the patch only deals with the later. But I agree with Dawid's
review of v1. And that it is best to remove the TODO entirely.

> 
>  drivers/net/ethernet/intel/i40e/i40e_ptp.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/ethernet/intel/i40e/i40e_ptp.c b/drivers/net/ethernet/intel/i40e/i40e_ptp.c
> index 7bcea7d9720f..e7c4f871beec 100644
> --- a/drivers/net/ethernet/intel/i40e/i40e_ptp.c
> +++ b/drivers/net/ethernet/intel/i40e/i40e_ptp.c
> @@ -598,7 +598,6 @@ static int i40e_ptp_feature_enable(struct ptp_clock_info *ptp,
>  	enum ptp_pin_function func;
>  	unsigned int chan;
>  
> -	/* TODO: Implement flags handling for EXTTS and PEROUT */
>  	switch (rq->type) {
>  	case PTP_CLK_REQ_EXTTS:
>  		func = PTP_PF_EXTTS;
> @@ -1340,7 +1339,9 @@ static int i40e_init_pin_config(struct i40e_pf *pf)
>  	pf->ptp_caps.n_ext_ts = 2;
>  	pf->ptp_caps.pps = 1;
>  	pf->ptp_caps.n_per_out = 2;
> -
> +	pf->ptp_caps.supported_extts_flags = PTP_RISING_EDGE |
> +					     PTP_FALLING_EDGE |
> +					     PTP_STRICT_FLAGS;
>  	pf->ptp_caps.pin_config = kzalloc_objs(*pf->ptp_caps.pin_config,
>  					       pf->ptp_caps.n_pins);
>  	if (!pf->ptp_caps.pin_config)
> 
> base-commit: d5fbc991435eac7a1ead7cd2ddb5a743528718bb
> -- 
> 2.43.0
>