From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 09553D43343 for ; Thu, 11 Dec 2025 19:48:21 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id A2C25410E9; Thu, 11 Dec 2025 19:48:21 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id 5XOjdsi61yd0; Thu, 11 Dec 2025 19:48:19 +0000 (UTC) X-Comment: SPF check N/A for local connections - client-ip=140.211.166.142; helo=lists1.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org; receiver= DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 825BB410E4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=osuosl.org; s=default; t=1765482499; bh=j1/uoB3Ms91T8przm8WNo02MG8iZMujEgt+YwxCU8nw=; h=From:To:Date:Subject:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From; b=ul7Ei6XGbpPH9Pb94hufsCFBORfaD6ffrDnCAO9IVq6CUS89N0WPTL694AmTY4o33 UQTprBn1XNTxolhPpR48EUrFtr2a2kX+m6+3NS28iYFN8qP7wQ9+2ZgGNzQ4dCZdvB auvJ8m1NmSuAQZpwJb2VCXosFk3K77hy1OeSS71dGl4700NA9L8/1zP3Ks4JL2SldY WuWs2pt5bWBYW/xIQBUCgOd31a5CGdCHu3cfWGLnSstMFopkzwpPEEK5fjxsSTPsY9 4mqP46ntwnZGcTuh75CHlLPQKF7MP3603K9zvaDLlaDOxtdQ/r96k8gqAS+qsfDjcr IXeqhRs8ztNCQ== Received: from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142]) by smtp4.osuosl.org (Postfix) with ESMTP id 825BB410E4; Thu, 11 Dec 2025 19:48:19 +0000 (UTC) Received: from smtp1.osuosl.org (smtp1.osuosl.org [IPv6:2605:bc80:3010::138]) by lists1.osuosl.org (Postfix) with ESMTP id D319B2C1 for ; Thu, 11 Dec 2025 19:48:18 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id B90EE80EB4 for ; Thu, 11 Dec 2025 19:48:18 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id LLQ8z05RTESo for ; Thu, 11 Dec 2025 19:48:17 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=170.10.129.124; helo=us-smtp-delivery-124.mimecast.com; envelope-from=ivecera@redhat.com; receiver= DMARC-Filter: OpenDMARC Filter v1.4.2 smtp1.osuosl.org AEFB280E99 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org AEFB280E99 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by smtp1.osuosl.org (Postfix) with ESMTPS id AEFB280E99 for ; Thu, 11 Dec 2025 19:48:16 +0000 (UTC) Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-499-DIoxkukSNOCLiaK1yi1aGQ-1; Thu, 11 Dec 2025 14:48:11 -0500 X-MC-Unique: DIoxkukSNOCLiaK1yi1aGQ-1 X-Mimecast-MFC-AGG-ID: DIoxkukSNOCLiaK1yi1aGQ_1765482488 Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 25519195609E; Thu, 11 Dec 2025 19:48:07 +0000 (UTC) Received: from p16v.luc.cera.cz (unknown [10.45.224.252]) by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 26E361956056; Thu, 11 Dec 2025 19:47:57 +0000 (UTC) From: Ivan Vecera To: netdev@vger.kernel.org, Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vadim Fedorenko , Arkadiusz Kubalewski , Grzegorz Nitka , Jiri Pirko , Petr Oros , Michal Schmidt , Prathosh Satish , Tony Nguyen , Przemek Kitszel , Saeed Mahameed , Leon Romanovsky , Tariq Toukan , Mark Bloch , Richard Cochran , Jonathan Lemon , Simon Horman , Alexander Lobakin , Willem de Bruijn , Stefan Wahren , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, intel-wired-lan@lists.osuosl.org, linux-rdma@vger.kernel.org Date: Thu, 11 Dec 2025 20:47:43 +0100 Message-ID: <20251211194756.234043-1-ivecera@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1765482495; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=j1/uoB3Ms91T8przm8WNo02MG8iZMujEgt+YwxCU8nw=; b=ZNdR67rlyF0D9BDZM+2HDYMgDcI2nN7q1KzPeLP30kaUSC8oelrL2votzuuLbsIUEVLQyi 8TIBH0Wk5JnJfnHtntAS8Nam4bzHWWqSIajtzd0NJh5NUBMo1jlGqbkJlja5g4a2UuFygo HQB/ICrYip9TYf1t55ToN56IrViLQ1M= X-Mailman-Original-Authentication-Results: smtp1.osuosl.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com X-Mailman-Original-Authentication-Results: smtp1.osuosl.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=ZNdR67rl Subject: [Intel-wired-lan] [PATCH RFC net-next 00/13] dpll: Core improvements and ice E825-C SyncE support X-BeenThere: intel-wired-lan@osuosl.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Intel Wired Ethernet Linux Kernel Driver Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-wired-lan-bounces@osuosl.org Sender: "Intel-wired-lan" 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 bindings 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-12: Adds REF_TRACKER infrastructure and updates drivers (zl3073x, ice) to support it. * Patch 13: 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 (11): dt-bindings: net: ethernet-controller: Add DPLL pin properties dpll: Allow registering pin with firmware node net: eth: Add helpers to find DPLL pin firmware node dpll: zl3073x: register pins 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 dpll: zl3073x: Enable reference count tracking ice: dpll: Enable reference count tracking Petr Oros (1): dpll: Add notifier chain for dpll events .../bindings/net/ethernet-controller.yaml | 13 + drivers/dpll/Kconfig | 15 + drivers/dpll/dpll_core.c | 290 ++++- drivers/dpll/dpll_core.h | 11 + drivers/dpll/dpll_netlink.c | 6 + drivers/dpll/zl3073x/dpll.c | 15 +- drivers/dpll/zl3073x/dpll.h | 1 + drivers/dpll/zl3073x/prop.c | 2 + drivers/net/ethernet/intel/ice/ice_dpll.c | 995 ++++++++++++++++-- drivers/net/ethernet/intel/ice/ice_dpll.h | 33 + 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_ptp_hw.h | 1 + drivers/net/ethernet/intel/ice/ice_tspll.c | 223 ++++ drivers/net/ethernet/intel/ice/ice_tspll.h | 14 +- drivers/net/ethernet/intel/ice/ice_type.h | 6 + .../net/ethernet/mellanox/mlx5/core/dpll.c | 13 +- drivers/ptp/ptp_ocp.c | 16 +- include/linux/dpll.h | 58 +- include/linux/etherdevice.h | 4 + net/ethernet/eth.c | 20 + 22 files changed, 1616 insertions(+), 161 deletions(-) -- 2.51.2