123456789101112131415161718192021222324252627282930313233 |
- From 1f54391be8ce0c981d312cb93acdc5608def576a Mon Sep 17 00:00:00 2001
- From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <[email protected]>
- Date: Tue, 30 Nov 2021 18:29:11 +0100
- Subject: [PATCH] PCI: aardvark: Assert PERST# when unbinding driver
- MIME-Version: 1.0
- Content-Type: text/plain; charset=UTF-8
- Content-Transfer-Encoding: 8bit
- Put the PCIe card into reset by asserting PERST# signal when unbinding
- driver. It doesn't make sense to leave the card working if it can't
- communicate with the host. This should also save some power.
- Link: https://lore.kernel.org/r/[email protected]
- Signed-off-by: Pali Rohár <[email protected]>
- Signed-off-by: Marek Behún <[email protected]>
- Signed-off-by: Lorenzo Pieralisi <[email protected]>
- ---
- drivers/pci/controller/pci-aardvark.c | 4 ++++
- 1 file changed, 4 insertions(+)
- --- a/drivers/pci/controller/pci-aardvark.c
- +++ b/drivers/pci/controller/pci-aardvark.c
- @@ -1740,6 +1740,10 @@ static int advk_pcie_remove(struct platf
- /* Free config space for emulated root bridge */
- pci_bridge_emul_cleanup(&pcie->bridge);
-
- + /* Assert PERST# signal which prepares PCIe card for power down */
- + if (pcie->reset_gpio)
- + gpiod_set_value_cansleep(pcie->reset_gpio, 1);
- +
- /* Disable outbound address windows mapping */
- for (i = 0; i < OB_WIN_COUNT; i++)
- advk_pcie_disable_ob_win(pcie, i);
|