All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nathan Chancellor <nathan@kernel.org>
To: Yao Zi <ziyao@disroot.org>
Cc: Miri Korenblit <miriam.rachel.korenblit@intel.com>,
	Richard Cochran <richardcochran@gmail.com>,
	Johannes Berg <johannes.berg@intel.com>,
	Anjaneyulu <pagadala.yesu.anjaneyulu@intel.com>,
	Daniel Gabay <daniel.gabay@intel.com>,
	linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org,
	netdev@vger.kernel.org, Mingcong Bai <jeffbai@aosc.io>,
	Kexy Biscuit <kexybiscuit@aosc.io>
Subject: Re: [PATCH iwlwifi-fixes] wifi: iwlwifi: Implement settime64 as stub for MVM/MLD PTP
Date: Fri, 5 Dec 2025 15:26:15 -0700	[thread overview]
Message-ID: <20251205222615.GA3738427@ax162> (raw)
In-Reply-To: <20251204123204.9316-1-ziyao@disroot.org>

On Thu, Dec 04, 2025 at 12:32:04PM +0000, Yao Zi wrote:
> Since commit dfb073d32cac ("ptp: Return -EINVAL on ptp_clock_register if
> required ops are NULL"), PTP clock registered through ptp_clock_register
> is required to have ptp_clock_info.settime64 set, however, neither MVM
> nor MLD's PTP clock implementation sets it, resulting in warnings when
> the interface starts up, like
> 
> WARNING: drivers/ptp/ptp_clock.c:325 at ptp_clock_register+0x2c8/0x6b8, CPU#1: wpa_supplicant/469
> CPU: 1 UID: 0 PID: 469 Comm: wpa_supplicant Not tainted 6.18.0+ #101 PREEMPT(full)
> ra: ffff800002732cd4 iwl_mvm_ptp_init+0x114/0x188 [iwlmvm]
> ERA: 9000000002fdc468 ptp_clock_register+0x2c8/0x6b8
> iwlwifi 0000:01:00.0: Failed to register PHC clock (-22)
> 
> I don't find an appropriate firmware interface to implement settime64()
> for iwlwifi MLD/MVM, thus instead create a stub that returns
> -EOPTNOTSUPP only, suppressing the warning and allowing the PTP clock to
> be registered.
> 
> Reported-by: Nathan Chancellor <nathan@kernel.org>
> Closes: https://lore.kernel.org/all/20251108044822.GA3262936@ax162/
> Signed-off-by: Yao Zi <ziyao@disroot.org>
> ---

Thanks, I can confirm this clears up the warning.

Tested-by: Nathan Chancellor <nathan@kernel.org>

>  drivers/net/wireless/intel/iwlwifi/mld/ptp.c | 7 +++++++
>  drivers/net/wireless/intel/iwlwifi/mvm/ptp.c | 7 +++++++
>  2 files changed, 14 insertions(+)
> 
> diff --git a/drivers/net/wireless/intel/iwlwifi/mld/ptp.c b/drivers/net/wireless/intel/iwlwifi/mld/ptp.c
> index ffeb37a7f830..231920425c06 100644
> --- a/drivers/net/wireless/intel/iwlwifi/mld/ptp.c
> +++ b/drivers/net/wireless/intel/iwlwifi/mld/ptp.c
> @@ -121,6 +121,12 @@ static int iwl_mld_ptp_gettime(struct ptp_clock_info *ptp,
>  	return 0;
>  }
>  
> +static int iwl_mld_ptp_settime(struct ptp_clock_info *ptp,
> +			       const struct timespec64 *ts)
> +{
> +	return -EOPNOTSUPP;
> +}
> +
>  static int iwl_mld_ptp_adjtime(struct ptp_clock_info *ptp, s64 delta)
>  {
>  	struct iwl_mld *mld = container_of(ptp, struct iwl_mld,
> @@ -279,6 +285,7 @@ void iwl_mld_ptp_init(struct iwl_mld *mld)
>  
>  	mld->ptp_data.ptp_clock_info.owner = THIS_MODULE;
>  	mld->ptp_data.ptp_clock_info.gettime64 = iwl_mld_ptp_gettime;
> +	mld->ptp_data.ptp_clock_info.settime64 = iwl_mld_ptp_settime;
>  	mld->ptp_data.ptp_clock_info.max_adj = 0x7fffffff;
>  	mld->ptp_data.ptp_clock_info.adjtime = iwl_mld_ptp_adjtime;
>  	mld->ptp_data.ptp_clock_info.adjfine = iwl_mld_ptp_adjfine;
> diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/ptp.c b/drivers/net/wireless/intel/iwlwifi/mvm/ptp.c
> index 06a4c9f74797..ad156b82eaa9 100644
> --- a/drivers/net/wireless/intel/iwlwifi/mvm/ptp.c
> +++ b/drivers/net/wireless/intel/iwlwifi/mvm/ptp.c
> @@ -220,6 +220,12 @@ static int iwl_mvm_ptp_gettime(struct ptp_clock_info *ptp,
>  	return 0;
>  }
>  
> +static int iwl_mvm_ptp_settime(struct ptp_clock_info *ptp,
> +			       const struct timespec64 *ts)
> +{
> +	return -EOPNOTSUPP;
> +}
> +
>  static int iwl_mvm_ptp_adjtime(struct ptp_clock_info *ptp, s64 delta)
>  {
>  	struct iwl_mvm *mvm = container_of(ptp, struct iwl_mvm,
> @@ -281,6 +287,7 @@ void iwl_mvm_ptp_init(struct iwl_mvm *mvm)
>  	mvm->ptp_data.ptp_clock_info.adjfine = iwl_mvm_ptp_adjfine;
>  	mvm->ptp_data.ptp_clock_info.adjtime = iwl_mvm_ptp_adjtime;
>  	mvm->ptp_data.ptp_clock_info.gettime64 = iwl_mvm_ptp_gettime;
> +	mvm->ptp_data.ptp_clock_info.settime64 = iwl_mvm_ptp_settime;
>  	mvm->ptp_data.scaled_freq = SCALE_FACTOR;
>  
>  	/* Give a short 'friendly name' to identify the PHC clock */
> -- 
> 2.51.2
> 

  reply	other threads:[~2025-12-05 22:26 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-04 12:32 [PATCH iwlwifi-fixes] wifi: iwlwifi: Implement settime64 as stub for MVM/MLD PTP Yao Zi
2025-12-05 22:26 ` Nathan Chancellor [this message]
2025-12-06 15:01 ` Simon Horman
2025-12-07 17:58 ` Genes Lists
2025-12-08 11:23 ` Damian Tometzki
2025-12-13  8:41 ` Oliver Hartkopp
2025-12-13 21:19 ` Korenblit, Miriam Rachel
2025-12-14 10:12 ` David Wang
2025-12-15  3:42   ` Yao Zi
2025-12-15  4:20     ` David Wang
2025-12-15 17:41       ` Yao Zi
2025-12-22 10:43 ` Paolo Abeni

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20251205222615.GA3738427@ax162 \
    --to=nathan@kernel.org \
    --cc=daniel.gabay@intel.com \
    --cc=jeffbai@aosc.io \
    --cc=johannes.berg@intel.com \
    --cc=kexybiscuit@aosc.io \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=miriam.rachel.korenblit@intel.com \
    --cc=netdev@vger.kernel.org \
    --cc=pagadala.yesu.anjaneyulu@intel.com \
    --cc=richardcochran@gmail.com \
    --cc=ziyao@disroot.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.