diff options
author | Richard Zhu <hongxing.zhu@nxp.com> | 2017-08-02 09:45:41 +0800 |
---|---|---|
committer | Jason Liu <jason.hui.liu@nxp.com> | 2019-02-12 10:27:48 +0800 |
commit | e2479b99c29a367af5fe6e545f4dba18147a45e2 (patch) | |
tree | eea9ed8aa64e1d8d34b41027dfc141861925f59e /drivers/pci | |
parent | ba46742335caddab40816ba326b455e436cd4525 (diff) |
MLK-16108 PCI: imx: turn on pd for imx8mq pcie
Root cause:
Poewr domain of the PCIEs are turned off, and
not turned on properly in previous ATF.
The PDs of PCIE1/2 have the dependency.
Both of the PDs should be operated at same time.
This issue is gone after update the PDs operations
in ATF.
In order to make sure that the PDs are turned on,
Turn power domain for imx8mq pcie explicitly in
driver.
Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
Diffstat (limited to 'drivers/pci')
-rw-r--r-- | drivers/pci/dwc/pci-imx6.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/pci/dwc/pci-imx6.c b/drivers/pci/dwc/pci-imx6.c index 6fe3a0f815ed..2c39ddd3cb44 100644 --- a/drivers/pci/dwc/pci-imx6.c +++ b/drivers/pci/dwc/pci-imx6.c @@ -1306,6 +1306,7 @@ err_reset_phy: clk_disable_unprepare(imx6_pcie->pcie_inbound_axi); release_bus_freq(BUS_FREQ_HIGH); if ((imx6_pcie->variant == IMX7D) + || (imx6_pcie->variant == IMX8MQ) || (imx6_pcie->variant == IMX8QM) || (imx6_pcie->variant == IMX8QXP)) pm_runtime_put_sync(pci->dev); @@ -1327,8 +1328,10 @@ static int imx6_pcie_host_init(struct pcie_port *pp) struct imx6_pcie *imx6_pcie = to_imx6_pcie(pci); /* enable disp_mix power domain */ - if ((imx6_pcie->variant == IMX7D) || (imx6_pcie->variant == IMX8QM) - || (imx6_pcie->variant == IMX8QXP)) + if ((imx6_pcie->variant == IMX7D) + || (imx6_pcie->variant == IMX8MQ) + || (imx6_pcie->variant == IMX8QM) + || (imx6_pcie->variant == IMX8QXP)) pm_runtime_get_sync(pci->dev); imx6_pcie_assert_core_reset(imx6_pcie); @@ -2072,7 +2075,10 @@ static int __init imx6_pcie_probe(struct platform_device *pdev) pp->ops = &imx6_pcie_host_ops; /* enable disp_mix power domain */ - if (imx6_pcie->variant == IMX7D) + if ((imx6_pcie->variant == IMX7D) + || (imx6_pcie->variant == IMX8MQ) + || (imx6_pcie->variant == IMX8QM) + || (imx6_pcie->variant == IMX8QXP)) pm_runtime_get_sync(dev); imx6_pcie_assert_core_reset(imx6_pcie); |