linux/drivers/dpll
Ivan Vecera 0748e473b6 dpll: zl3073x: notify sibling pin when shared output config changes
The P-pin and N-pin of an output share the divisor, clock type, eSync
and phase compensation registers (outside N-divided mode). Changing
them through one pin changes the other pin too, but only the requested
pin gets a change notification.

Add zl3073x_dpll_output_pin_sibling_get() and notify the sibling from
frequency_set(), esync_set() and phase_adjust_set(). The notification
re-enters the pin get callbacks, so it has to be sent after
zldpll->lock is released and the callbacks switch from guard(mutex)
to explicit unlocking.

To always find a registered sibling, add a pin to zldpll->pins before
dpll_pin_register() and remove it only after dpll_pin_unregister(),
both under zldpll->lock. A pin that is on the list but not registered
gets no netlink notification, as dpll_pin_event_send() skips such
pins, and the only in-tree DPLL notifier ignores DPLL_PIN_CHANGED.

Found by code inspection, not triggered at runtime.

Fixes: 634ca2cb06 ("dpll: zl3073x: Add support to get/set esync on pins")
Fixes: ce26d7ca50 ("dpll: zl3073x: Add support to get/set frequency on pins")
Fixes: 6287262f76 ("dpll: zl3073x: Add support to adjust phase")
Reviewed-by: Petr Oros <poros@redhat.com>
Signed-off-by: Ivan Vecera <ivecera@redhat.com>
Link: https://patch.msgid.link/20261011061211.448373-6-ivecera@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-10-16 18:01:14 -07:00
..
zl3073x dpll: zl3073x: notify sibling pin when shared output config changes 2026-10-16 18:01:14 -07:00
dpll_core.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2026-08-18 10:42:41 -07:00
dpll_core.h dpll: use pin owner's dpll ref for pin-level attribute reporting 2026-07-24 16:15:19 -07:00
dpll_netlink.c dpll: do not truncate the requested pin frequency before checking it 2026-09-25 18:14:50 -07:00
dpll_netlink.h dpll: extend pin notifier with notification source ID 2026-06-13 13:24:34 -07:00
dpll_nl.c netlink: specs: dpll: pin-get has no dump filter 2026-09-09 13:52:51 -07:00
dpll_nl.h dpll: add pin operational state 2026-04-30 16:21:49 +02:00
Kconfig dpll: Add reference count tracking support 2026-02-05 15:57:46 +01:00
Makefile dpll: Add basic Microchip ZL3073x support 2025-07-09 19:08:52 -07:00