{"id":2198042,"url":"http://patchwork.ozlabs.org/api/1.0/patches/2198042/?format=json","project":{"id":28,"url":"http://patchwork.ozlabs.org/api/1.0/projects/28/?format=json","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},"msgid":"<20260219064511.695086-3-a-garg7@ti.com>","date":"2026-02-19T06:45:11","name":"[v2,2/2] PCI: dwc: ep: Mirror the max link width and speed fields to all functions","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"58973f26521f876c2f907e8466e46d3e52a32e74","submitter":{"id":92467,"url":"http://patchwork.ozlabs.org/api/1.0/people/92467/?format=json","name":"Aksh Garg","email":"a-garg7@ti.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-pci/patch/20260219064511.695086-3-a-garg7@ti.com/mbox/","series":[{"id":492644,"url":"http://patchwork.ozlabs.org/api/1.0/series/492644/?format=json","date":"2026-02-19T06:45:10","name":"PCI: dwc: ep: Multi-function endpoint configuration fixes","version":2,"mbox":"http://patchwork.ozlabs.org/series/492644/mbox/"}],"check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2198042/checks/","tags":{},"headers":{"Return-Path":"\n <linux-pci+bounces-47609-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 (1024-bit key;\n unprotected) header.d=ti.com header.i=@ti.com header.a=rsa-sha256\n header.s=selector1 header.b=h3wGRqnM;\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-47609-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (1024-bit key) header.d=ti.com header.i=@ti.com header.b=\"h3wGRqnM\"","smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=40.107.208.29","smtp.subspace.kernel.org;\n dmarc=pass (p=quarantine dis=none) header.from=ti.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=ti.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 4fGkRP0bMkz1xpY\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 19 Feb 2026 17:45:53 +1100 (AEDT)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sin.lore.kernel.org (Postfix) with ESMTP id 429D23004069\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 19 Feb 2026 06:45:49 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 1867730DEDC;\n\tThu, 19 Feb 2026 06:45:48 +0000 (UTC)","from PH0PR06CU001.outbound.protection.outlook.com\n (mail-westus3azon11011029.outbound.protection.outlook.com [40.107.208.29])\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 BF95E27AC4D;\n\tThu, 19 Feb 2026 06:45:46 +0000 (UTC)","from SJ0PR05CA0025.namprd05.prod.outlook.com (2603:10b6:a03:33b::30)\n by CO6PR10MB5618.namprd10.prod.outlook.com (2603:10b6:303:149::15) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.16; Thu, 19 Feb\n 2026 06:45:44 +0000","from SJ1PEPF000023DA.namprd21.prod.outlook.com\n (2603:10b6:a03:33b:cafe::9e) by SJ0PR05CA0025.outlook.office365.com\n (2603:10b6:a03:33b::30) with Microsoft SMTP Server (version=TLS1_3,\n cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.15 via Frontend Transport; Thu,\n 19 Feb 2026 06:45:44 +0000","from flwvzet200.ext.ti.com (198.47.21.194) by\n SJ1PEPF000023DA.mail.protection.outlook.com (10.167.244.75) with Microsoft\n SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.9654.0 via Frontend Transport; Thu, 19 Feb 2026 06:45:42 +0000","from DFLE203.ent.ti.com (10.64.6.61) by flwvzet200.ext.ti.com\n (10.248.192.31) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Thu, 19 Feb\n 2026 00:45:28 -0600","from DFLE207.ent.ti.com (10.64.6.65) by DFLE203.ent.ti.com\n (10.64.6.61) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Thu, 19 Feb\n 2026 00:45:27 -0600","from lelvem-mr05.itg.ti.com (10.180.75.9) by DFLE207.ent.ti.com\n (10.64.6.65) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20 via Frontend\n Transport; Thu, 19 Feb 2026 00:45:27 -0600","from a0507033-hp.dhcp.ti.com (a0507033-hp.dhcp.ti.com\n [172.24.231.225])\n\tby lelvem-mr05.itg.ti.com (8.18.1/8.18.1) with ESMTP id 61J6jDwj2156628;\n\tThu, 19 Feb 2026 00:45:23 -0600"],"ARC-Seal":["i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1771483548; cv=fail;\n b=DOGEBg8AgOqV1oFQFGNswt4xyeeo7wI/pU1WrO0Z/UEfQpfpV1UhblVSR7kzr//prwKtJaODKKBKS+eWUH0MTAHv8n/uL+YYWkEWThRSXJioP/0ZTQ8BAno2GX+BNH0sqOs5bdPTdf/cbdZNi9wyhY2XDiBUkRAZmrjedKvNLwI=","i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=h+w5RjGCUODwDEcl0y8gkCuZXIB581276yvHP71Ne9Pkt/8zIlLOTtpe3vTpD8MP428wlM9510GBIF2sakcDAvM0yMInqma6euZ7d+JgU+OR1H2KXeZb6B/R2pG9xMfVyhlzb9JpXliI2QQYq2/LJvEowclPTT2vbstGImdp7SJAGgw0f8CbTCXyCusKt0/GxDW+weP2cK1dtvmi7KjX0bpzaa2ozwmzUE52ij0k6o2kdze2pf5yJ7yVwDX8linsfTQI4cIwBrBHcMlljPxcIzWJZpxWcP7ytF9+N9//QRl2pJABKLDSBkrzJRztDR60eP2Ei3nhS5fOeRfAphcC2Q=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1771483548; c=relaxed/simple;\n\tbh=xsYNTREu9XK3WQjh2Lq83Ktq3LCfEwssbqo4xN1HdrI=;\n\th=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version:Content-Type;\n b=hGOo9cG43+QE1jNNXSWEDlwFkszxkg6acJyKlEdpocaVCGSO3Vypou6k9WkO48LWn5YWB7tAIPf8RIs8SL0WKL2ck7DEGFp4D9/z0hAypkjcVBBPQUvlJf1UjTT/PG2dgMYiLqnlgc8WsYWtP5F2pWM6lddwhpuBcu2J9Qox4XQ=","i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=633mlxtij+R8xduUUkojgXALF8t1UJjnfskKkEq4VWU=;\n b=JNrI4KM+CnPAmztgzpiJ6/IVK5G7xRt7Z11E7UW24PeBD6yDCOJP5wmT7QQLUgWMfClR0wNyMauHni4nx1Ml/WoiI4rLVm1ZjVabgD4lzXlfEYPPqDEEs0SJw2PSdTrCe+EZ/2NYxDEOfcw2AdvxKrnfLGIPovvLtMOAcF7j2HZKNCSWGwei89wTx/Vvdybv0O6D/ZM+s6p4+1jZgLv03Uo/57toi6oJx/ZgYCXIO1w9wepQKfWetljAP/7qMw0P01CNPje/YZSqQehwERNVVuHjyl+c/6Lp9EUAy2NolTQS8KE7FflRTpFKtlzk3dT6iIHTfvTLmF4SNvWWpzkxlg=="],"ARC-Authentication-Results":["i=2; smtp.subspace.kernel.org;\n dmarc=pass (p=quarantine dis=none) header.from=ti.com;\n spf=pass smtp.mailfrom=ti.com;\n dkim=pass (1024-bit key) header.d=ti.com header.i=@ti.com header.b=h3wGRqnM;\n arc=fail smtp.client-ip=40.107.208.29","i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 198.47.21.194) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=ti.com;\n dmarc=pass (p=quarantine sp=none pct=100) action=none header.from=ti.com;\n dkim=none (message not signed); arc=none (0)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=633mlxtij+R8xduUUkojgXALF8t1UJjnfskKkEq4VWU=;\n b=h3wGRqnMy9tIHJFIZ4VhIxkhtwGtf50qi7BM+f13kiZew4rG9NfLPRqD9vCUfULLXmfOvNXIN0U9P6gR3VJ1T6vvn44LnUH6n5d3ySyMeCeACvBBYeExVlvPtEB1Pi5GEV78lvht81+v7M5nFmJsbl8bzulowPe0MUeoCuy1G6o=","X-MS-Exchange-Authentication-Results":"spf=pass (sender IP is 198.47.21.194)\n smtp.mailfrom=ti.com; dkim=none (message not signed) header.d=none;dmarc=pass\n action=none header.from=ti.com;","Received-SPF":"Pass (protection.outlook.com: domain of ti.com designates\n 198.47.21.194 as permitted sender) receiver=protection.outlook.com;\n client-ip=198.47.21.194; helo=flwvzet200.ext.ti.com; pr=C","From":"Aksh Garg <a-garg7@ti.com>","To":"<linux-pci@vger.kernel.org>, <jingoohan1@gmail.com>, <mani@kernel.org>,\n\t<lpieralisi@kernel.org>, <kwilczynski@kernel.org>, <robh@kernel.org>,\n\t<bhelgaas@google.com>, <yoshihiro.shimoda.uh@renesas.com>,\n\t<fancer.lancer@gmail.com>, <Zhiqiang.Hou@nxp.com>,\n\t<gustavo.pimentel@synopsys.com>, <cassel@kernel.org>","CC":"<linux-kernel@vger.kernel.org>, <s-vadapalli@ti.com>,\n\t<danishanwar@ti.com>, Aksh Garg <a-garg7@ti.com>","Subject":"[PATCH v2 2/2] PCI: dwc: ep: Mirror the max link width and speed\n fields to all functions","Date":"Thu, 19 Feb 2026 12:15:11 +0530","Message-ID":"<20260219064511.695086-3-a-garg7@ti.com>","X-Mailer":"git-send-email 2.34.1","In-Reply-To":"<20260219064511.695086-1-a-garg7@ti.com>","References":"<20260219064511.695086-1-a-garg7@ti.com>","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-C2ProcessedOrg":"333ef613-75bf-4e12-a4b1-8e3623f5dcea","X-EOPAttributedMessage":"0","X-MS-PublicTrafficType":"Email","X-MS-TrafficTypeDiagnostic":"SJ1PEPF000023DA:EE_|CO6PR10MB5618:EE_","X-MS-Office365-Filtering-Correlation-Id":"c9e5b5fe-4d4c-40b5-e26d-08de6f8280d2","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"\n\tBCL:0;ARA:13230040|82310400026|36860700013|376014|7416014|1800799024|921020;","X-Microsoft-Antispam-Message-Info":"\n zDQQKEBlh6vEVSi899VsBrkkYF1STIDZ7y906LqSlHNHlT2BOPyLlWk/N9MpPRuAfYPQh9sIODiqGOtwDXG2XCMltMEJxr9gTf0g8IytOxs7OHcMfXKQjw32rSJuTClwebM5vX1lnLEw/IgDvW/Y7aQIRkfiJWWiUgm84IPdJwqtwFnX4InEsk6DOfLBklhI9uBb4NeWIVn1KQOXGm2EnspX+HKILeT8z27QKwl6UjUGOkeFprUxHC6123g4IBHZR2F6verj7fKL5lAdcW0NvuG1DJ3nJjpGct1JrSDkKC58PjMkS0QE1oh3fReHmtBUtKctBWSTnq7BW7TxJLPiMGR3UcCeGJPB16NuE4WsrErJafarI605/0hN/6Pf5ge2KHOlzjNrVzSm9iQ5+InBG6NUN6e98V95rGKVY0KdSilYPcaW3bp7fMtX7UwwX0ifidklhXVBDq9KfnaLqsYSaserDYWC2ql919Q7uRw9VwvaTToqb/fgPQL/EfkIBG8e0CSyDb+ToTDj3hPyqQKpqcruv3L7QoCQaq/+Lo0wbOqiu+gsFlcx8ZaOeFwiGzFcycKF13nmp6yDnOBYwidSR1a4DhbMHvDok3I+DPsidNYhrvLGEnfqIgrxC8/Cl2aRtaLlA+gK5OYJ9si1A95dmWVI0nFXQZrLXmhNbBMpjtCW7Ve/t2l+Tej1mbsJQgblfsJXTmPPABvI67qybUcp6PUTAKiiCLHloDub3SJRPBvaiWWAzgQRHU+57gyO9th3e+i0ZyyRwVeyAmtc9pH4L01pSQAhEKrff2ImpVP6EWPkvQrvAhFMz54oqxGJvLU1rolvEtdQazyZZAfnURBjzNWt8EYgGUR4dw/aq+pVuo4vIoBaryE618WY+yz+hZmE+yvsxb7LPW9mgN+duMXyVaSvJ4XIvm4kqIl4xswf4pPx2Sretw1iwg6MELw0OsO1O011cLXdXy5kv3pzbuCmZIoJxpjTFpC+BNgemlORkxb74jZSHb5BoK45ieAIfH5J1gPq0Y+82JzyU5MHh9NYe73JmSdGYCDGF0rMJduczFSc6G5soAShUPzpJqJ51xSGdLVJiBN8ieN3iI1JTJv6/i0tdq9brm8pSt+2HDyrUE0cNcNmN3jTzHU1pZ4oFb2qI10B2ZIO9N3TuFUqh+sARfZyefXaqp5RwECFDfCJ03++jfiAGyWlkGHd4Js/d6U9yH3rIW7zaCqy3/OUf0m6S9BI6dRRDFgyE4aiaQXygl6ACC/j7WEb2liJIvjC4URjlNRn02AiGXrjFBI2W7oMYXJJI2YnUD6du0ZMBIpuFbtZQ2JXG9DIJ8hPE0st9XQ/Ti95txxAhAJ6uJlkBdd+5HGA13akTlU7oQyRKr+Ycf6fv1bTRUluIHPv8KH6jGF8+TqwRKzj8gR5E5K2aKMka866AjLb/kT1hoNDAeP4QBEvRePhm5QzNG2t6hj4rWvbC/9abC1RYs4GoDYWx64OhF79vea94NaL4LCyaNMvwSt+Gowgi5gRWqsbYqojJwu5y1HZnKw0TrhnskULPZU5vHTITY/lbPzvDZFOKkDyxeRLXZWrbzkJEeGswDFOBNLozZBPrDLRPb+CZikH4vKKEnyFqjvNOTAH1hglsCisojAitEu/P0OJXxdC/llsOrNUbbaL7zGulxr4+NDSfDik151go85RhDVPtHGFX0/4dk8=","X-Forefront-Antispam-Report":"\n\tCIP:198.47.21.194;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:flwvzet200.ext.ti.com;PTR:ErrorRetry;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(376014)(7416014)(1800799024)(921020);DIR:OUT;SFP:1101;","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"\n\tNZSXdUzBP4XaEvjpyO4irsxnWJnlQDWNPW8WAUHIcjcQdcD3pKRhzJb2xucL6r2aTrIskIvgnDuEzxZSlinUPxW87UrNc0idwcfioPmlICFpYUjXOEo7btXj+eTpLrmrP5YaUyDfXOoVQP5TxvnGdbv9VhX0F9ixwriqgTQqEerkl96T+nibDwEhsyvEPfG356vkrlupMb+UGK9q/WHqTtqO2sgZ7iNtzInlfRv+2wJmvWUPKo+D5ls4wHfd/FZV+PQd+BWmVqCyeAwXP/v4xSf+RKRMgZ/NcvXCDlFH8Q9Q1+9+FWgAxhcXIhPvCefXxWrFcT4fTeXxMjhFg63pynqf8dq61HTGSPzKz+sbCfmFQxKR0fAdHTAtYNk5XB+rZILEc5CbsYdRxNErVkpN/NBNxzRYIpMF6Ascg5hLL0l6NjkpYJvR1HgxDLuMxwvr","X-OriginatorOrg":"ti.com","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"19 Feb 2026 06:45:42.9648\n (UTC)","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n c9e5b5fe-4d4c-40b5-e26d-08de6f8280d2","X-MS-Exchange-CrossTenant-Id":"e5b49634-450b-4709-8abb-1e2b19b982b7","X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp":"\n TenantId=e5b49634-450b-4709-8abb-1e2b19b982b7;Ip=[198.47.21.194];Helo=[flwvzet200.ext.ti.com]","X-MS-Exchange-CrossTenant-AuthSource":"\n\tSJ1PEPF000023DA.namprd21.prod.outlook.com","X-MS-Exchange-CrossTenant-AuthAs":"Anonymous","X-MS-Exchange-CrossTenant-FromEntityHeader":"HybridOnPrem","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"CO6PR10MB5618"},"content":"PCIe r6.0, section 7.5.3.6 states that for multi-function devices, the\nMax Link Width and Max Link Speed fields in the Link Capabilities\nRegister must report the same values for all functions.\n\nCurrently, dw_pcie_setup() programs these fields only for physical\nfunction 0 (PF0) via dw_pcie_link_set_max_speed() and\ndw_pcie_link_set_max_link_width(). For multi-function endpoint\nconfigurations, PF1 and beyond retain their default values, violating\nthe PCIe specification.\n\nFix this by reading the Max Link Width and Max Link Speed fields from\nPF0's Link Capabilities Register after dw_pcie_setup() completes,\nthen mirroring these values to all other physical functions.\n\nFixes: 24ede430fa49 (\"PCI: designware-ep: Add multiple PFs support for DWC\")\nFixes: 89db0793c9f2 (\"PCI: dwc: Add missing PCI_EXP_LNKCAP_MLW handling\")\nSigned-off-by: Aksh Garg <a-garg7@ti.com>\n---\n\nThe link speed and width would be negotiated through PF0 during\ninitialization that controls the link behaviour, hence it didn't broke\nthe driver. However, the change is proposed just to make the driver\ncompatible with the PCIe base specifications.\n\nThe fix is implemented in pcie-designware-ep.c rather than modifying\ndw_pcie_setup() directly to keep pcie-designware.c independent of RC/EP\nspecifics and maintain it as common code.\n\nChanges from v1 to v2:\n- Used FIELD_* macros\n\nv1: https://lore.kernel.org/all/20260202072758.101845-3-a-garg7@ti.com/\n\n .../pci/controller/dwc/pcie-designware-ep.c   | 23 ++++++++++++++++++-\n 1 file changed, 22 insertions(+), 1 deletion(-)","diff":"diff --git a/drivers/pci/controller/dwc/pcie-designware-ep.c b/drivers/pci/controller/dwc/pcie-designware-ep.c\nindex 771241e1a2c9..6b9f90810fec 100644\n--- a/drivers/pci/controller/dwc/pcie-designware-ep.c\n+++ b/drivers/pci/controller/dwc/pcie-designware-ep.c\n@@ -1094,7 +1094,8 @@ static void dw_pcie_ep_init_non_sticky_registers(struct dw_pcie *pci)\n {\n \tstruct dw_pcie_ep *ep = &pci->ep;\n \tu8 funcs = ep->epc->max_functions;\n-\tu8 func_no;\n+\tu32 ref_lnkcap, lnkcap;\n+\tu8 func_no, offset;\n \n \tdw_pcie_dbi_ro_wr_en(pci);\n \n@@ -1102,6 +1103,26 @@ static void dw_pcie_ep_init_non_sticky_registers(struct dw_pcie *pci)\n \t\tdw_pcie_ep_init_rebar_registers(ep, func_no);\n \n \tdw_pcie_setup(pci);\n+\n+\t/*\n+\t * PCIe r6.0, section 7.5.3.6 states that for multi-function endpoints,\n+\t * max link width and speed fields must report same values for all functions.\n+\t * However, dw_pcie_setup() programs these fields only for physical function 0.\n+\t * Hence, mirror these fields to all other physical functions as well.\n+\t */\n+\tif (funcs > 1) {\n+\t\toffset = dw_pcie_find_capability(pci, PCI_CAP_ID_EXP);\n+\t\tref_lnkcap = dw_pcie_readl_dbi(pci, offset + PCI_EXP_LNKCAP);\n+\t\tref_lnkcap = FIELD_GET(PCI_EXP_LNKCAP_MLW | PCI_EXP_LNKCAP_SLS, ref_lnkcap);\n+\n+\t\tfor (func_no = 1; func_no < funcs; func_no++) {\n+\t\t\toffset = dw_pcie_ep_find_capability(ep, func_no, PCI_CAP_ID_EXP);\n+\t\t\tlnkcap = dw_pcie_ep_readl_dbi(ep, func_no, offset + PCI_EXP_LNKCAP);\n+\t\t\tFIELD_MODIFY(PCI_EXP_LNKCAP_MLW | PCI_EXP_LNKCAP_SLS, &lnkcap, ref_lnkcap);\n+\t\t\tdw_pcie_ep_writel_dbi(ep, func_no, offset + PCI_EXP_LNKCAP, lnkcap);\n+\t\t}\n+\t}\n+\n \tdw_pcie_dbi_ro_wr_dis(pci);\n }\n \n","prefixes":["v2","2/2"]}