From 3da3ec335ac96006d024fe295a4fc91d4e9161d0 Mon Sep 17 00:00:00 2001 From: Ramya SR Date: Wed, 5 Jan 2022 17:55:48 +0530 Subject: [PATCH] pci: msm: Bringing EP out of reset prior link up In msm_pcie_enable,EP is brought out of reset after the link up.This will cause the enumeration issues with HSP as NTN3 GPIO is connected to WLAN reset. So moving the part of bringing the EP out of reset prior link training and after de-emphasis setting. The reason for moving it after de-emphasis setting is to ensure WLAN is brought out of reset after all the switch settings gets applied. change-Id: I523000fd2475d8a1767423469f3bab0b7bc97ac0 Signed-off-by: Ramya SR --- drivers/pci/controller/pci-msm.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/pci/controller/pci-msm.c b/drivers/pci/controller/pci-msm.c index bc7e19f0cc79..59e25885ea79 100644 --- a/drivers/pci/controller/pci-msm.c +++ b/drivers/pci/controller/pci-msm.c @@ -4652,9 +4652,15 @@ static int msm_pcie_enable(struct msm_pcie_dev_t *dev) ep_up_timeout = jiffies + usecs_to_jiffies(EP_UP_TIMEOUT_US); - if (dev->i2c_ctrl.client && dev->i2c_ctrl.client_i2c_de_emphasis_wa) + if (dev->i2c_ctrl.client && dev->i2c_ctrl.client_i2c_de_emphasis_wa) { dev->i2c_ctrl.client_i2c_de_emphasis_wa(&dev->i2c_ctrl); - + msleep(20); + } + /* bring eps out of reset */ + if (dev->i2c_ctrl.client && dev->i2c_ctrl.client_i2c_reset) { + dev->i2c_ctrl.client_i2c_reset(&dev->i2c_ctrl, false); + msleep(100); + } msm_pcie_config_sid(dev); msm_pcie_config_controller(dev); @@ -4702,10 +4708,6 @@ static int msm_pcie_enable(struct msm_pcie_dev_t *dev) if (dev->enumerated) msm_msi_config(dev_get_msi_domain(&dev->dev->dev)); - /* bring eps out of reset */ - if (dev->i2c_ctrl.client && dev->i2c_ctrl.client_i2c_reset) - dev->i2c_ctrl.client_i2c_reset(&dev->i2c_ctrl, false); - goto out; link_fail: