From: Ivan Vecera <ivecera@redhat.com>
To: netdev@vger.kernel.org
Cc: Vadim Fedorenko <vadim.fedorenko@linux.dev>,
Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>,
Jiri Pirko <jiri@resnulli.us>, Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Prathosh Satish <Prathosh.Satish@microchip.com>,
Tony Nguyen <anthony.l.nguyen@intel.com>,
Przemek Kitszel <przemyslaw.kitszel@intel.com>,
Andrew Lunn <andrew+netdev@lunn.ch>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Saeed Mahameed <saeedm@nvidia.com>,
Leon Romanovsky <leon@kernel.org>,
Tariq Toukan <tariqt@nvidia.com>, Mark Bloch <mbloch@nvidia.com>,
Jonathan Lemon <jonathan.lemon@gmail.com>,
Richard Cochran <richardcochran@gmail.com>,
Alexander Lobakin <aleksander.lobakin@intel.com>,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
intel-wired-lan@lists.osuosl.org, linux-rdma@vger.kernel.org,
Michal Schmidt <mschmidt@redhat.com>,
Petr Oros <poros@redhat.com>,
Grzegorz Nitka <grzegorz.nitka@intel.com>
Subject: [PATCH net-next 00/12] dpll: Core improvements and ice E825-C SyncE support
Date: Thu, 8 Jan 2026 19:23:06 +0100 [thread overview]
Message-ID: <20260108182318.20935-1-ivecera@redhat.com> (raw)
This series introduces Synchronous Ethernet (SyncE) support for
the Intel E825-C Ethernet controller. Unlike previous generations where
DPLL connections were implicitly assumed, the E825-C architecture relies
on the platform firmware to describe the physical connections between
the network controller and external DPLLs (such as the ZL3073x).
To accommodate this, the series extends the DPLL subsystem to support
firmware node (fwnode) associations, asynchronous discovery via notifiers,
and dynamic pin management. Additionally, a significant refactor of
the DPLL reference counting logic is included to ensure robustness and
debuggability.
DPLL Core Extensions:
* Firmware Node Support: Pins can now be registered with an associated
struct fwnode_handle. This allows consumer drivers to lookup pins based
on device properties (dpll-pins).
* Asynchronous Notifiers: A raw notifier chain is added to the DPLL core.
This allows the network driver (ice driver in this series) to subscribe
to events and react when the platform DPLL driver registers the parent
pins, resolving probe ordering dependencies.
* Dynamic Indexing: Drivers can now request DPLL_PIN_IDX_UNSPEC to have
the core automatically allocate a unique pin index, simplifying driver
implementation for virtual or non-indexed pins.
Reference Counting & Debugging:
* Refactor: The reference counting logic in the core is consolidated.
Internal list management helpers now automatically handle hold/put
operations, removing fragile open-coded logic in the registration paths.
* Duplicate Checks: The core now strictly rejects duplicate registration
attempts for the same pin/device context.
* Reference Tracking: A new Kconfig option DPLL_REFCNT_TRACKER is added
(using the kernel's REF_TRACKER infrastructure). This allows developers
to instrument and debug reference leaks by recording stack traces for
every get/put operation.
Driver Updates:
* zl3073x: Updated to register pins with their firmware nodes and support
the 'mux' pin type.
* ice: Implements the E825-C specific hardware configuration for SyncE
(CGU registers). It utilizes the new notifier and fwnode APIs to
dynamically discover and attach to the platform DPLLs.
Patch Summary:
* Patch 1-3:
DT pin consumer schema and helper functions for finding DPLL pins via fwnode.
* Patch 4:
Updates zl3073x to register pins with fwnode.
* Patch 5-6:
Adds notifiers and dynamic pin index allocation to DPLL core.
* Patch 7:
Adds 'mux' pin type support to zl3073x.
* Patch 8-9:
Refactors DPLL core refcounting and adds duplicate registration checks.
* Patch 10-11:
Adds REF_TRACKER infrastructure and updates existing drivers to support it.
* Patch 12:
Implements the E825-C SyncE logic in the ice driver using the new
infrastructure.
Arkadiusz Kubalewski (1):
ice: dpll: Support E825-C SyncE and dynamic pin discovery
Ivan Vecera (10):
dt-bindings: dpll: add common dpll-pin-consumer schema
dpll: Allow associating dpll pin with a firmware node
dpll: Add helpers to find DPLL pin fwnode
dpll: zl3073x: Associate pin with fwnode handle
dpll: Support dynamic pin index allocation
dpll: zl3073x: Add support for mux pin type
dpll: Enhance and consolidate reference counting logic
dpll: Prevent duplicate registrations
dpll: Add reference count tracking support
drivers: Add support for DPLL reference count tracking
Petr Oros (1):
dpll: Add notifier chain for dpll events
.../bindings/dpll/dpll-pin-consumer.yaml | 30 +
drivers/dpll/Kconfig | 15 +
drivers/dpll/dpll_core.c | 320 +++++++-
drivers/dpll/dpll_core.h | 11 +
drivers/dpll/dpll_netlink.c | 6 +
drivers/dpll/zl3073x/dpll.c | 15 +-
drivers/dpll/zl3073x/dpll.h | 2 +
drivers/dpll/zl3073x/prop.c | 2 +
drivers/net/ethernet/intel/ice/ice_dpll.c | 728 +++++++++++++++---
drivers/net/ethernet/intel/ice/ice_dpll.h | 29 +
drivers/net/ethernet/intel/ice/ice_lib.c | 3 +
drivers/net/ethernet/intel/ice/ice_ptp.c | 29 +
drivers/net/ethernet/intel/ice/ice_ptp_hw.c | 9 +-
drivers/net/ethernet/intel/ice/ice_tspll.c | 217 ++++++
drivers/net/ethernet/intel/ice/ice_tspll.h | 13 +-
drivers/net/ethernet/intel/ice/ice_type.h | 6 +
.../net/ethernet/mellanox/mlx5/core/dpll.c | 16 +-
drivers/ptp/ptp_ocp.c | 18 +-
include/linux/dpll.h | 74 +-
19 files changed, 1385 insertions(+), 158 deletions(-)
create mode 100644 Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml
--
2.52.0
next reply other threads:[~2026-01-08 18:23 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-08 18:23 Ivan Vecera [this message]
2026-01-08 18:23 ` [PATCH net-next 01/12] dt-bindings: dpll: add common dpll-pin-consumer schema Ivan Vecera
2026-01-09 9:48 ` Krzysztof Kozlowski
2026-01-09 10:22 ` [Intel-wired-lan] " Ivan Vecera
2026-01-09 14:11 ` Ivan Vecera
2026-01-12 16:14 ` Krzysztof Kozlowski
2026-01-12 16:48 ` Ivan Vecera
2026-01-12 18:07 ` Ivan Vecera
2026-01-15 12:01 ` Ivan Vecera
2026-01-16 15:23 ` Rob Herring
2026-01-16 19:00 ` Ivan Vecera
2026-01-16 23:39 ` Rob Herring
2026-01-17 18:21 ` Ivan Vecera
2026-01-08 18:23 ` [PATCH net-next 02/12] dpll: Allow associating dpll pin with a firmware node Ivan Vecera
2026-01-09 15:46 ` Vadim Fedorenko
2026-01-08 18:23 ` [PATCH net-next 03/12] dpll: Add helpers to find DPLL pin fwnode Ivan Vecera
2026-01-09 9:55 ` Krzysztof Kozlowski
2026-01-09 10:22 ` Ivan Vecera
2026-01-12 16:16 ` Krzysztof Kozlowski
2026-01-12 16:52 ` Ivan Vecera
2026-01-09 14:19 ` Ivan Vecera
2026-01-12 16:20 ` Krzysztof Kozlowski
2026-01-12 16:55 ` Ivan Vecera
2026-01-08 18:23 ` [PATCH net-next 04/12] dpll: zl3073x: Associate pin with fwnode handle Ivan Vecera
2026-01-08 18:23 ` [PATCH net-next 05/12] dpll: Add notifier chain for dpll events Ivan Vecera
2026-01-09 16:12 ` Vadim Fedorenko
2026-01-08 18:23 ` [PATCH net-next 06/12] dpll: Support dynamic pin index allocation Ivan Vecera
2026-01-09 23:34 ` [Intel-wired-lan] " kernel test robot
2026-01-12 15:13 ` kernel test robot
2026-01-12 16:56 ` Ivan Vecera
2026-01-12 19:19 ` kernel test robot
2026-01-08 18:23 ` [PATCH net-next 07/12] dpll: zl3073x: Add support for mux pin type Ivan Vecera
2026-01-08 18:23 ` [PATCH net-next 08/12] dpll: Enhance and consolidate reference counting logic Ivan Vecera
2026-01-08 18:23 ` [PATCH net-next 09/12] dpll: Prevent duplicate registrations Ivan Vecera
2026-01-08 18:23 ` [PATCH net-next 10/12] dpll: Add reference count tracking support Ivan Vecera
2026-01-12 16:06 ` [Intel-wired-lan] " kernel test robot
2026-01-08 18:23 ` [PATCH net-next 11/12] drivers: Add support for DPLL reference count tracking Ivan Vecera
2026-01-08 18:23 ` [PATCH net-next 12/12] ice: dpll: Support E825-C SyncE and dynamic pin discovery Ivan Vecera
2026-01-09 6:15 ` [Intel-wired-lan] " Loktionov, Aleksandr
2026-01-09 14:47 ` Ivan Vecera
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=20260108182318.20935-1-ivecera@redhat.com \
--to=ivecera@redhat.com \
--cc=Prathosh.Satish@microchip.com \
--cc=aleksander.lobakin@intel.com \
--cc=andrew+netdev@lunn.ch \
--cc=anthony.l.nguyen@intel.com \
--cc=arkadiusz.kubalewski@intel.com \
--cc=conor+dt@kernel.org \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=edumazet@google.com \
--cc=grzegorz.nitka@intel.com \
--cc=intel-wired-lan@lists.osuosl.org \
--cc=jiri@resnulli.us \
--cc=jonathan.lemon@gmail.com \
--cc=krzk+dt@kernel.org \
--cc=kuba@kernel.org \
--cc=leon@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=mbloch@nvidia.com \
--cc=mschmidt@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=poros@redhat.com \
--cc=przemyslaw.kitszel@intel.com \
--cc=richardcochran@gmail.com \
--cc=robh@kernel.org \
--cc=saeedm@nvidia.com \
--cc=tariqt@nvidia.com \
--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