Skip to content
Snippets Groups Projects
Commit 9250d0ba authored by Chuanjia Liu's avatar Chuanjia Liu Committed by Tom Rini
Browse files

PCI: mediatek: Release the resource when PCIe enable port fail


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: default avatarChuanjia Liu <Chuanjia.Liu@mediatek.com>
Tested-by: default avatarFrank Wunderlich <frank-w@public-files.de>
parent 3dd52dd6
No related branches found
No related tags found
No related merge requests found
......@@ -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);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment