kernel: 5.10: Backport pci-aardvark driver changes from 5.17
[openwrt/staging/hauke.git] / target / linux / generic / backport-5.10 / 850-v5.17-0009-PCI-aardvark-Assert-PERST-when-unbinding-driver.patch
1 From 1f54391be8ce0c981d312cb93acdc5608def576a Mon Sep 17 00:00:00 2001
2 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <pali@kernel.org>
3 Date: Tue, 30 Nov 2021 18:29:11 +0100
4 Subject: [PATCH] PCI: aardvark: Assert PERST# when unbinding driver
5 MIME-Version: 1.0
6 Content-Type: text/plain; charset=UTF-8
7 Content-Transfer-Encoding: 8bit
8
9 Put the PCIe card into reset by asserting PERST# signal when unbinding
10 driver. It doesn't make sense to leave the card working if it can't
11 communicate with the host. This should also save some power.
12
13 Link: https://lore.kernel.org/r/20211130172913.9727-10-kabel@kernel.org
14 Signed-off-by: Pali Rohár <pali@kernel.org>
15 Signed-off-by: Marek Behún <kabel@kernel.org>
16 Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
17 ---
18 drivers/pci/controller/pci-aardvark.c | 4 ++++
19 1 file changed, 4 insertions(+)
20
21 diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
22 index b3d89cb449b6..271ebecee965 100644
23 --- a/drivers/pci/controller/pci-aardvark.c
24 +++ b/drivers/pci/controller/pci-aardvark.c
25 @@ -1737,6 +1737,10 @@ static int advk_pcie_remove(struct platform_device *pdev)
26 /* Free config space for emulated root bridge */
27 pci_bridge_emul_cleanup(&pcie->bridge);
28
29 + /* Assert PERST# signal which prepares PCIe card for power down */
30 + if (pcie->reset_gpio)
31 + gpiod_set_value_cansleep(pcie->reset_gpio, 1);
32 +
33 /* Disable outbound address windows mapping */
34 for (i = 0; i < OB_WIN_COUNT; i++)
35 advk_pcie_disable_ob_win(pcie, i);
36 --
37 2.34.1
38