From 0923ae55ef7ef0a5424aff43d2397375b8e98340 Mon Sep 17 00:00:00 2001 From: Ramya SR Date: Mon, 4 Apr 2022 21:21:36 +0530 Subject: [PATCH] pci: msm: Bring pine EP out of reset after link up This change is to bring pine EP out of reset post link-up. Change-Id: Ied7533258496e8c08f619997626d70bcd6f0f8de Signed-off-by: Ramya SR --- drivers/pci/controller/pci-msm.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/pci/controller/pci-msm.c b/drivers/pci/controller/pci-msm.c index d9c68d73fb3b..360a4e6977c4 100644 --- a/drivers/pci/controller/pci-msm.c +++ b/drivers/pci/controller/pci-msm.c @@ -720,6 +720,7 @@ struct pcie_i2c_ctrl { u32 reg_update_count; u32 version_reg; bool force_i2c_setting; + bool ep_reset_postlinkup; struct pcie_i2c_reg_update *switch_reg_update; u32 switch_reg_update_count; /* client specific callbacks */ @@ -4773,7 +4774,8 @@ static int msm_pcie_enable(struct msm_pcie_dev_t *dev) msleep(20); } /* bring eps out of reset */ - if (dev->i2c_ctrl.client && dev->i2c_ctrl.client_i2c_reset) { + if (dev->i2c_ctrl.client && dev->i2c_ctrl.client_i2c_reset + && !dev->i2c_ctrl.ep_reset_postlinkup) { dev->i2c_ctrl.client_i2c_reset(&dev->i2c_ctrl, false); msleep(100); } @@ -4824,6 +4826,12 @@ 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 pine EP out of reset*/ + if (dev->i2c_ctrl.client && dev->i2c_ctrl.client_i2c_reset + && dev->i2c_ctrl.ep_reset_postlinkup) { + dev->i2c_ctrl.client_i2c_reset(&dev->i2c_ctrl, false); + msleep(100); + } goto out; link_fail: @@ -6087,6 +6095,8 @@ static int msm_pcie_i2c_ctrl_init(struct msm_pcie_dev_t *pcie_dev) &i2c_ctrl->version_reg); i2c_ctrl->force_i2c_setting = of_property_read_bool(i2c_client_node, "force-i2c-setting"); + i2c_ctrl->ep_reset_postlinkup = of_property_read_bool(i2c_client_node, + "ep_reset_postlinkup"); of_get_property(i2c_client_node, "dump-regs", &size); if (size) {