phy: qcom-qmp: Move SERDES/PCS START after PHY reset
authorManu Gautam <mgautam@codeaurora.org>
Tue, 16 Jan 2018 10:57:01 +0000 (16:27 +0530)
committerKishon Vijay Abraham I <kishon@ti.com>
Thu, 8 Mar 2018 08:26:09 +0000 (13:56 +0530)
Driver is currently performing PHY reset after starting
SERDES/PCS. As per hardware datasheet reset must be done
before starting PHY. Hence, update the sequence.

Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
drivers/phy/qualcomm/phy-qcom-qmp.c

index ecff261..edb6bbe 100644 (file)
@@ -896,12 +896,12 @@ static int qcom_qmp_phy_init(struct phy *phy)
        if (cfg->has_pwrdn_delay)
                usleep_range(cfg->pwrdn_delay_min, cfg->pwrdn_delay_max);
 
-       /* start SerDes and Phy-Coding-Sublayer */
-       qphy_setbits(pcs, cfg->regs[QPHY_START_CTRL], cfg->start_ctrl);
-
        /* Pull PHY out of reset state */
        qphy_clrbits(pcs, cfg->regs[QPHY_SW_RESET], SW_RESET);
 
+       /* start SerDes and Phy-Coding-Sublayer */
+       qphy_setbits(pcs, cfg->regs[QPHY_START_CTRL], cfg->start_ctrl);
+
        status = pcs + cfg->regs[QPHY_PCS_READY_STATUS];
        mask = cfg->mask_pcs_ready;