This is a note to let you know that I've just added the patch titled PCI: aardvark: Update comment about disabling link training to the 4.14-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: pci-aardvark-update-comment-about-disabling-link-training.patch and it can be found in the queue-4.14 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From foo@baz Mon Nov 29 01:32:04 PM CET 2021 From: "Marek Behún" <kabel@xxxxxxxxxx> Date: Wed, 24 Nov 2021 23:49:22 +0100 Subject: PCI: aardvark: Update comment about disabling link training To: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>, Sasha Levin <sashal@xxxxxxxxxx> Cc: pali@xxxxxxxxxx, stable@xxxxxxxxxxxxxxx, "Lorenzo Pieralisi" <lorenzo.pieralisi@xxxxxxx>, "Marek Behún" <kabel@xxxxxxxxxx> Message-ID: <20211124224933.24275-14-kabel@xxxxxxxxxx> From: Pali Rohár <pali@xxxxxxxxxx> commit 1d1cd163d0de22a4041a6f1aeabcf78f80076539 upstream. According to PCI Express Base Specifications (rev 4.0, 6.6.1 "Conventional reset"), after fundamental reset a 100ms delay is needed prior to enabling link training. Update comment in code to reflect this requirement. Link: https://lore.kernel.org/r/20201202184659.3795-1-pali@xxxxxxxxxx Signed-off-by: Pali Rohár <pali@xxxxxxxxxx> Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx> Signed-off-by: Marek Behún <kabel@xxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/pci/host/pci-aardvark.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) --- a/drivers/pci/host/pci-aardvark.c +++ b/drivers/pci/host/pci-aardvark.c @@ -275,7 +275,14 @@ static void advk_pcie_issue_perst(struct if (!pcie->reset_gpio) return; - /* PERST does not work for some cards when link training is enabled */ + /* + * As required by PCI Express spec (PCI Express Base Specification, REV. + * 4.0 PCI Express, February 19 2014, 6.6.1 Conventional Reset) a delay + * for at least 100ms after de-asserting PERST# signal is needed before + * link training is enabled. So ensure that link training is disabled + * prior de-asserting PERST# signal to fulfill that PCI Express spec + * requirement. + */ reg = advk_readl(pcie, PCIE_CORE_CTRL0_REG); reg &= ~LINK_TRAINING_EN; advk_writel(pcie, reg, PCIE_CORE_CTRL0_REG); Patches currently in stable-queue which might be from kabel@xxxxxxxxxx are queue-4.14/pci-aardvark-move-pcie-reset-card-code-to-advk_pcie_train_link.patch queue-4.14/pci-aardvark-introduce-an-advk_pcie_valid_device-helper.patch queue-4.14/pci-aardvark-update-comment-about-disabling-link-training.patch queue-4.14/pci-aardvark-train-link-immediately-after-enabling-training.patch queue-4.14/arm64-dts-marvell-armada-37xx-declare-pcie-reset-pin.patch queue-4.14/pci-aardvark-replace-custom-macros-by-standard-linux-pci_regs.h-macros.patch queue-4.14/pci-aardvark-fix-a-leaked-reference-by-adding-missing-of_node_put.patch queue-4.14/pci-aardvark-fix-pcie-max-payload-size-setting.patch queue-4.14/pinctrl-armada-37xx-correct-pwm-pins-definitions.patch queue-4.14/arm64-dts-marvell-armada-37xx-set-pcie_reset_pin-to-gpio-function.patch queue-4.14/pci-aardvark-configure-pcie-resources-from-ranges-dt-property.patch queue-4.14/pci-aardvark-improve-link-training.patch queue-4.14/pci-aardvark-fix-link-training.patch queue-4.14/pci-aardvark-fix-checking-for-link-up-via-ltssm-state.patch queue-4.14/pci-aardvark-issue-perst-via-gpio.patch queue-4.14/pinctrl-armada-37xx-correct-mpp-definitions.patch queue-4.14/pci-add-pci_exp_lnkctl2_tls-macros.patch queue-4.14/pci-aardvark-wait-for-endpoint-to-be-ready-before-training-link.patch queue-4.14/pinctrl-armada-37xx-add-missing-pin-pcie1-wakeup.patch queue-4.14/pci-aardvark-fix-compilation-on-s390.patch queue-4.14/pci-aardvark-fix-i-o-space-page-leak.patch queue-4.14/pci-aardvark-don-t-touch-pcie-registers-if-no-card-connected.patch queue-4.14/pci-aardvark-remove-pcie-outbound-window-configuration.patch queue-4.14/pci-aardvark-indicate-error-in-val-when-config-read-fails.patch