summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorPali Rohár <pali@kernel.org>2022-05-04 18:57:35 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2022-05-12 12:30:29 +0200
commita346d08ca45e8475975187f5bab8540cb9ac75d2 (patch)
tree1ffd82f242062fd4b72e8a881a997fc957d79c94 /drivers
parent246a36b6637740f1be9c3cdd91f022b24b7402e7 (diff)
downloadlinux-a346d08ca45e8475975187f5bab8540cb9ac75d2.tar.gz
linux-a346d08ca45e8475975187f5bab8540cb9ac75d2.tar.bz2
linux-a346d08ca45e8475975187f5bab8540cb9ac75d2.zip
PCI: aardvark: Disable link training when unbinding driver
commit 759dec2e3dfdbd261c41d2279f04f2351c971a49 upstream. Disable link training circuit in driver unbind sequence. We want to leave link training in the same state as it was before the driver was probed. Link: https://lore.kernel.org/r/20211130172913.9727-11-kabel@kernel.org Signed-off-by: Pali Rohár <pali@kernel.org> Signed-off-by: Marek Behún <kabel@kernel.org> Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Signed-off-by: Marek Behún <kabel@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/pci/controller/pci-aardvark.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index 78bc57d57926..3f6919564434 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -1725,6 +1725,11 @@ static int advk_pcie_remove(struct platform_device *pdev)
if (pcie->reset_gpio)
gpiod_set_value_cansleep(pcie->reset_gpio, 1);
+ /* Disable link training */
+ val = advk_readl(pcie, PCIE_CORE_CTRL0_REG);
+ val &= ~LINK_TRAINING_EN;
+ advk_writel(pcie, val, PCIE_CORE_CTRL0_REG);
+
/* Disable outbound address windows mapping */
for (i = 0; i < OB_WIN_COUNT; i++)
advk_pcie_disable_ob_win(pcie, i);