]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
phy: qcom-qmp-ufs: refactor qmp_ufs_power_off
authorNitin Rawat <quic_nitirawa@quicinc.com>
Mon, 26 May 2025 15:38:20 +0000 (21:08 +0530)
committerVinod Koul <vkoul@kernel.org>
Sun, 15 Jun 2025 14:23:24 +0000 (19:53 +0530)
In qmp_ufs_power_off, the PHY is already powered down by asserting
QPHY_PCS_POWER_DOWN_CONTROL. Therefore, additional phy_reset and
stopping SerDes are unnecessary. Also this approach does not
align with the phy HW programming guide.

Thus, refactor qmp_ufs_power_off to remove the phy_reset and stop
SerDes calls to simplify the code and ensure alignment with the PHY
HW programming guide.

Signed-off-by: Nitin Rawat <quic_nitirawa@quicinc.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Link: https://lore.kernel.org/r/20250526153821.7918-10-quic_nitirawa@quicinc.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/phy/qualcomm/phy-qcom-qmp-ufs.c

index 00bde65733cbf84840ab7f6664288e08c374fdab..9c69c77d10c8a5f31bd21db714efb44107591dae 100644 (file)
@@ -1825,13 +1825,6 @@ static int qmp_ufs_power_off(struct phy *phy)
        struct qmp_ufs *qmp = phy_get_drvdata(phy);
        const struct qmp_phy_cfg *cfg = qmp->cfg;
 
-       /* PHY reset */
-       if (!cfg->no_pcs_sw_reset)
-               qphy_setbits(qmp->pcs, cfg->regs[QPHY_SW_RESET], SW_RESET);
-
-       /* stop SerDes */
-       qphy_clrbits(qmp->pcs, cfg->regs[QPHY_START_CTRL], SERDES_START);
-
        /* Put PHY into POWER DOWN state: active low */
        qphy_clrbits(qmp->pcs, cfg->regs[QPHY_PCS_POWER_DOWN_CONTROL],
                        SW_PWRDN);