Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 48ecffa1 authored by Venkat Gopalakrishnan's avatar Venkat Gopalakrishnan
Browse files

Revert "scsi: ufs: gate ref_clk during aggressive clk gating"



This reverts commit ca91fa16 ("scsi: ufs: gate ref_clk during
aggressive clk gating").

Reverting this change as its causing stability issues.

Change-Id: Ia04d33d84b5622179f7a496daee5584d4e2dde91
Signed-off-by: default avatarVenkat Gopalakrishnan <venkatg@codeaurora.org>
parent 057bdafd
Loading
Loading
Loading
Loading
+11 −8
Original line number Diff line number Diff line
@@ -1498,12 +1498,8 @@ static int ufs_qcom_setup_clocks(struct ufs_hba *hba, bool on,

		/* M-PHY RMMI interface clocks can be turned off */
		ufs_qcom_phy_disable_iface_clk(host->generic_phy);
		/*
		 * If auto hibern8 is supported then the link will already
		 * be in hibern8 state and the ref clock can be gated.
		 */
		if (ufshcd_is_auto_hibern8_supported(hba) ||
		    !ufs_qcom_is_link_active(hba)) {
		if (!ufs_qcom_is_link_active(hba)) {
			if (!is_gating_context)
				/* turn off UFS local PHY ref_clk */
				ufs_qcom_phy_disable_ref_clk(host->generic_phy);
			/* disable device ref_clk */
@@ -1960,6 +1956,13 @@ static int ufs_qcom_init(struct ufs_hba *hba)
	host->hba = hba;
	ufshcd_set_variant(hba, host);

	/*
	 * voting/devoting device ref_clk source is time consuming hence
	 * skip devoting it during aggressive clock gating. This clock
	 * will still be gated off during runtime suspend.
	 */
	hba->no_ref_clk_gating = true;

	err = ufs_qcom_ice_get_dev(host);
	if (err == -EPROBE_DEFER) {
		/*
+1 −6
Original line number Diff line number Diff line
@@ -1346,12 +1346,7 @@ static void ufshcd_gate_work(struct work_struct *work)
		ufshcd_set_link_hibern8(hba);
	}

	/*
	 * If auto hibern8 is supported then the link will already
	 * be in hibern8 state and the ref clock can be gated.
	 */
	if ((ufshcd_is_auto_hibern8_supported(hba) ||
	     !ufshcd_is_link_active(hba)) && !hba->no_ref_clk_gating)
	if (!ufshcd_is_link_active(hba) && !hba->no_ref_clk_gating)
		ufshcd_disable_clocks(hba, true);
	else
		/* If link is active, device ref_clk can't be switched off */