From nobody Sun Jun 14 20:21:59 2026 Received: from m16.mail.163.com (m16.mail.163.com [220.197.31.3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 93FD4372B3B; Tue, 7 Apr 2026 13:06:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=220.197.31.3 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775567162; cv=none; b=J/at1MzhuZ9FpTcvhdH4KuoB+UiApv/OnaC13l9TYzMZkVhN1iUNHU5+A1gArM8Sw3Xg227RNToPbNN/ly7soJ76DWleq1fo/OiUk2LfM++eTVpeui9DkGNvzmZAcobA4FWIERNp4Sjwqbd0/H7nOB0khlLrPOHnJMz9WNUohws= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775567162; c=relaxed/simple; bh=7yrnFa4LypoWmyLoJMHns6rimbkNQJbTMh4i9gJyCN0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=WbTojsMME2184KGnI6yq4riZ+wiFwsvC7NFCXlYCg7+M+i+f86kDY3QFjg8IGj0GMu/4DKWArNaq/cnt2oGwUidhUrQVkkRzgF6bI2fmfePi45hULeDcWkD67Pp2YREREz+2mlOkcTq4YiyNaC+iAqsKUVL5LSfgJ8ew6gO8evQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=163.com; spf=pass smtp.mailfrom=163.com; dkim=pass (1024-bit key) header.d=163.com header.i=@163.com header.b=J4SjkdJf; arc=none smtp.client-ip=220.197.31.3 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=163.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=163.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=163.com header.i=@163.com header.b="J4SjkdJf" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:To:Subject:Date:Message-Id:MIME-Version; bh=7A g8f/lEAoiqX1Hou+dDPidModpR0G2RIZx73bt52bU=; b=J4SjkdJfZXT9nyIXX9 FzTogPSRsDe/ZJT0i22ZzulGrs9WwKEM36R/Ns2V07peHM5iEUqyBtsMk2AlLxIq MPow0ZyDyHkwr18SofHxEsQNeFQAgxzrMNfWpL3je06XZLi6QOqJgreuWOTyyH5L iINLoi3o8eJpLGfJz/ssPV7O4= Received: from Precision-7960.. (unknown []) by gzga-smtp-mtada-g1-1 (Coremail) with SMTP id _____wC33bQHAdVpBqSeDg--.5276S3; Tue, 07 Apr 2026 21:05:14 +0800 (CST) From: Hans Zhang <18255117159@163.com> To: bhelgaas@google.com, lpieralisi@kernel.org, kw@linux.com, kwilczynski@kernel.org, mani@kernel.org, ilpo.jarvinen@linux.intel.com, jingoohan1@gmail.com Cc: robh@kernel.org, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, Hans Zhang <18255117159@163.com>, Shawn Lin Subject: [PATCH v7 1/3] PCI: Add public pcie_valid_speed() for shared validation Date: Tue, 7 Apr 2026 21:04:48 +0800 Message-Id: <20260407130450.1489318-2-18255117159@163.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260407130450.1489318-1-18255117159@163.com> References: <20260407130450.1489318-1-18255117159@163.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-CM-TRANSID: _____wC33bQHAdVpBqSeDg--.5276S3 X-Coremail-Antispam: 1Uf129KBjvJXoW7urW5CF43uw45Xw15Cw1rJFb_yoW8Ww18pa yDAa45AF18Aa15XF4Dt3W8ZFy5WFZ3JrWjkrW3u39xZF13A3s3Ja43tay8try2qrWIvF1U Ja1YyF18Ca1jyr7anT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x0pRsa9fUUUUU= X-CM-SenderInfo: rpryjkyvrrlimvzbiqqrwthudrp/xtbC6woStWnVAQqqBQAA3e Content-Type: text/plain; charset="utf-8" Extract the PCIe speed validation logic from bwctrl.c's static pcie_valid_speed() into a public static inline function in pci.h. This allows consistent speed range checks (2.5GT/s to 64.0GT/s) across multiple drivers and functions, avoiding duplicate code and ensuring validation consistency as per PCIe specifications. Signed-off-by: Hans Zhang <18255117159@163.com> Reviewed-by: Shawn Lin Acked-by: Bjorn Helgaas Reviewed-by: Ilpo J=C3=A4rvinen --- drivers/pci/pci.h | 5 +++++ drivers/pci/pcie/bwctrl.c | 5 ----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h index 4a14f88e543a..f0a082bfd6f1 100644 --- a/drivers/pci/pci.h +++ b/drivers/pci/pci.h @@ -606,6 +606,11 @@ void pci_bus_put(struct pci_bus *bus); (speed) =3D=3D PCIE_SPEED_2_5GT ? 2500*8/10 : \ 0) =20 +static inline bool pcie_valid_speed(enum pci_bus_speed speed) +{ + return (speed >=3D PCIE_SPEED_2_5GT) && (speed <=3D PCIE_SPEED_64_0GT); +} + static inline int pcie_dev_speed_mbps(enum pci_bus_speed speed) { switch (speed) { diff --git a/drivers/pci/pcie/bwctrl.c b/drivers/pci/pcie/bwctrl.c index c4c8d260bf96..ea82e326f164 100644 --- a/drivers/pci/pcie/bwctrl.c +++ b/drivers/pci/pcie/bwctrl.c @@ -48,11 +48,6 @@ struct pcie_bwctrl_data { /* Prevent port removal during Link Speed changes. */ static DECLARE_RWSEM(pcie_bwctrl_setspeed_rwsem); =20 -static bool pcie_valid_speed(enum pci_bus_speed speed) -{ - return (speed >=3D PCIE_SPEED_2_5GT) && (speed <=3D PCIE_SPEED_64_0GT); -} - static u16 pci_bus_speed2lnkctl2(enum pci_bus_speed speed) { static const u8 speed_conv[] =3D { --=20 2.34.1 From nobody Sun Jun 14 20:21:59 2026 Received: from m16.mail.163.com (m16.mail.163.com [220.197.31.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 076B83932CE; Tue, 7 Apr 2026 13:05:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=220.197.31.4 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775567147; cv=none; b=HpqcYki/jIhfTfUJBwGWaBSRKfrLFt58UoKmS+HqjeCtBQzY3jJhfufoQt8+SHAM4ZucCXbJf/3rNQWc/n7vJGtH/SBJgLZxOkY/VDXPJLTZo69WbAoJwiZ5vjl76OteFFerZAuOGYuBlrKEKyWhcWYMLMsr4+r0ikQpbHxfGHo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775567147; c=relaxed/simple; bh=aV4/PfQ0MMsxmwGCANhfhW0+XLmKLLxwbvgZJ3/pe+s=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=pGkpN/sxwi3uM2X/22xqCJVCw7RPYEWcZBHh3tkGB52JCnGydhCrRPbXj1sta41vxBVBp2qRVjsv+JrOYtXYsCxOWr1LPjK4AtGtnn5fm/RsvzdV8n8DFz0Qbg1wuAVsW1uz8A/s58EjccrrlSCqvaBy+wdzc8ddTDnEmZemVr0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=163.com; spf=pass smtp.mailfrom=163.com; dkim=pass (1024-bit key) header.d=163.com header.i=@163.com header.b=B1GcZFqB; arc=none smtp.client-ip=220.197.31.4 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=163.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=163.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=163.com header.i=@163.com header.b="B1GcZFqB" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:To:Subject:Date:Message-Id:MIME-Version; bh=+2 NxNNebefVVPcox12b5aqVRfl/zr6eJpvMHbIcrZV4=; b=B1GcZFqBPQEwyutQxJ yfZf9DB6XS5opaMvzuftkqjn5Ske5fdy3WmYDBQvVSjN5HiyEnfkszqerENkKblv goFjjaaey3DLFjTVP/gNU3nkM9rvZzUjtWzyrem8TQ5g0BX5P86bkt8D/ul7ZOIt WSdXkccfRY1Y7Ae428o87Dx98= Received: from Precision-7960.. (unknown []) by gzga-smtp-mtada-g1-1 (Coremail) with SMTP id _____wC33bQHAdVpBqSeDg--.5276S4; Tue, 07 Apr 2026 21:05:15 +0800 (CST) From: Hans Zhang <18255117159@163.com> To: bhelgaas@google.com, lpieralisi@kernel.org, kw@linux.com, kwilczynski@kernel.org, mani@kernel.org, ilpo.jarvinen@linux.intel.com, jingoohan1@gmail.com Cc: robh@kernel.org, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, Hans Zhang <18255117159@163.com>, Shawn Lin Subject: [PATCH v7 2/3] PCI: Move pci_bus_speed2lnkctl2() to public header Date: Tue, 7 Apr 2026 21:04:49 +0800 Message-Id: <20260407130450.1489318-3-18255117159@163.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260407130450.1489318-1-18255117159@163.com> References: <20260407130450.1489318-1-18255117159@163.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-CM-TRANSID: _____wC33bQHAdVpBqSeDg--.5276S4 X-Coremail-Antispam: 1Uf129KBjvJXoWxWF48JFWUJw1fCry8Cw17ZFb_yoW5XF4rpa 9xCFy5AF18Aw13AFZ0g3Wvqa45XFn3JFWUCrW3W395XFyay3s5Ga42vrWFyryaqrW0kry8 J3WUJF48C3WUtr7anT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x0piNzV5UUUUU= X-CM-SenderInfo: rpryjkyvrrlimvzbiqqrwthudrp/xtbCwwsStWnVAQvN+QAA3t Content-Type: text/plain; charset="utf-8" Move the static array-based pci_bus_speed2lnkctl2() function from bwctrl.c to pci.h as a public inline function. This provides efficient O(1) speed-to-LNKCTL2 value conversion using static array lookup, maintaining optimal performance while enabling code reuse by other PCIe drivers. Signed-off-by: Hans Zhang <18255117159@163.com> Reviewed-by: Shawn Lin Acked-by: Bjorn Helgaas --- drivers/pci/pci.h | 18 ++++++++++++++++++ drivers/pci/pcie/bwctrl.c | 17 ----------------- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h index f0a082bfd6f1..e0c2630e93f2 100644 --- a/drivers/pci/pci.h +++ b/drivers/pci/pci.h @@ -2,6 +2,7 @@ #ifndef DRIVERS_PCI_H #define DRIVERS_PCI_H =20 +#include #include #include #include @@ -611,6 +612,23 @@ static inline bool pcie_valid_speed(enum pci_bus_speed= speed) return (speed >=3D PCIE_SPEED_2_5GT) && (speed <=3D PCIE_SPEED_64_0GT); } =20 +static inline u16 pci_bus_speed2lnkctl2(enum pci_bus_speed speed) +{ + static const u8 speed_conv[] =3D { + [PCIE_SPEED_2_5GT] =3D PCI_EXP_LNKCTL2_TLS_2_5GT, + [PCIE_SPEED_5_0GT] =3D PCI_EXP_LNKCTL2_TLS_5_0GT, + [PCIE_SPEED_8_0GT] =3D PCI_EXP_LNKCTL2_TLS_8_0GT, + [PCIE_SPEED_16_0GT] =3D PCI_EXP_LNKCTL2_TLS_16_0GT, + [PCIE_SPEED_32_0GT] =3D PCI_EXP_LNKCTL2_TLS_32_0GT, + [PCIE_SPEED_64_0GT] =3D PCI_EXP_LNKCTL2_TLS_64_0GT, + }; + + if (WARN_ON_ONCE(!pcie_valid_speed(speed))) + return 0; + + return speed_conv[speed]; +} + static inline int pcie_dev_speed_mbps(enum pci_bus_speed speed) { switch (speed) { diff --git a/drivers/pci/pcie/bwctrl.c b/drivers/pci/pcie/bwctrl.c index ea82e326f164..d48021bfd844 100644 --- a/drivers/pci/pcie/bwctrl.c +++ b/drivers/pci/pcie/bwctrl.c @@ -48,23 +48,6 @@ struct pcie_bwctrl_data { /* Prevent port removal during Link Speed changes. */ static DECLARE_RWSEM(pcie_bwctrl_setspeed_rwsem); =20 -static u16 pci_bus_speed2lnkctl2(enum pci_bus_speed speed) -{ - static const u8 speed_conv[] =3D { - [PCIE_SPEED_2_5GT] =3D PCI_EXP_LNKCTL2_TLS_2_5GT, - [PCIE_SPEED_5_0GT] =3D PCI_EXP_LNKCTL2_TLS_5_0GT, - [PCIE_SPEED_8_0GT] =3D PCI_EXP_LNKCTL2_TLS_8_0GT, - [PCIE_SPEED_16_0GT] =3D PCI_EXP_LNKCTL2_TLS_16_0GT, - [PCIE_SPEED_32_0GT] =3D PCI_EXP_LNKCTL2_TLS_32_0GT, - [PCIE_SPEED_64_0GT] =3D PCI_EXP_LNKCTL2_TLS_64_0GT, - }; - - if (WARN_ON_ONCE(!pcie_valid_speed(speed))) - return 0; - - return speed_conv[speed]; -} - static inline u16 pcie_supported_speeds2target_speed(u8 supported_speeds) { return __fls(supported_speeds); --=20 2.34.1 From nobody Sun Jun 14 20:21:59 2026 Received: from m16.mail.163.com (m16.mail.163.com [117.135.210.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E222614F70; Tue, 7 Apr 2026 13:05:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=117.135.210.2 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775567148; cv=none; b=mSN7CKzF9q4wXS+pCGYMKZDJbI2SzWny6UddQ/0G9FNkupFvXOPLlnGOg0F4tkh6yoyoTKv5GMsLE7oR/1ENx9NlgkZYWbRi93BjEkM59sb/dcxoz7cvwOJSDgbXFj8fHAj6hxoFbFJDuUdAVcJQaEULlfVcbpWNgj92n9SUuQg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775567148; c=relaxed/simple; bh=SRuCRSGlXlqfZsBEu0MZCS+EvTNV5OpFHGi/uezedFI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=DvGJkKbL0E+2XIdsY8hUWItmhAonD0+gbs43dn9wTUsYwmX5b9kqhsElOcbnT/nHcQ/9Qzrp4jbhKeQdF6Bn9vPwtGKnhFVqgOlDB7G81VXuRKGXZvEnqZK9MFnhAQpqKgMWf4c0fEuqNJZ1wRvDc+qcm5gGwiA7UZRqzWr+Se8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=163.com; spf=pass smtp.mailfrom=163.com; dkim=pass (1024-bit key) header.d=163.com header.i=@163.com header.b=J8qg2oMI; arc=none smtp.client-ip=117.135.210.2 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=163.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=163.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=163.com header.i=@163.com header.b="J8qg2oMI" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:To:Subject:Date:Message-Id:MIME-Version; bh=Cq 9vm1l2WI4hUexxxuph9y/77fqWdij3F2uI4NyEkSg=; b=J8qg2oMIMKxkV1LMEM CWmGvpzVqKbILokEPY4lEFFRUIBEkqlmnCUCOPHFRZYaLRB2nmEDUfXcL25pq2wm MS9szAbZgB/8x/E5ivDugrd1BdWmGa3aFlrkEfR7lQRVT6gpBPP02dkXPFMBWR71 TS6Ws4+ik7rJLWgEM5y/oytlA= Received: from Precision-7960.. (unknown []) by gzga-smtp-mtada-g1-1 (Coremail) with SMTP id _____wC33bQHAdVpBqSeDg--.5276S5; Tue, 07 Apr 2026 21:05:15 +0800 (CST) From: Hans Zhang <18255117159@163.com> To: bhelgaas@google.com, lpieralisi@kernel.org, kw@linux.com, kwilczynski@kernel.org, mani@kernel.org, ilpo.jarvinen@linux.intel.com, jingoohan1@gmail.com Cc: robh@kernel.org, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, Hans Zhang <18255117159@163.com>, Shawn Lin Subject: [PATCH v7 3/3] PCI: dwc: Use common speed conversion function Date: Tue, 7 Apr 2026 21:04:50 +0800 Message-Id: <20260407130450.1489318-4-18255117159@163.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260407130450.1489318-1-18255117159@163.com> References: <20260407130450.1489318-1-18255117159@163.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-CM-TRANSID: _____wC33bQHAdVpBqSeDg--.5276S5 X-Coremail-Antispam: 1Uf129KBjvJXoWxAw1UCr1xWr13GF43uryxuFg_yoW5Gr1Upa 9xZr40vF48Jr43urs09as5Xa4UXFnxCr4DCFZ8W3sYvFy2yasxWa10y34ft34akrZ2yr1a 9w17JrW5C3W7tF7anT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x0zR5UUUUUUUU= X-CM-SenderInfo: rpryjkyvrrlimvzbiqqrwthudrp/xtbC6wwTtmnVAQyqLgAA33 Content-Type: text/plain; charset="utf-8" Replace the private switch-based speed conversion in dw_pcie_link_set_max_speed() with the public pci_bus_speed2lnkctl2() function. This eliminates duplicate conversion logic and ensures consistency with other PCIe drivers, while handling invalid speeds by falling back to hardware capabilities. Signed-off-by: Hans Zhang <18255117159@163.com> Reviewed-by: Shawn Lin Acked-by: Manivannan Sadhasivam --- drivers/pci/controller/dwc/pcie-designware.c | 28 +++++++------------- 1 file changed, 9 insertions(+), 19 deletions(-) diff --git a/drivers/pci/controller/dwc/pcie-designware.c b/drivers/pci/con= troller/dwc/pcie-designware.c index 06792ba92aa7..10895f6a8e6e 100644 --- a/drivers/pci/controller/dwc/pcie-designware.c +++ b/drivers/pci/controller/dwc/pcie-designware.c @@ -843,8 +843,10 @@ EXPORT_SYMBOL_GPL(dw_pcie_upconfig_setup); =20 static void dw_pcie_link_set_max_speed(struct dw_pcie *pci) { - u32 cap, ctrl2, link_speed; + u32 cap, ctrl2; + enum pci_bus_speed link_speed; u8 offset =3D dw_pcie_find_capability(pci, PCI_CAP_ID_EXP); + u16 ctrl2_speed; =20 cap =3D dw_pcie_readl_dbi(pci, offset + PCI_EXP_LNKCAP); =20 @@ -861,30 +863,18 @@ static void dw_pcie_link_set_max_speed(struct dw_pcie= *pci) ctrl2 =3D dw_pcie_readl_dbi(pci, offset + PCI_EXP_LNKCTL2); ctrl2 &=3D ~PCI_EXP_LNKCTL2_TLS; =20 - switch (pcie_get_link_speed(pci->max_link_speed)) { - case PCIE_SPEED_2_5GT: - link_speed =3D PCI_EXP_LNKCTL2_TLS_2_5GT; - break; - case PCIE_SPEED_5_0GT: - link_speed =3D PCI_EXP_LNKCTL2_TLS_5_0GT; - break; - case PCIE_SPEED_8_0GT: - link_speed =3D PCI_EXP_LNKCTL2_TLS_8_0GT; - break; - case PCIE_SPEED_16_0GT: - link_speed =3D PCI_EXP_LNKCTL2_TLS_16_0GT; - break; - default: + link_speed =3D pcie_get_link_speed(pci->max_link_speed); + ctrl2_speed =3D pci_bus_speed2lnkctl2(link_speed); + if (ctrl2_speed =3D=3D 0) { /* Use hardware capability */ - link_speed =3D FIELD_GET(PCI_EXP_LNKCAP_SLS, cap); + ctrl2_speed =3D FIELD_GET(PCI_EXP_LNKCAP_SLS, cap); ctrl2 &=3D ~PCI_EXP_LNKCTL2_HASD; - break; } =20 - dw_pcie_writel_dbi(pci, offset + PCI_EXP_LNKCTL2, ctrl2 | link_speed); + dw_pcie_writel_dbi(pci, offset + PCI_EXP_LNKCTL2, ctrl2 | ctrl2_speed); =20 cap &=3D ~((u32)PCI_EXP_LNKCAP_SLS); - dw_pcie_writel_dbi(pci, offset + PCI_EXP_LNKCAP, cap | link_speed); + dw_pcie_writel_dbi(pci, offset + PCI_EXP_LNKCAP, cap | ctrl2_speed); =20 } =20 --=20 2.34.1