devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ali Rouhi <arouhi@sitime.com>
To: "netdev@vger.kernel.org" <netdev@vger.kernel.org>
Cc: Ali Rouhi <arouhi@sitime.com>,
	"jiri@resnulli.us" <jiri@resnulli.us>,
	"vadim.fedorenko@linux.dev" <vadim.fedorenko@linux.dev>,
	"arkadiusz.kubalewski@intel.com" <arkadiusz.kubalewski@intel.com>,
	"ivecera@redhat.com" <ivecera@redhat.com>,
	"robh@kernel.org" <robh@kernel.org>,
	"krzk+dt@kernel.org" <krzk+dt@kernel.org>,
	"conor+dt@kernel.org" <conor+dt@kernel.org>,
	"cjubran@nvidia.com" <cjubran@nvidia.com>,
	"pabeni@redhat.com" <pabeni@redhat.com>,
	"Oleg.Zadorozhnyi@devoxsoftware.com"
	<Oleg.Zadorozhnyi@devoxsoftware.com>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH net-next v8 10/15] dpll: sit9531x: add support to adjust output phase
Date: Mon, 14 Sep 2026 23:00:38 +0000	[thread overview]
Message-ID: <20260914230034.63861-9-arouhi@sitime.com> (raw)
In-Reply-To: <178887152267.219967.2296326775875022935@kernel.org>

Replies inline.

> Could the commit message mention the NVM shadow write, the sibling-output
> phase restart, and the ~100 ms cost per call?

Yes -- the v9 changelog describes all three.  The PLL-wide
divider restart is the chip's only phase-apply mechanism; a per-output flush
does not exist in this hardware.

> Should this bail out apply to every request?  [zero cached freq rejects
> everything]

Fixed in v9: when the cache is empty the setter seeds the rate from
the divider chain (the same readback frequency_get uses), so boards whose DT
lists no output frequencies can still adjust phase; the request is only
rejected when the rate cannot be determined at all.

> Should the positive branch also reduce modulo the output period?

Yes -- fixed in v9: both branches reduce modulo the output period, so
a positive request larger than one period no longer programs millions of VCO
cycles of reset delay.

> nothing recomputes it when the frequency changes later.

Fixed in v9: a frequency change re-encodes the cached phase adjust
against the new period, so the programmed delay and the reported value stay
consistent across rate changes.

> Can a mid-sequence I2C failure commit a half-written delay word?

v9 saves the five delay bytes before the write
and restores them on a mid-sequence failure before the commit, the same shape
as the DIVO write in the frequency path.

> Does this match the commit message claim that "what the core reads back is
> what the registers hold rather than what was asked for"?

The getter reports the administrative request, which is the
convention the cache implements; the v9 changelog is reworded to say so.
Sub-step quantisation is bounded by the 30 ps fine step and the request is
preserved exactly in the cache, so the round trip is stable; reporting the
quantised register value instead would make a set followed by a get disagree
with what userspace asked, which the core's equality short-circuit then turns
into an un-clearable state.

> should struct dpll_pin_properties::phase_gran be populated too?

Yes -- fixed in v9: phase_gran is populated so
PHASE_ADJUST_MIN/MAX/GRAN are all reported as driver-api/dpll.rst prescribes.
It is set to 1 ps rather than the 30 ps fine step deliberately: requests are
accepted at picosecond resolution and encoded to the nearest achievable
coarse+fine delay, so the request granularity, not the hardware step, is what
the attribute must gate.

> Could both comments be reworded in terms of the slot [...]?

