Re: [PATCH net-next] dpll: use pin owner's dpll ref for pin-level attribute setting
From: Ivan Vecera
Date: Mon Aug 03 2026 - 06:30:23 EST
Reply to Sashiko findings:
> dpll_pin_is_freq_supported() reads a u64:
> u64 freq = nla_get_u64(a), old_freq;
> while the validator takes a u32:
> static bool dpll_pin_is_freq_supported(struct dpll_pin *pin, u32 freq)
> ...
> Would widening the helper parameter to u64 be worth folding in here?
Good catch. This is a pre-existing issue unrelated to the owner-ref
simplification. I'd prefer to fix it in a separate follow-up patch
rather than mixing it in.
> Should Documentation/driver-api/dpll.rst be updated in the same patch?
> ...
> Could both changes be mentioned in the commit message, which currently
> describes the patch only as removing "duplicate HW writes"?
Wull address in v2. Both dpll.rst sections ("Shared pins" and "SET
commands format") are updated. The commit message will describe the
-EOPNOTSUPP validation change (from scanning all owner-matching refs to
checking the single owner ref returned by dpll_pin_own_dpll_ref_first()).
> Is the ref_sync_set callback really DPLL-independent for zl3073x?
> ...
> does this leave the sync reference still armed as a selectable
> candidate in the priority tables of every other channel?
> ...
> If ref_sync_set does need per-registration invocation, should it keep
> the xa_for_each() fan-out while the other three setters move to the
> owner ref?
This is correct finding. zl3073x_dpll_input_pin_ref_sync_set() performs
a per-channel priority write that would only reach the first channel
after this simplification.
Rather than keeping xa_for_each() in the core for this one callback,
v2 will split the fix into a preparation patch (1/2) where the driver
itself iterates all DPLL channels via list_for_each_entry() and sets
priority to NONE on each one.
Ivan