diff --git a/drivers/pci/controller/pci-msm.c b/drivers/pci/controller/pci-msm.c index f76b4a010646..43ecc572a80c 100644 --- a/drivers/pci/controller/pci-msm.c +++ b/drivers/pci/controller/pci-msm.c @@ -5936,12 +5936,22 @@ static int msm_pcie_setup_drv(struct msm_pcie_dev_t *pcie_dev, struct msm_pcie_drv_msg *msg; struct msm_pcie_drv_tre *pkt; struct msm_pcie_drv_header *hdr; + u32 drv_l1ss_timeout_us = 0; + int ret; drv_info = devm_kzalloc(&pcie_dev->pdev->dev, sizeof(*drv_info), GFP_KERNEL); if (!drv_info) return -ENOMEM; + ret = of_property_read_u32(of_node, "qcom,drv-l1ss-timeout-us", + &drv_l1ss_timeout_us); + if (ret) + drv_l1ss_timeout_us = L1SS_TIMEOUT_US; + + PCIE_DBG(pcie_dev, "PCIe: RC%d: DRV L1ss timeout: %dus\n", + pcie_dev->rc_idx, drv_l1ss_timeout_us); + drv_info->dev_id = pcie_dev->rc_idx; /* cache frequent command for communication */ @@ -5956,7 +5966,7 @@ static int msm_pcie_setup_drv(struct msm_pcie_dev_t *pcie_dev, pkt->dword[0] = MSM_PCIE_DRV_CMD_ENABLE; pkt->dword[1] = hdr->dev_id; - pkt->dword[2] = L1SS_TIMEOUT_US / 1000; + pkt->dword[2] = drv_l1ss_timeout_us / 1000; msg = &drv_info->drv_disable; pkt = &msg->pkt;