get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/2216521/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2216521,
    "url": "http://patchwork.ozlabs.org/api/patches/2216521/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20260326162832.3135857-4-grzegorz.nitka@intel.com/",
    "project": {
        "id": 46,
        "url": "http://patchwork.ozlabs.org/api/projects/46/?format=api",
        "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": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260326162832.3135857-4-grzegorz.nitka@intel.com>",
    "list_archive_url": null,
    "date": "2026-03-26T16:28:27",
    "name": "[v4,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": "e052f47a10d0f7be850c8c89696be2d1ae1f4916",
    "submitter": {
        "id": 82711,
        "url": "http://patchwork.ozlabs.org/api/people/82711/?format=api",
        "name": "Nitka, Grzegorz",
        "email": "grzegorz.nitka@intel.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20260326162832.3135857-4-grzegorz.nitka@intel.com/mbox/",
    "series": [
        {
            "id": 497620,
            "url": "http://patchwork.ozlabs.org/api/series/497620/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/list/?series=497620",
            "date": "2026-03-26T16:28:24",
            "name": "dpll/ice: Add TXC DPLL type and full TX reference clock control for E825",
            "version": 4,
            "mbox": "http://patchwork.ozlabs.org/series/497620/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2216521/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2216521/checks/",
    "tags": {},
    "related": [],
    "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=HTaj9lyu;\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 4fhTpY3BZmz1yGD\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 27 Mar 2026 03:32:53 +1100 (AEDT)",
            "from localhost (localhost [127.0.0.1])\n\tby smtp3.osuosl.org (Postfix) with ESMTP id 1ADB160853;\n\tThu, 26 Mar 2026 16:32:52 +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 953T6jviUDhd; Thu, 26 Mar 2026 16:32:51 +0000 (UTC)",
            "from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142])\n\tby smtp3.osuosl.org (Postfix) with ESMTP id 61ECD60A43;\n\tThu, 26 Mar 2026 16:32:51 +0000 (UTC)",
            "from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n by lists1.osuosl.org (Postfix) with ESMTP id 443A41D3\n for <intel-wired-lan@lists.osuosl.org>; Thu, 26 Mar 2026 16:32:50 +0000 (UTC)",
            "from localhost (localhost [127.0.0.1])\n by smtp4.osuosl.org (Postfix) with ESMTP id 3689D40AE5\n for <intel-wired-lan@lists.osuosl.org>; Thu, 26 Mar 2026 16:32:50 +0000 (UTC)",
            "from smtp4.osuosl.org ([127.0.0.1])\n by localhost (smtp4.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id OAWxf8d3WN64 for <intel-wired-lan@lists.osuosl.org>;\n Thu, 26 Mar 2026 16:32:49 +0000 (UTC)",
            "from mgamail.intel.com (mgamail.intel.com [192.198.163.19])\n by smtp4.osuosl.org (Postfix) with ESMTPS id 49C1740AD2\n for <intel-wired-lan@lists.osuosl.org>; Thu, 26 Mar 2026 16:32:49 +0000 (UTC)",
            "from orviesa007.jf.intel.com ([10.64.159.147])\n by fmvoesa113.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 26 Mar 2026 09:32:48 -0700",
            "from gklab-003-001.igk.intel.com ([10.91.173.48])\n by orviesa007.jf.intel.com with ESMTP; 26 Mar 2026 09:32:44 -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 61ECD60A43",
            "OpenDKIM Filter v2.11.0 smtp4.osuosl.org 49C1740AD2"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=osuosl.org;\n\ts=default; t=1774542771;\n\tbh=uHMJZzmtcaSQw0bQYq9dRaM6t5z2aAw1NjbpJsRYJks=;\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=HTaj9lyuchc9ohqR/P78rRnkGONzPJj9W+YMFU2khg41zrSXDMfpEyTGVMJXcUmfr\n\t eWBPn4WagH6tdqRgt+eXIru3HqQ+Y0XwEhPG8LXErkzBWNC3SfWZie+3wRKYl7n4PR\n\t PZzObzfaqurZ5KK5zvXIcPC9dY/CkyiJIBhZ74Lod9QVlfKkB2EJKXc4orBzjWr4Pv\n\t HHYaBdZz+WzyQkXfFmU5Ay5MDk7riU7gM+3maadA5SK9zxuPS1sE7rhhyu5IlWJMb3\n\t Svmc4DRr1xLnDgi0VWpSIIzQ/3Da6JHEqpUEwfFdOcTD3MejHgO4yCPagqpBVkSlx5\n\t 2SvIhRMjFcDkA==",
        "Received-SPF": "Pass (mailfrom) identity=mailfrom; client-ip=192.198.163.19;\n helo=mgamail.intel.com; envelope-from=grzegorz.nitka@intel.com;\n receiver=<UNKNOWN>",
        "DMARC-Filter": "OpenDMARC Filter v1.4.2 smtp4.osuosl.org 49C1740AD2",
        "X-CSE-ConnectionGUID": [
            "I7Us0bRXTfOKqcyLJGalZw==",
            "P5wfBzOnRNqjHANLEEwfEA=="
        ],
        "X-CSE-MsgGUID": [
            "xsIPUC4eSNuG0ypwVemR3A==",
            "OJIESRsLStekGtbRsc35ng=="
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6800,10657,11741\"; a=\"74636652\"",
            "E=Sophos;i=\"6.23,142,1770624000\"; d=\"scan'208\";a=\"74636652\"",
            "E=Sophos;i=\"6.23,142,1770624000\"; d=\"scan'208\";a=\"225310978\""
        ],
        "X-ExtLoop1": "1",
        "From": "Grzegorz Nitka <grzegorz.nitka@intel.com>",
        "To": "netdev@vger.kernel.org",
        "Date": "Thu, 26 Mar 2026 17:28:27 +0100",
        "Message-Id": "<20260326162832.3135857-4-grzegorz.nitka@intel.com>",
        "X-Mailer": "git-send-email 2.39.3",
        "In-Reply-To": "<20260326162832.3135857-1-grzegorz.nitka@intel.com>",
        "References": "<20260326162832.3135857-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=1774542769; x=1806078769;\n h=from:to:cc:subject:date:message-id:in-reply-to:\n references:mime-version:content-transfer-encoding;\n bh=2Etx+rXvLgn5f8FbpTl8o586ChunxqUzp8NBTbrLv7U=;\n b=TrIwaliCzXXcfwdeXJx4ITyaMqJf2A3MXQWJ3VTw9zjYFs584Ca5W40x\n q/oHpvr0MSOlRKzT9a9l33D7ZePy2C/eWp3rE0Zoeu7mhJZwk/7rXwh/f\n ecctb0OXGhCWxl1/F3AMXXmAl2jfkWHT1Su21snaBvCYRdnxQiFkbmLE4\n OdD73nLkZBGJBSWJQe96BxmcictMAZxUExnEiYAMwUlzMki9HQJxejQ+B\n YPDBuCUn+gjoT7HAvHNXKLU3kM/vdcKJHNrBXjHschPQfKAr/Z8Juw15+\n rozj8kNpfL0jGNKgGe+Rl1PpKl24pnkG50ohshD6VSZZpXV0jga5k7yaK\n A==;",
        "X-Mailman-Original-Authentication-Results": [
            "smtp4.osuosl.org;\n dmarc=pass (p=none dis=none)\n header.from=intel.com",
            "smtp4.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=TrIwaliC"
        ],
        "Subject": "[Intel-wired-lan] [PATCH v4 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    |  2 +-\n drivers/dpll/dpll_netlink.c | 10 +++++-----\n drivers/dpll/dpll_netlink.h |  4 ++--\n include/linux/dpll.h        |  1 +\n 5 files changed, 17 insertions(+), 14 deletions(-)",
    "diff": "diff --git a/drivers/dpll/dpll_core.c b/drivers/dpll/dpll_core.c\nindex 55ad03977d6d..c7fcae76c3f5 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 ntfy_src,\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_id = ntfy_src,\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@@ -946,7 +948,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@@ -992,7 +994,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@@ -1003,7 +1005,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@@ -1029,7 +1031,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..f684d9d4c4da 100644\n--- a/drivers/dpll/dpll_core.h\n+++ b/drivers/dpll/dpll_core.h\n@@ -98,6 +98,6 @@ 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 ntfy_src, unsigned long action);\n \n #endif\ndiff --git a/drivers/dpll/dpll_netlink.c b/drivers/dpll/dpll_netlink.c\nindex 83cbd64abf5a..afb778420b93 100644\n--- a/drivers/dpll/dpll_netlink.c\n+++ b/drivers/dpll/dpll_netlink.c\n@@ -830,21 +830,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 ntfy_src)\n {\n-\tdpll_pin_notify(pin, DPLL_PIN_CREATED);\n+\tdpll_pin_notify(pin, ntfy_src, 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 ntfy_src)\n {\n-\tdpll_pin_notify(pin, DPLL_PIN_DELETED);\n+\tdpll_pin_notify(pin, ntfy_src, 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..082c2aea6d1a 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 ntfy_src);\n \n-int dpll_pin_delete_ntf(struct dpll_pin *pin);\n+int dpll_pin_delete_ntf(struct dpll_pin *pin, u64 ntfy_src);\n \n int __dpll_pin_change_ntf(struct dpll_pin *pin);\ndiff --git a/include/linux/dpll.h b/include/linux/dpll.h\nindex 2ce295b46b8c..ae4b146d7243 100644\n--- a/include/linux/dpll.h\n+++ b/include/linux/dpll.h\n@@ -202,6 +202,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_id;\n };\n \n #if IS_ENABLED(CONFIG_DPLL)\n",
    "prefixes": [
        "v4",
        "net-next",
        "3/8"
    ]
}