phy: qcom-qmp-pcie-msm8996: increase status polling period
authorJohan Hovold <johan+linaro@kernel.org>
Wed, 12 Oct 2022 08:49:49 +0000 (10:49 +0200)
committerVinod Koul <vkoul@kernel.org>
Fri, 28 Oct 2022 12:25:04 +0000 (17:55 +0530)
It typically takes between one and two milliseconds for the PHY to
become ready after starting it. Increase the tight 3--10 us polling
period to the more reasonable 51--200 us.

Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Link: https://lore.kernel.org/r/20221012085002.24099-7-johan+linaro@kernel.org
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c

index b9260c8..cd8fafe 100644 (file)
@@ -360,7 +360,7 @@ static int qmp_pcie_msm8996_serdes_init(struct qmp_phy *qphy)
                     SERDES_START | PCS_START);
 
        status = serdes + cfg->regs[QPHY_COM_PCS_READY_STATUS];
-       ret = readl_poll_timeout(status, val, (val & PCS_READY), 10,
+       ret = readl_poll_timeout(status, val, (val & PCS_READY), 200,
                                 PHY_INIT_COMPLETE_TIMEOUT);
        if (ret) {
                dev_err(qmp->dev,
@@ -514,7 +514,7 @@ static int qmp_pcie_msm8996_power_on(struct phy *phy)
        qphy_setbits(pcs, cfg->regs[QPHY_START_CTRL], cfg->start_ctrl);
 
        status = pcs + cfg->regs[QPHY_PCS_STATUS];
-       ret = readl_poll_timeout(status, val, !(val & PHYSTATUS), 10,
+       ret = readl_poll_timeout(status, val, !(val & PHYSTATUS), 200,
                                 PHY_INIT_COMPLETE_TIMEOUT);
        if (ret) {
                dev_err(qmp->dev, "phy initialization timed-out\n");