Fixed in v9 -- both blocks are stated in terms of the physical slot.

  reply	other threads:[~2026-09-14 23:00 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-02 21:40 [PATCH net-next v8 00/15] dpll: add SiTime SiT9531x DPLL clock driver Ali Rouhi
2026-09-02 21:40 ` [PATCH net-next v8 01/15] dt-bindings: vendor-prefixes: add SiTime Corporation Ali Rouhi
2026-09-02 21:40 ` [PATCH net-next v8 03/15] dpll: add basic SiTime SiT9531x support Ali Rouhi
2026-09-08 12:45   ` netdev-bot+sashiko
2026-09-14 23:00     ` Ali Rouhi
2026-09-02 21:40 ` [PATCH net-next v8 02/15] dt-bindings: dpll: add SiTime SiT95316 clock generator Ali Rouhi
2026-09-08 12:45   ` netdev-bot+sashiko
2026-09-14 23:00     ` Ali Rouhi
2026-09-02 21:40 ` [PATCH net-next v8 04/15] dpll: sit9531x: read DPLL types and pin properties from system firmware Ali Rouhi
2026-09-08 12:45   ` netdev-bot+sashiko
2026-09-14 23:00     ` Ali Rouhi
2026-09-02 21:40 ` [PATCH net-next v8 05/15] dpll: sit9531x: register DPLL devices and pins Ali Rouhi
2026-09-03 21:41   ` sashiko-bot
2026-09-08 12:45   ` netdev-bot+sashiko
2026-09-14 23:00     ` Ali Rouhi
2026-09-02 21:40 ` [PATCH net-next v8 07/15] dpll: sit9531x: add support to get and set priority on input pins Ali Rouhi
2026-09-03 21:41   ` sashiko-bot
2026-09-08 12:45   ` netdev-bot+sashiko
2026-09-14 23:00     ` Ali Rouhi
2026-09-02 21:40 ` [PATCH net-next v8 06/15] dpll: sit9531x: implement input pin state on a DPLL Ali Rouhi
2026-09-03 21:41   ` sashiko-bot
2026-09-08 12:45   ` netdev-bot+sashiko
2026-09-14 23:00     ` Ali Rouhi
2026-09-02 21:40 ` [PATCH net-next v8 08/15] dpll: sit9531x: add support to get and set frequency on pins Ali Rouhi
2026-09-03 21:41   ` sashiko-bot
2026-09-08 12:45   ` netdev-bot+sashiko
2026-09-14 23:00     ` Ali Rouhi
2026-09-02 21:40 ` [PATCH net-next v8 09/15] dpll: sit9531x: implement output pin state on a DPLL Ali Rouhi
2026-09-08 12:45   ` netdev-bot+sashiko
2026-09-14 23:00     ` Ali Rouhi
2026-09-02 21:40 ` [PATCH net-next v8 10/15] dpll: sit9531x: add support to adjust output phase Ali Rouhi
2026-09-03 21:41   ` sashiko-bot
2026-09-08 12:45   ` netdev-bot+sashiko
2026-09-14 23:00     ` Ali Rouhi [this message]
2026-09-02 21:40 ` [PATCH net-next v8 11/15] dpll: sit9531x: add support to get and set esync on pins Ali Rouhi
2026-09-03 21:41   ` sashiko-bot
2026-09-08 12:45   ` netdev-bot+sashiko
2026-09-14 23:00     ` Ali Rouhi
2026-09-02 21:40 ` [PATCH net-next v8 13/15] dpll: sit9531x: add support to get fractional frequency offset Ali Rouhi
2026-09-08 12:45   ` netdev-bot+sashiko
2026-09-14 23:00     ` Ali Rouhi
2026-09-02 21:40 ` [PATCH net-next v8 12/15] dpll: sit9531x: add support to get phase offset on the connected input pin Ali Rouhi
2026-09-08 12:45   ` netdev-bot+sashiko
2026-09-14 23:00     ` Ali Rouhi
2026-09-02 21:40 ` [PATCH net-next v8 14/15] dpll: sit9531x: model the inter-PLL sync net as a pair of pins Ali Rouhi
2026-09-03 21:41   ` sashiko-bot
2026-09-08 12:45   ` netdev-bot+sashiko
2026-09-14 23:00     ` Ali Rouhi
2026-09-02 21:40 ` [PATCH net-next v8 15/15] dpll: sit9531x: allow the device tree to override two board facts Ali Rouhi
2026-09-08 12:45   ` netdev-bot+sashiko
2026-09-14 23:00     ` Ali Rouhi
2026-09-08 12:57 ` [PATCH net-next v8 00/15] dpll: add SiTime SiT9531x DPLL clock driver Paolo Abeni
2026-09-14 23:00   ` Ali Rouhi

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=20260914230034.63861-9-arouhi@sitime.com \
    --to=arouhi@sitime.com \
    --cc=Oleg.Zadorozhnyi@devoxsoftware.com \
    --cc=arkadiusz.kubalewski@intel.com \
    --cc=cjubran@nvidia.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=ivecera@redhat.com \
    --cc=jiri@resnulli.us \
    --cc=krzk+dt@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=robh@kernel.org \
    --cc=vadim.fedorenko@linux.dev \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).