{"id":2221608,"url":"http://patchwork.ozlabs.org/api/1.1/patches/2221608/?format=json","web_url":"http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20260409235122.436749-4-grzegorz.nitka@intel.com/","project":{"id":46,"url":"http://patchwork.ozlabs.org/api/1.1/projects/46/?format=json","name":"Intel Wired Ethernet development","link_name":"intel-wired-lan","list_id":"intel-wired-lan.osuosl.org","list_email":"intel-wired-lan@osuosl.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20260409235122.436749-4-grzegorz.nitka@intel.com>","date":"2026-04-09T23:51:17","name":"[v6,net-next,3/8] dpll: extend pin notifier and netlink events with notification source ID","commit_ref":null,"pull_url":null,"state":"handled-elsewhere","archived":false,"hash":"d5e8b7683bd37b5975a3675c60f60810b8edb566","submitter":{"id":82711,"url":"http://patchwork.ozlabs.org/api/1.1/people/82711/?format=json","name":"Nitka, Grzegorz","email":"grzegorz.nitka@intel.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20260409235122.436749-4-grzegorz.nitka@intel.com/mbox/","series":[{"id":499370,"url":"http://patchwork.ozlabs.org/api/1.1/series/499370/?format=json","web_url":"http://patchwork.ozlabs.org/project/intel-wired-lan/list/?series=499370","date":"2026-04-09T23:51:14","name":"dpll/ice: Add TXC DPLL type and full TX reference clock control for E825","version":6,"mbox":"http://patchwork.ozlabs.org/series/499370/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2221608/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2221608/checks/","tags":{},"headers":{"Return-Path":"<intel-wired-lan-bounces@osuosl.org>","X-Original-To":["incoming@patchwork.ozlabs.org","intel-wired-lan@lists.osuosl.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","intel-wired-lan@lists.osuosl.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=osuosl.org header.i=@osuosl.org header.a=rsa-sha256\n header.s=default header.b=A+m5Z/5i;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=osuosl.org\n (client-ip=2605:bc80:3010::136; helo=smtp3.osuosl.org;\n envelope-from=intel-wired-lan-bounces@osuosl.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from smtp3.osuosl.org (smtp3.osuosl.org [IPv6:2605:bc80:3010::136])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fsGyp4zNcz1xtJ\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 10 Apr 2026 09:55:30 +1000 (AEST)","from localhost (localhost [127.0.0.1])\n\tby smtp3.osuosl.org (Postfix) with ESMTP id 5665E60B77;\n\tThu,  9 Apr 2026 23:55:29 +0000 (UTC)","from smtp3.osuosl.org ([127.0.0.1])\n by localhost (smtp3.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id r1Fpu-UW5GKg; Thu,  9 Apr 2026 23:55:27 +0000 (UTC)","from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142])\n\tby smtp3.osuosl.org (Postfix) with ESMTP id 60C6560B6D;\n\tThu,  9 Apr 2026 23:55:27 +0000 (UTC)","from smtp3.osuosl.org (smtp3.osuosl.org [IPv6:2605:bc80:3010::136])\n by lists1.osuosl.org (Postfix) with ESMTP id C41A61F6\n for <intel-wired-lan@lists.osuosl.org>; Thu,  9 Apr 2026 23:55:25 +0000 (UTC)","from localhost (localhost [127.0.0.1])\n by smtp3.osuosl.org (Postfix) with ESMTP id B5E2960B77\n for <intel-wired-lan@lists.osuosl.org>; Thu,  9 Apr 2026 23:55:25 +0000 (UTC)","from smtp3.osuosl.org ([127.0.0.1])\n by localhost (smtp3.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id 9a87OO87PIWp for <intel-wired-lan@lists.osuosl.org>;\n Thu,  9 Apr 2026 23:55:24 +0000 (UTC)","from mgamail.intel.com (mgamail.intel.com [192.198.163.11])\n by smtp3.osuosl.org (Postfix) with ESMTPS id B669060B6D\n for <intel-wired-lan@lists.osuosl.org>; Thu,  9 Apr 2026 23:55:24 +0000 (UTC)","from orviesa008.jf.intel.com ([10.64.159.148])\n by fmvoesa105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 09 Apr 2026 16:55:24 -0700","from gklab-003-001.igk.intel.com ([10.91.173.48])\n by orviesa008.jf.intel.com with ESMTP; 09 Apr 2026 16:55:19 -0700"],"X-Virus-Scanned":["amavis at osuosl.org","amavis at osuosl.org"],"X-Comment":"SPF check N/A for local connections - client-ip=140.211.166.142;\n helo=lists1.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org;\n receiver=<UNKNOWN> ","DKIM-Filter":["OpenDKIM Filter v2.11.0 smtp3.osuosl.org 60C6560B6D","OpenDKIM Filter v2.11.0 smtp3.osuosl.org B669060B6D"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=osuosl.org;\n\ts=default; t=1775778927;\n\tbh=hK7DxD5Tfg64626F9FfmdzbzbLLaFnSmmQAzgjoIjuA=;\n\th=From:To:Date:In-Reply-To:References:Subject:List-Id:\n\t List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe:\n\t Cc:From;\n\tb=A+m5Z/5iWyGTUcJeDS4iAg5xIorfrdYeEfJfpYqmwLDnUhxw1FnI4z1RA6vJoOHKF\n\t dIkovG5l5jq9alGDTY6xTzuqGtnAPWZnq057AEvOiPryKNgFvG9XiOMVGkhFzOPpkK\n\t nWzbOE8CIjRnqlTPqtYFWxyIxYtW1utLLcoIYfmiELbtWt7XKrmp25YB5FaZrVQYhh\n\t JWMokTWmEqcYW0zts51dWAb+b58l4WYpl88aswbpuEXGXIaAiHMPZE06H339FmsC4B\n\t fW0pgzNDREgL+YfVOuB5ctesQ893AoGtQuiVHFIp+URQNmiLvVoq7vumGx+73hjg4r\n\t ksKqp7Q9QNhPg==","Received-SPF":"Pass (mailfrom) identity=mailfrom; client-ip=192.198.163.11;\n helo=mgamail.intel.com; envelope-from=grzegorz.nitka@intel.com;\n receiver=<UNKNOWN>","DMARC-Filter":"OpenDMARC Filter v1.4.2 smtp3.osuosl.org B669060B6D","X-CSE-ConnectionGUID":["yOSc7U/mSQGtYDB06R/vhg==","LK+/zCj0QHScVlTS5S9Qsw=="],"X-CSE-MsgGUID":["s/l8YR0RTMWSzB2aANTy7Q==","gblHMSefQz6DrImXLbCvoQ=="],"X-IronPort-AV":["E=McAfee;i=\"6800,10657,11754\"; a=\"87424074\"","E=Sophos;i=\"6.23,170,1770624000\"; d=\"scan'208\";a=\"87424074\"","E=Sophos;i=\"6.23,170,1770624000\"; d=\"scan'208\";a=\"228860085\""],"X-ExtLoop1":"1","From":"Grzegorz Nitka <grzegorz.nitka@intel.com>","To":"netdev@vger.kernel.org","Date":"Fri, 10 Apr 2026 01:51:17 +0200","Message-Id":"<20260409235122.436749-4-grzegorz.nitka@intel.com>","X-Mailer":"git-send-email 2.39.3","In-Reply-To":"<20260409235122.436749-1-grzegorz.nitka@intel.com>","References":"<20260409235122.436749-1-grzegorz.nitka@intel.com>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","X-Mailman-Original-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple;\n d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n t=1775778925; x=1807314925;\n h=from:to:cc:subject:date:message-id:in-reply-to:\n references:mime-version:content-transfer-encoding;\n bh=EOgihlParWdvZQu0pqNNQEy4sT2tgqQbBXWYV2xn2Lg=;\n b=bvbFKe8tRyqnwSZ8eJjER/Bh14wRakBbsi/m4OUwi2oUaI2o4GizddZr\n fr45uDdMHjKqCEqg20K6gtpnJvmOhThpP0OQ0Uepxs6y6NQ7yTbslCQLm\n aO2Vvn+VL0gcm0aMiVOr/iQD9sB6H5MA1+Fx7+1tmQgeWqvzky1NGCHKK\n sIDTTnpAp0VHMWymJXRieMlm4U4Z7sjAjlpuIUKUcf5smGTny1trOBteH\n rqbxokPnplhCV6ucG/kPwpibj/Cq7yiq7ubO/qxrVV3LQyLKEEr2oY90q\n 0oJpscuujqDDiSHOEl1+TEBmD5EdgroNbNxkr9ZHsstoddzMge3K+ZAaD\n w==;","X-Mailman-Original-Authentication-Results":["smtp3.osuosl.org;\n dmarc=pass (p=none dis=none)\n header.from=intel.com","smtp3.osuosl.org;\n dkim=pass (2048-bit key,\n unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256\n header.s=Intel header.b=bvbFKe8t"],"Subject":"[Intel-wired-lan] [PATCH v6 net-next 3/8] dpll: extend pin notifier\n and netlink events with notification source ID","X-BeenThere":"intel-wired-lan@osuosl.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Intel Wired Ethernet Linux Kernel Driver Development\n <intel-wired-lan.osuosl.org>","List-Unsubscribe":"<https://lists.osuosl.org/mailman/options/intel-wired-lan>,\n <mailto:intel-wired-lan-request@osuosl.org?subject=unsubscribe>","List-Archive":"<http://lists.osuosl.org/pipermail/intel-wired-lan/>","List-Post":"<mailto:intel-wired-lan@osuosl.org>","List-Help":"<mailto:intel-wired-lan-request@osuosl.org?subject=help>","List-Subscribe":"<https://lists.osuosl.org/mailman/listinfo/intel-wired-lan>,\n <mailto:intel-wired-lan-request@osuosl.org?subject=subscribe>","Cc":"ivecera@redhat.com, vadim.fedorenko@linux.dev, kuba@kernel.org,\n jiri@resnulli.us, edumazet@google.com, przemyslaw.kitszel@intel.com,\n richardcochran@gmail.com, donald.hunter@gmail.com,\n linux-kernel@vger.kernel.org, arkadiusz.kubalewski@intel.com,\n Aleksandr Loktionov <aleksandr.loktionov@intel.com>, andrew+netdev@lunn.ch,\n intel-wired-lan@lists.osuosl.org, horms@kernel.org,\n Prathosh.Satish@microchip.com, anthony.l.nguyen@intel.com, pabeni@redhat.com,\n davem@davemloft.net","Errors-To":"intel-wired-lan-bounces@osuosl.org","Sender":"\"Intel-wired-lan\" <intel-wired-lan-bounces@osuosl.org>"},"content":"Extend the DPLL pin notification API to include a source identifier\nindicating where the notification originates. This allows notifier\nconsumers and netlink listeners to distinguish between notifications\ncoming from an associated DPLL instance, a parent pin, or the pin\nitself.\n\nA new field, src_id, is added to struct dpll_pin_notifier_info and is\npassed through all pin-related notification paths. Callers of\ndpll_pin_notify() are updated to provide a meaningful source identifier\nbased on their context:\n  - pin registration/unregistration uses the DPLL's clock_id,\n  - pin-on-pin operations use the parent pin's clock_id,\n  - pin changes use the pin's own clock_id.\n\nAs introduced in the commit (\"dpll: allow registering FW-identified pin\nwith a different DPLL\"), it is possible to share the same physical pin\nvia firmware description (fwnode) with DPLL objects from different\nkernel modules. This means that a given pin can be registered multiple\ntimes.\n\nDriver such as ICE (E825 devices) rely on this mechanism when listening\nfor the event where a shared-fwnode pin appears, while avoiding reacting\nto events triggered by their own registration logic.\n\nThis change only extends the notification metadata and does not alter\nexisting semantics for drivers that do not use the new field.\n\nReviewed-by: Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>\nReviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>\nSigned-off-by: Grzegorz Nitka <grzegorz.nitka@intel.com>\n---\n drivers/dpll/dpll_core.c    | 14 ++++++++------\n drivers/dpll/dpll_core.h    |  3 ++-\n drivers/dpll/dpll_netlink.c | 10 +++++-----\n drivers/dpll/dpll_netlink.h |  4 ++--\n include/linux/dpll.h        |  1 +\n 5 files changed, 18 insertions(+), 14 deletions(-)","diff":"diff --git a/drivers/dpll/dpll_core.c b/drivers/dpll/dpll_core.c\nindex afe4552bdcd4..857bd02da7ba 100644\n--- a/drivers/dpll/dpll_core.c\n+++ b/drivers/dpll/dpll_core.c\n@@ -71,7 +71,8 @@ void dpll_device_notify(struct dpll_device *dpll, unsigned long action)\n \tcall_dpll_notifiers(action, &info);\n }\n \n-void dpll_pin_notify(struct dpll_pin *pin, unsigned long action)\n+void dpll_pin_notify(struct dpll_pin *pin, u64 src_clock_id,\n+\t\t     unsigned long action)\n {\n \tstruct dpll_pin_notifier_info info = {\n \t\t.pin = pin,\n@@ -80,6 +81,7 @@ void dpll_pin_notify(struct dpll_pin *pin, unsigned long action)\n \t\t.clock_id = pin->clock_id,\n \t\t.fwnode = pin->fwnode,\n \t\t.prop = &pin->prop,\n+\t\t.src_clock_id = src_clock_id,\n \t};\n \n \tcall_dpll_notifiers(action, &info);\n@@ -847,7 +849,7 @@ __dpll_pin_register(struct dpll_device *dpll, struct dpll_pin *pin,\n \tif (ret)\n \t\tgoto ref_pin_del;\n \txa_set_mark(&dpll_pin_xa, pin->id, DPLL_REGISTERED);\n-\tdpll_pin_create_ntf(pin);\n+\tdpll_pin_create_ntf(pin, dpll->clock_id);\n \n \treturn ret;\n \n@@ -949,7 +951,7 @@ void dpll_pin_unregister(struct dpll_device *dpll, struct dpll_pin *pin,\n \t\treturn;\n \n \tmutex_lock(&dpll_lock);\n-\tdpll_pin_delete_ntf(pin);\n+\tdpll_pin_delete_ntf(pin, dpll->clock_id);\n \t__dpll_pin_unregister(dpll, pin, ops, priv, NULL);\n \tmutex_unlock(&dpll_lock);\n }\n@@ -995,7 +997,7 @@ int dpll_pin_on_pin_register(struct dpll_pin *parent, struct dpll_pin *pin,\n \t\t\tstop = i;\n \t\t\tgoto dpll_unregister;\n \t\t}\n-\t\tdpll_pin_create_ntf(pin);\n+\t\tdpll_pin_create_ntf(pin, parent->clock_id);\n \t}\n \tmutex_unlock(&dpll_lock);\n \n@@ -1006,7 +1008,7 @@ int dpll_pin_on_pin_register(struct dpll_pin *parent, struct dpll_pin *pin,\n \t\tif (i < stop) {\n \t\t\t__dpll_pin_unregister(ref->dpll, pin, ops, priv,\n \t\t\t\t\t      parent);\n-\t\t\tdpll_pin_delete_ntf(pin);\n+\t\t\tdpll_pin_delete_ntf(pin, parent->clock_id);\n \t\t}\n \tdpll_xa_ref_pin_del(&pin->parent_refs, parent, ops, priv, pin);\n unlock:\n@@ -1032,7 +1034,7 @@ void dpll_pin_on_pin_unregister(struct dpll_pin *parent, struct dpll_pin *pin,\n \tunsigned long i;\n \n \tmutex_lock(&dpll_lock);\n-\tdpll_pin_delete_ntf(pin);\n+\tdpll_pin_delete_ntf(pin, parent->clock_id);\n \tdpll_xa_ref_pin_del(&pin->parent_refs, parent, ops, priv, pin);\n \txa_for_each(&pin->dpll_refs, i, ref)\n \t\t__dpll_pin_unregister(ref->dpll, pin, ops, priv, parent);\ndiff --git a/drivers/dpll/dpll_core.h b/drivers/dpll/dpll_core.h\nindex 71ac88ef2017..92cb919317eb 100644\n--- a/drivers/dpll/dpll_core.h\n+++ b/drivers/dpll/dpll_core.h\n@@ -98,6 +98,7 @@ extern struct xarray dpll_pin_xa;\n extern struct mutex dpll_lock;\n \n void dpll_device_notify(struct dpll_device *dpll, unsigned long action);\n-void dpll_pin_notify(struct dpll_pin *pin, unsigned long action);\n+void dpll_pin_notify(struct dpll_pin *pin, u64 src_clock_id,\n+\t\t     unsigned long action);\n \n #endif\ndiff --git a/drivers/dpll/dpll_netlink.c b/drivers/dpll/dpll_netlink.c\nindex af7ce62ec55c..aeae5afe71c8 100644\n--- a/drivers/dpll/dpll_netlink.c\n+++ b/drivers/dpll/dpll_netlink.c\n@@ -888,21 +888,21 @@ dpll_pin_event_send(enum dpll_cmd event, struct dpll_pin *pin)\n \treturn ret;\n }\n \n-int dpll_pin_create_ntf(struct dpll_pin *pin)\n+int dpll_pin_create_ntf(struct dpll_pin *pin, u64 src_clock_id)\n {\n-\tdpll_pin_notify(pin, DPLL_PIN_CREATED);\n+\tdpll_pin_notify(pin, src_clock_id, DPLL_PIN_CREATED);\n \treturn dpll_pin_event_send(DPLL_CMD_PIN_CREATE_NTF, pin);\n }\n \n-int dpll_pin_delete_ntf(struct dpll_pin *pin)\n+int dpll_pin_delete_ntf(struct dpll_pin *pin,  u64 src_clock_id)\n {\n-\tdpll_pin_notify(pin, DPLL_PIN_DELETED);\n+\tdpll_pin_notify(pin, src_clock_id, DPLL_PIN_DELETED);\n \treturn dpll_pin_event_send(DPLL_CMD_PIN_DELETE_NTF, pin);\n }\n \n int __dpll_pin_change_ntf(struct dpll_pin *pin)\n {\n-\tdpll_pin_notify(pin, DPLL_PIN_CHANGED);\n+\tdpll_pin_notify(pin, pin->clock_id, DPLL_PIN_CHANGED);\n \treturn dpll_pin_event_send(DPLL_CMD_PIN_CHANGE_NTF, pin);\n }\n \ndiff --git a/drivers/dpll/dpll_netlink.h b/drivers/dpll/dpll_netlink.h\nindex dd28b56d27c5..89fef266392f 100644\n--- a/drivers/dpll/dpll_netlink.h\n+++ b/drivers/dpll/dpll_netlink.h\n@@ -8,8 +8,8 @@ int dpll_device_create_ntf(struct dpll_device *dpll);\n \n int dpll_device_delete_ntf(struct dpll_device *dpll);\n \n-int dpll_pin_create_ntf(struct dpll_pin *pin);\n+int dpll_pin_create_ntf(struct dpll_pin *pin, u64 src_clock_id);\n \n-int dpll_pin_delete_ntf(struct dpll_pin *pin);\n+int dpll_pin_delete_ntf(struct dpll_pin *pin, u64 src_clock_id);\n \n int __dpll_pin_change_ntf(struct dpll_pin *pin);\ndiff --git a/include/linux/dpll.h b/include/linux/dpll.h\nindex b7277a8b484d..299cef38b657 100644\n--- a/include/linux/dpll.h\n+++ b/include/linux/dpll.h\n@@ -212,6 +212,7 @@ struct dpll_pin_notifier_info {\n \tu64 clock_id;\n \tconst struct fwnode_handle *fwnode;\n \tconst struct dpll_pin_properties *prop;\n+\tu64 src_clock_id;\n };\n \n #if IS_ENABLED(CONFIG_DPLL)\n","prefixes":["v6","net-next","3/8"]}