projects
/
platform
/
kernel
/
linux-starfive.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
720e0d9
)
PCI: qcom: Fix host-init error handling
author
Johan Hovold
<johan+linaro@kernel.org>
Mon, 17 Oct 2022 11:47:04 +0000
(13:47 +0200)
committer
Bjorn Helgaas
<bhelgaas@google.com>
Tue, 14 Feb 2023 17:41:03 +0000
(11:41 -0600)
Implement the new host_deinit() callback so that the PHY is powered off
and regulators and clocks are disabled also on late host-init errors.
Link:
https://lore.kernel.org/r/20221017114705.8277-2-johan+linaro@kernel.org
Fixes:
82a823833f4e
("PCI: qcom: Add Qualcomm PCIe controller driver")
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Manivannan Sadhasivam <mani@kernel.org>
drivers/pci/controller/dwc/pcie-qcom.c
patch
|
blob
|
history
diff --git
a/drivers/pci/controller/dwc/pcie-qcom.c
b/drivers/pci/controller/dwc/pcie-qcom.c
index
b9350d9
..
0034ccc
100644
(file)
--- a/
drivers/pci/controller/dwc/pcie-qcom.c
+++ b/
drivers/pci/controller/dwc/pcie-qcom.c
@@
-1534,8
+1534,19
@@
err_deinit:
return ret;
}
+static void qcom_pcie_host_deinit(struct dw_pcie_rp *pp)
+{
+ struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
+ struct qcom_pcie *pcie = to_qcom_pcie(pci);
+
+ qcom_ep_reset_assert(pcie);
+ phy_power_off(pcie->phy);
+ pcie->cfg->ops->deinit(pcie);
+}
+
static const struct dw_pcie_host_ops qcom_pcie_dw_ops = {
- .host_init = qcom_pcie_host_init,
+ .host_init = qcom_pcie_host_init,
+ .host_deinit = qcom_pcie_host_deinit,
};
/* Qcom IP rev.: 2.1.0 Synopsys IP rev.: 4.01a */