Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2227414/?format=api
{ "id": 2227414, "url": "http://patchwork.ozlabs.org/api/patches/2227414/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-pci/patch/20260423163824.2719927-1-mnissler@meta.com/", "project": { "id": 28, "url": "http://patchwork.ozlabs.org/api/projects/28/?format=api", "name": "Linux PCI development", "link_name": "linux-pci", "list_id": "linux-pci.vger.kernel.org", "list_email": "linux-pci@vger.kernel.org", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260423163824.2719927-1-mnissler@meta.com>", "list_archive_url": null, "date": "2026-04-23T16:38:24", "name": "PCI/EDR: Support EDR_PORT_DPC_ENABLE_DSM Revision ID 5", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "0f161f5b6baa6b04dadddf4c1f79eade7de37f41", "submitter": { "id": 93169, "url": "http://patchwork.ozlabs.org/api/people/93169/?format=api", "name": "Mattias Nissler", "email": "mnissler@meta.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/linux-pci/patch/20260423163824.2719927-1-mnissler@meta.com/mbox/", "series": [ { "id": 501222, "url": "http://patchwork.ozlabs.org/api/series/501222/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-pci/list/?series=501222", "date": "2026-04-23T16:38:24", "name": "PCI/EDR: Support EDR_PORT_DPC_ENABLE_DSM Revision ID 5", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/501222/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2227414/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2227414/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "\n <linux-pci+bounces-53054-incoming=patchwork.ozlabs.org@vger.kernel.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "linux-pci@vger.kernel.org" ], "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=meta.com header.i=@meta.com header.a=rsa-sha256\n header.s=s2048-2025-q2 header.b=qb5LMIbJ;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c15:e001:75::12fc:5321; helo=sin.lore.kernel.org;\n envelope-from=linux-pci+bounces-53054-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)", "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=meta.com header.i=@meta.com\n header.b=\"qb5LMIbJ\"", "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=67.231.145.42", "smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=meta.com", "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=meta.com" ], "Received": [ "from sin.lore.kernel.org (sin.lore.kernel.org\n [IPv6:2600:3c15:e001:75::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g1j8Y3yhqz1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 03:03:09 +1000 (AEST)", "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sin.lore.kernel.org (Postfix) with ESMTP id 08A5130665C7\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 23 Apr 2026 16:39:40 +0000 (UTC)", "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id A0F28383C9D;\n\tThu, 23 Apr 2026 16:39:34 +0000 (UTC)", "from mx0a-00082601.pphosted.com (mx0a-00082601.pphosted.com\n [67.231.145.42])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id DEC253368AA\n\tfor <linux-pci@vger.kernel.org>; Thu, 23 Apr 2026 16:39:32 +0000 (UTC)", "from pps.filterd (m0528008.ppops.net [127.0.0.1])\n\tby mx0a-00082601.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 63NFl4Vu3925924;\n\tThu, 23 Apr 2026 09:39:30 -0700", "from mail.thefacebook.com ([163.114.134.16])\n\tby mx0a-00082601.pphosted.com (PPS) with ESMTPS id 4dpepbwy52-2\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT);\n\tThu, 23 Apr 2026 09:39:29 -0700 (PDT)", "from localhost (2620:10d:c085:208::f) by mail.thefacebook.com\n (2620:10d:c08b:78::c78f) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.37; Thu, 23 Apr\n 2026 16:39:28 +0000" ], "ARC-Seal": "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776962374; cv=none;\n b=gvWXmVX84IPd3aSxlE0CSujq5C9OjsQ2UxL6MmN9vyxTt7LlPkG9dQ+noGZuyy6HKE1sZvCbdIGbs2Vwn8lqNkYFA4R9UjTtVsqg45evKE8MBsmtihOjcyXJCAd87XOzwUEr8MvY6OTVXyFRkhuFdwtTNVKQ0wMXXzB8xMGTD+g=", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776962374; c=relaxed/simple;\n\tbh=GViVcwn+usWZpdsGAlpdSgcYeNdI3UPMett5ODt2vkU=;\n\th=From:To:CC:Subject:Date:Message-ID:MIME-Version:Content-Type;\n b=XP/HmK6s/8m1ntRFT9NGwyQ3znwtHeJZN5+Y/v4KSTg4Ve0U2WwEkwFlDE9O17iSpTY3OU2qmfE/39V2a3tftVlG7PLwNEkd1C/AG+Z8XozIJvG8nO00JVHMlqHtZMIhxaXSD0hQYiDobz8ccZUDroHW71As9ATQ8rMRbPGd3jE=", "ARC-Authentication-Results": "i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=meta.com;\n spf=pass smtp.mailfrom=meta.com;\n dkim=pass (2048-bit key) header.d=meta.com header.i=@meta.com\n header.b=qb5LMIbJ; arc=none smtp.client-ip=67.231.145.42", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=meta.com; h=cc\n\t:content-transfer-encoding:content-type:date:from:message-id\n\t:mime-version:subject:to; s=s2048-2025-q2; bh=EFqeliISL3HH7UUyFY\n\tct0gI6YTPTrqub6g2c5nJ7u2M=; b=qb5LMIbJMyAfvp4PH57NRhDzVqPm/YKxfn\n\tquNdrXi1iaGEKLW3ntYnMN6Of5TCFjzVW78Ip6x/ASNICIitPWEzn6yolxh6o6IF\n\tAlKOG/HW3/SEpich50nuun9kV4e1oqfkKCsHrhSUgSJTfgPkZ6sIqfq1T6OlL5CT\n\tElN+Hw+8ZFSHGRd/DeIh6AIkZBx5ZX8jiJMS6xMBp0i493utLjeVR9yFp2HXl+/t\n\t3DMOOzzr3YcPiFiHrTYVvJkxxl5xmD0MhNEhVWYjdNwMlRn1qx454Ulqvhmq9kZ4\n\tPluGgJk2feHdZ73WJCthntFcLbMSB4U9prjgeUVATXHiEKA1mHGQ==", "From": "Mattias Nissler <mnissler@meta.com>", "To": "Bjorn Helgaas <bhelgaas@google.com>, <linux-pci@vger.kernel.org>", "CC": "Mattias Nissler <mnissler@meta.com>,\n Kuppuswamy Sathyanarayanan\n\t<sathyanarayanan.kuppuswamy@linux.intel.com>", "Subject": "[PATCH] PCI/EDR: Support EDR_PORT_DPC_ENABLE_DSM Revision ID 5", "Date": "Thu, 23 Apr 2026 09:38:24 -0700", "Message-ID": "<20260423163824.2719927-1-mnissler@meta.com>", "X-Mailer": "git-send-email 2.52.0", "Precedence": "bulk", "X-Mailing-List": "linux-pci@vger.kernel.org", "List-Id": "<linux-pci.vger.kernel.org>", "List-Subscribe": "<mailto:linux-pci+subscribe@vger.kernel.org>", "List-Unsubscribe": "<mailto:linux-pci+unsubscribe@vger.kernel.org>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Content-Type": "text/plain", "X-Proofpoint-GUID": "3XhLyAMaNaVPh3yqxsEjE0JUK3srUL3G", "X-Proofpoint-Spam-Details-Enc": "AW1haW4tMjYwNDIzMDE2NSBTYWx0ZWRfX9C15ryby4Pwy\n H121KjXAHJeczuqeHPvRDFhExNPdFcm/K0CoMCEXagNa7arWU+z2uoVNoBvahAgnqN0f82kVcIH\n Z5mUuF0UpI7OUTefJy8hdj4Wim4hZWst5q+CKeYqQerFK/Z531OcEY4IBVcD9BRPqpLmUkDJ76i\n ESLnp9TZi3aUiZCRnAzT+qoFv9NuDs5hp3CSg4Z4ZxqvT2V0iUM3biyV9cVmYYlhaYxvcftp2G/\n 3wAkFsnuSqH7cjKgVs3zv6iqS9pVKEwOIhb2pGJwMx0+1WupbTb5NO+wbH/CkDoq0V0zOmz6jHc\n pOzyWP8Dj4em/a8P/soW/KL1kb4rGX16lKv/YCSaDAhaAxdlcCLVWMg3pQHrHwjDL9bGF9cH8gZ\n UctBtLbjRFoXgfZ50LZljdXWLWnpyfpZpVH1dkhyOeuBAzOO8pnH5hRPG7DSGW6/ixkRBDZPvYT\n i9PNV9XJ5NwvwZ6HCfw==", "X-Proofpoint-ORIG-GUID": "3XhLyAMaNaVPh3yqxsEjE0JUK3srUL3G", "X-Authority-Analysis": "v=2.4 cv=ap6CzyZV c=1 sm=1 tr=0 ts=69ea4b41 cx=c_pps\n a=CB4LiSf2rd0gKozIdrpkBw==:117 a=CB4LiSf2rd0gKozIdrpkBw==:17\n a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=7x6HtfJdh03M6CCDgxCd:22\n a=_1IyUuN4QrATX339ibzo:22 a=VabnemYjAAAA:8 a=QyXUC8HyAAAA:8\n a=BBbe4nR--wp83Su4mewA:9 a=gKebqoRLp9LExxC7YDUY:22", "X-Proofpoint-Virus-Version": "vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-04-23_03,2026-04-21_02,2025-10-01_01" }, "content": "Commit f24ba846133d (\"PCI/EDR: Align EDR_PORT_DPC_ENABLE_DSM with PCI\nFirmware r3.3\") updated the code to adhere to the\nEDR_PORT_DPC_ENABLE_DSM interface as defined in v3.3 of the PCI Firmware\nSpecification. This DSM was originally proposed in EDN 12888 under a\ndifferent Revision ID and with differing parameter type for Arg3. It\nturns out that there are BIOSes in production that only implement\nRevision ID 5, so we're re-adding support for that.\n\nSigned-off-by: Mattias Nissler <mnissler@meta.com>\ncc: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>\n---\nThis patch deserves a bit of commentary, as I'm not really sure whether\nit should get applied or not. In fact I can see arguments either way.\n\nOn the one hand, BIOSes are supposed to implement what is standardized\nin the PCI firmware specification, and supporting random\npre-standardization variants adds unnecessary baggage to the kernel code\nand reduces incentive to implement support for the standardized version.\n\nOn the other hand, the text in the standard explicitly calls out the ECN\nthat defines revision 5. Furthermore, there's a chance that there are\nmachines out there which only support revision 5. At Meta, we recently\ncame across such a platform. Fortunately, we do have the ability to\nupgrade the BIOS with revision 6 support, but I would expect that this\nis more the exception than the rule for users in general.\n\nBottom line: I'm posting this in case it is helpful to others, and to\nprompt consideration/discussion as to whether to apply or not.\n---\n drivers/pci/pcie/edr.c | 40 ++++++++++++++++++++++++++--------------\n 1 file changed, 26 insertions(+), 14 deletions(-)", "diff": "diff --git a/drivers/pci/pcie/edr.c b/drivers/pci/pcie/edr.c\nindex e86298dbbcff..e5cedd41be04 100644\n--- a/drivers/pci/pcie/edr.c\n+++ b/drivers/pci/pcie/edr.c\n@@ -28,26 +28,38 @@\n static int acpi_enable_dpc(struct pci_dev *pdev)\n {\n \tstruct acpi_device *adev = ACPI_COMPANION(&pdev->dev);\n-\tunion acpi_object *obj, argv4, req;\n+\tunion acpi_object *obj, *arg3, pkg, req;\n \tint status = 0;\n-\n-\t/*\n-\t * Per PCI Firmware r3.3, sec 4.6.12, EDR_PORT_DPC_ENABLE_DSM is\n-\t * optional. Return success if it's not implemented.\n-\t */\n-\tif (!acpi_check_dsm(adev->handle, &pci_acpi_dsm_guid, 6,\n-\t\t\t 1ULL << EDR_PORT_DPC_ENABLE_DSM))\n-\t\treturn 0;\n+\tu64 rev = 0;\n \n \treq.type = ACPI_TYPE_INTEGER;\n \treq.integer.value = 1;\n \n-\targv4.type = ACPI_TYPE_PACKAGE;\n-\targv4.package.count = 1;\n-\targv4.package.elements = &req;\n+\tpkg.type = ACPI_TYPE_PACKAGE;\n+\tpkg.package.count = 1;\n+\tpkg.package.elements = &req;\n+\n+\t/*\n+\t * EDR_PORT_DPC_ENABLE_DSM is defined in PCI Firmware r3.3, sec 4.6.12.\n+\t * Revision ID 6 is the variant that appears in the spec, Revision ID 5\n+\t * corresponds to the variant defined in ECN #12888, known to be\n+\t * implemented in some platforms.\n+\t */\n+\tif (acpi_check_dsm(adev->handle, &pci_acpi_dsm_guid, 6,\n+\t\t\t 1ULL << EDR_PORT_DPC_ENABLE_DSM)) {\n+\t\trev = 6;\n+\t\targ3 = &pkg;\n+\t} else if (acpi_check_dsm(adev->handle, &pci_acpi_dsm_guid, 5,\n+\t\t\t\t 1ULL << EDR_PORT_DPC_ENABLE_DSM)) {\n+\t\trev = 5;\n+\t\targ3 = &req;\n+\t} else {\n+\t\t/* Return success if not implemented. */\n+\t\treturn 0;\n+\t}\n \n-\tobj = acpi_evaluate_dsm(adev->handle, &pci_acpi_dsm_guid, 6,\n-\t\t\t\tEDR_PORT_DPC_ENABLE_DSM, &argv4);\n+\tobj = acpi_evaluate_dsm(adev->handle, &pci_acpi_dsm_guid, rev,\n+\t\t\t\tEDR_PORT_DPC_ENABLE_DSM, arg3);\n \tif (!obj)\n \t\treturn 0;\n \n", "prefixes": [] }