[PATCH 2/7] PCI: mediatek-gen3: Add error path for probe and resume driver callbacks

From: Chen-Yu Tsai

Date: Wed Feb 25 2026 - 02:37:53 EST


The probe and resume callbacks currently do teardown in the conditional
block directly. This is going to get ugly when the pwrctrl calls are
added.

Move the teardown to proper error cleanup paths.

Signed-off-by: Chen-Yu Tsai <wenst@xxxxxxxxxxxx>
---
drivers/pci/controller/pcie-mediatek-gen3.c | 22 ++++++++++++---------
1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/drivers/pci/controller/pcie-mediatek-gen3.c b/drivers/pci/controller/pcie-mediatek-gen3.c
index 1939cac995b5..f2bf4afbdc2f 100644
--- a/drivers/pci/controller/pcie-mediatek-gen3.c
+++ b/drivers/pci/controller/pcie-mediatek-gen3.c
@@ -1189,13 +1189,15 @@ static int mtk_pcie_probe(struct platform_device *pdev)
host->sysdata = pcie;

err = pci_host_probe(host);
- if (err) {
- mtk_pcie_irq_teardown(pcie);
- mtk_pcie_power_down(pcie);
- return err;
- }
+ if (err)
+ goto err_teardown_irq_and_power_down;

return 0;
+
+err_teardown_irq_and_power_down:
+ mtk_pcie_irq_teardown(pcie);
+ mtk_pcie_power_down(pcie);
+ return err;
}

static void mtk_pcie_remove(struct platform_device *pdev)
@@ -1301,14 +1303,16 @@ static int mtk_pcie_resume_noirq(struct device *dev)
return err;

err = mtk_pcie_startup_port(pcie);
- if (err) {
- mtk_pcie_power_down(pcie);
- return err;
- }
+ if (err)
+ goto err_power_down;

mtk_pcie_irq_restore(pcie);

return 0;
+
+err_power_down:
+ mtk_pcie_power_down(pcie);
+ return err;
}

static const struct dev_pm_ops mtk_pcie_pm_ops = {
--
2.53.0.414.gf7e9f6c205-goog