summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/pci/controller/pcie-mediatek-gen3.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/pci/controller/pcie-mediatek-gen3.c b/drivers/pci/controller/pcie-mediatek-gen3.c
index 436dbd925181..aa14b021834f 100644
--- a/drivers/pci/controller/pcie-mediatek-gen3.c
+++ b/drivers/pci/controller/pcie-mediatek-gen3.c
@@ -555,10 +555,14 @@ static int mtk_pcie_startup_port(struct mtk_gen3_pcie *pcie)
dev_err(pcie->dev,
"PCIe link down, current LTSSM state: %s (%#x)\n",
ltssm_state, val);
- return err;
+ goto err_power_down_device;
}
return 0;
+
+err_power_down_device:
+ mtk_pcie_devices_power_down(pcie);
+ return err;
}
#define MTK_MSI_FLAGS_REQUIRED (MSI_FLAG_USE_DEF_DOM_OPS | \
@@ -1218,6 +1222,7 @@ static int mtk_pcie_probe(struct platform_device *pdev)
return 0;
err_power_down_pcie:
+ mtk_pcie_devices_power_down(pcie);
mtk_pcie_power_down(pcie);
err_tear_down_irq:
mtk_pcie_irq_teardown(pcie);