All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] PCI: mediatek: Release the resource when PCIe enable port fail
@ 2020-08-31  7:53 Chuanjia Liu
  2020-08-31 14:41 ` Aw: " Frank Wunderlich
  2020-09-10 18:40 ` Tom Rini
  0 siblings, 2 replies; 6+ messages in thread
From: Chuanjia Liu @ 2020-08-31  7:53 UTC (permalink / raw)
  To: u-boot

On the mt7623 platform, if one port enable fail and other port
enable succeed. It will hang on when using pci enum
because the resource was not released correctly.

Signed-off-by: Chuanjia Liu <Chuanjia.Liu@mediatek.com>
Tested-by: Frank Wunderlich <frank-w@public-files.de>
---
 drivers/pci/pcie_mediatek.c | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/drivers/pci/pcie_mediatek.c b/drivers/pci/pcie_mediatek.c
index ad34f7c597..55b6a40f25 100644
--- a/drivers/pci/pcie_mediatek.c
+++ b/drivers/pci/pcie_mediatek.c
@@ -443,29 +443,36 @@ static void mtk_pcie_enable_port(struct mtk_pcie_port *port)
 
 	err = clk_enable(&port->sys_ck);
 	if (err)
-		goto exit;
+		goto err_sys_clk;
 
 	err = reset_assert(&port->reset);
 	if (err)
-		goto exit;
+		goto err_reset;
 
 	err = reset_deassert(&port->reset);
 	if (err)
-		goto exit;
+		goto err_reset;
 
 	err = generic_phy_init(&port->phy);
 	if (err)
-		goto exit;
+		goto err_phy_init;
 
 	err = generic_phy_power_on(&port->phy);
 	if (err)
-		goto exit;
+		goto err_phy_on;
 
 	if (!mtk_pcie_startup_port(port))
 		return;
 
 	pr_err("Port%d link down\n", port->slot);
-exit:
+
+	generic_phy_power_off(&port->phy);
+err_phy_on:
+	generic_phy_exit(&port->phy);
+err_phy_init:
+err_reset:
+	clk_disable(&port->sys_ck);
+err_sys_clk:
 	mtk_pcie_port_free(port);
 }
 
-- 
2.18.0

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2020-09-10 19:42 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-31  7:53 [PATCH] PCI: mediatek: Release the resource when PCIe enable port fail Chuanjia Liu
2020-08-31 14:41 ` Aw: " Frank Wunderlich
2020-09-10 18:40 ` Tom Rini
2020-09-10 18:59   ` Frank Wunderlich
2020-09-10 19:33     ` Tom Rini
2020-09-10 19:42       ` Frank Wunderlich

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.