[PATCH net-next v2 0/2] dpll: use pin owner's dpll ref for pin-level set callbacks
From: Ivan Vecera <ivecera@redhat.com>
Date: 2026-08-03 12:02:56
Also in:
lkml
Pin-level attributes (frequency, phase adjust, embedded sync, reference sync) are properties of the pin itself. The get callbacks already use only the pin owner's DPLL reference, but the set callbacks iterate over all registered DPLL devices — resulting in redundant HW writes for drivers that share a pin across multiple DPLLs. This series simplifies the set side to match the get side: call the set callback only through the owner's reference. Patch 1 prepares the zl3073x driver whose ref_sync_set callback had per-channel behavior (setting priority on a single DPLL channel). It now iterates all channels internally so it remains correct when invoked only once. Patch 2 drops the xa_for_each loops from dpll_pin_freq_set(), dpll_pin_esync_set(), dpll_pin_ref_sync_state_set() and dpll_pin_phase_adj_set(), along with the rollback logic and the per-ref -EOPNOTSUPP validation scan. The dpll.rst documentation is updated to reflect the new behavior. v2: - Split zl3073x ref_sync_set fix into a separate preparation patch - Update dpll.rst documentation to match the new behavior - Expand commit message to describe the -EOPNOTSUPP check change Ivan Vecera (2): dpll: zl3073x: update all DPLL channels on ref_sync_set dpll: use pin owner's dpll ref for pin-level attribute setting Documentation/driver-api/dpll.rst | 10 +- drivers/dpll/dpll_netlink.c | 213 +++++++----------------------- drivers/dpll/zl3073x/dpll.c | 46 +++++-- 3 files changed, 89 insertions(+), 180 deletions(-) base-commit: 69963a0678a347d57c4ac8b16939dba216eb95ce -- 2.54.0