提交 df85e957 编写于 作者: C Chuanjia Liu 提交者: Tom Rini

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: NChuanjia Liu <Chuanjia.Liu@mediatek.com>
Tested-by: NFrank Wunderlich <frank-w@public-files.de>
上级 a5fc5873
......@@ -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);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册