[PATCH] PCI: exynos: Handle PHY initialization errors
Sreeraj S Kurup
sreekuttan2156239 at gmail.com
Thu Oct 29 06:10:06 PDT 2026
Check the return values of phy_init() and phy_power_on() to
avoid continuing PCIe host initialization when PHY setup fails.
If phy_power_on() fails, call phy_exit() to release the PHY
resources initialized by phy_init() before returning the error.
Signed-off-by: Sreeraj S Kurup <sreekuttan2156239 at gmail.com>
---
drivers/pci/controller/dwc/pci-exynos.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/drivers/pci/controller/dwc/pci-exynos.c b/drivers/pci/controller/dwc/pci-exynos.c
index e3c05ade381b..5ad07c0be8e5 100644
--- a/drivers/pci/controller/dwc/pci-exynos.c
+++ b/drivers/pci/controller/dwc/pci-exynos.c
@@ -225,13 +225,21 @@ static int exynos_pcie_host_init(struct dw_pcie_rp *pp)
{
struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
struct exynos_pcie *ep = to_exynos_pcie(pci);
+ int ret;
pp->bridge->ops = &exynos_pci_ops;
exynos_pcie_assert_core_reset(ep);
- phy_init(ep->phy);
- phy_power_on(ep->phy);
+ ret = phy_init(ep->phy);
+ if (ret)
+ return ret;
+
+ ret = phy_power_on(ep->phy);
+ if (ret) {
+ phy_exit(ep->phy);
+ return ret;
+ }
exynos_pcie_deassert_core_reset(ep);
exynos_pcie_enable_irq_pulse(ep);
--
2.55.0
More information about the linux-arm-kernel
mailing list