diff options
-rw-r--r-- | drivers/pci/controller/dwc/pcie-qcom-ep.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/pci/controller/dwc/pcie-qcom-ep.c b/drivers/pci/controller/dwc/pcie-qcom-ep.c index 9d7b49a822da..4de355b0b376 100644 --- a/drivers/pci/controller/dwc/pcie-qcom-ep.c +++ b/drivers/pci/controller/dwc/pcie-qcom-ep.c @@ -90,8 +90,8 @@ struct qcom_pcie_ep { struct gpio_desc *reset; struct gpio_desc *wake; - struct mutex lock; struct phy *phy; + struct mutex lock; }; static void qcom_pcie_ep_enable_ltssm(struct qcom_pcie_ep *pcie_ep) @@ -282,6 +282,7 @@ static int qcom_pcie_establish_link(struct dw_pcie *pci) /* Assert WAKE# to RC to indicate device is ready */ gpiod_set_value_cansleep(pcie_ep->wake, 0); + usleep_range(WAKE_DELAY_US, WAKE_DELAY_US + 500); /* Check for PERST deassertion from host */ ret = qcom_pcie_ep_check_perst(pcie_ep); @@ -311,9 +312,6 @@ static int qcom_pcie_establish_link(struct dw_pcie *pci) /* Enable LTSSM */ qcom_pcie_ep_enable_ltssm(pcie_ep); - gpiod_set_value_cansleep(pcie_ep->wake, 0); - usleep_range(WAKE_DELAY_US, WAKE_DELAY_US + 500); - mutex_unlock(&pcie_ep->lock); return 0; @@ -381,6 +379,7 @@ static int qcom_pcie_ep_get_io_resources(struct platform_device *pdev, static int qcom_pcie_ep_get_resources(struct platform_device *pdev, struct qcom_pcie_ep *pcie_ep) { + struct device *dev = &pdev->dev; int ret; ret = qcom_pcie_ep_get_io_resources(pdev, pcie_ep); @@ -516,6 +515,7 @@ static int qcom_pcie_ep_probe(struct platform_device *pdev) goto err_disable_resources; } + /* PHY needs to be powered on for dw_pcie_ep_init() */ ret = phy_power_on(pcie_ep->phy); if (ret) { dev_err(dev, "failed to initialize endpoint:%d\n", ret); |