aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/pci/controller/dwc/pcie-qcom-ep.c8
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);