[PATCH net v6 0/2] ice: fix missing dpll notifications for SW pins
From: Petr Oros
Date: Thu Apr 16 2026 - 07:40:23 EST
The SMA/U.FL pin redesign never propagated dpll notifications to the
software-controlled pin wrappers. This series fixes that by adding
peer notification for paired SMA/U.FL pins and by wrapping
dpll_pin_change_ntf() calls in the periodic work to also cover SW pins.
Patch 1 exports __dpll_pin_change_ntf() so ice can send peer
notifications from callback context where dpll_lock is already held.
Patch 2 fixes the notification gaps: periodic work HW-to-SW
propagation, SW-to-SW peer notification on PCA9575 routing changes,
and SW pin phase offset reporting.
Ivan Vecera (1):
dpll: export __dpll_pin_change_ntf() for use under dpll_lock
Petr Oros (1):
ice: fix missing dpll notifications for SW pins
drivers/dpll/dpll_netlink.c | 10 +++
drivers/dpll/dpll_netlink.h | 2 -
drivers/net/ethernet/intel/ice/ice_dpll.c | 80 +++++++++++++++++++----
include/linux/dpll.h | 1 +
4 files changed, 79 insertions(+), 14 deletions(-)
---
v6:
- fix deadlock reported by Michal Schmidt: dpll_pin_change_ntf() in
peer notification was called with dpll_lock held, causing deadlock.
Move the peer notification calls out of ice_dpll_sma_direction_set()
and ice_dpll_ufl_pin_state_set() into their dpll_pin_ops callback
wrappers, after pf->dplls.lock is released, and use
__dpll_pin_change_ntf() because dpll_lock is still held by the dpll
netlink layer (dpll_pin_pre_doit).
v5: https://lore.kernel.org/all/20260409102501.1447628-1-poros@xxxxxxxxxx/
v4: https://lore.kernel.org/all/20260319205256.998876-1-poros@xxxxxxxxxx/
v3: https://lore.kernel.org/all/20260220140700.2910174-1-poros@xxxxxxxxxx/
v2: https://lore.kernel.org/all/20260219131500.2271897-1-poros@xxxxxxxxxx/
v1: https://lore.kernel.org/all/20260218211414.1411163-1-poros@xxxxxxxxxx/