summaryrefslogtreecommitdiff
path: root/drivers/pci
diff options
context:
space:
mode:
authorRichard Zhu <hongxing.zhu@nxp.com>2017-08-02 09:45:41 +0800
committerJason Liu <jason.hui.liu@nxp.com>2019-02-12 10:27:48 +0800
commite2479b99c29a367af5fe6e545f4dba18147a45e2 (patch)
treeeea9ed8aa64e1d8d34b41027dfc141861925f59e /drivers/pci
parentba46742335caddab40816ba326b455e436cd4525 (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.c12
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);