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

Commit 816cd2b9 authored by Blagovest Kolenichev's avatar Blagovest Kolenichev
Browse files

Revert "FROMLIST: scsi: ufs-qcom: Adjust bus bandwidth voting and unvoting"



This reverts commit 99156597.

This is a preparation change for merging android-5.4.5 into
msm-5.4 branch:

Equivalent logic was already submitted into msm-5.4.

Change-Id: Ic80f502d919e686451a79fdcce3da013f12509f0
Signed-off-by: default avatarBlagovest Kolenichev <bkolenichev@codeaurora.org>
parent 09cdc723
Loading
Loading
Loading
Loading
+18 −39
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ enum {

static struct ufs_qcom_host *ufs_qcom_hosts[MAX_UFS_QCOM_HOSTS];

static int ufs_qcom_set_bus_vote(struct ufs_qcom_host *host, int vote);
static void ufs_qcom_get_default_testbus_cfg(struct ufs_qcom_host *host);
static int ufs_qcom_set_dme_vs_core_clk_ctrl_clear_div(struct ufs_hba *hba,
						       u32 clk_cycles);
@@ -629,7 +630,7 @@ static void ufs_qcom_get_speed_mode(struct ufs_pa_layer_attr *p, char *result)
	}
}

static int __ufs_qcom_set_bus_vote(struct ufs_qcom_host *host, int vote)
static int ufs_qcom_set_bus_vote(struct ufs_qcom_host *host, int vote)
{
	int err = 0;

@@ -660,7 +661,7 @@ static int ufs_qcom_update_bus_bw_vote(struct ufs_qcom_host *host)

	vote = ufs_qcom_get_bus_vote(host, mode);
	if (vote >= 0)
		err = __ufs_qcom_set_bus_vote(host, vote);
		err = ufs_qcom_set_bus_vote(host, vote);
	else
		err = vote;

@@ -671,35 +672,6 @@ static int ufs_qcom_update_bus_bw_vote(struct ufs_qcom_host *host)
	return err;
}

static int ufs_qcom_set_bus_vote(struct ufs_hba *hba, bool on)
{
	struct ufs_qcom_host *host = ufshcd_get_variant(hba);
	int vote, err;

	/*
	 * In case ufs_qcom_init() is not yet done, simply ignore.
	 * This ufs_qcom_set_bus_vote() shall be called from
	 * ufs_qcom_init() after init is done.
	 */
	if (!host)
		return 0;

	if (on) {
		vote = host->bus_vote.saved_vote;
		if (vote == host->bus_vote.min_bw_vote)
			ufs_qcom_update_bus_bw_vote(host);
	} else {
		vote = host->bus_vote.min_bw_vote;
	}

	err = __ufs_qcom_set_bus_vote(host, vote);
	if (err)
		dev_err(hba->dev, "%s: set bus vote failed %d\n",
				 __func__, err);

	return err;
}

static ssize_t
show_ufs_to_mem_max_bus_bw(struct device *dev, struct device_attribute *attr,
			char *buf)
@@ -776,7 +748,7 @@ static int ufs_qcom_update_bus_bw_vote(struct ufs_qcom_host *host)
	return 0;
}

static int ufs_qcom_set_bus_vote(struct ufs_hba *host, bool on)
static int ufs_qcom_set_bus_vote(struct ufs_qcom_host *host, int vote)
{
	return 0;
}
@@ -1021,7 +993,8 @@ static int ufs_qcom_setup_clocks(struct ufs_hba *hba, bool on,
				 enum ufs_notify_change_status status)
{
	struct ufs_qcom_host *host = ufshcd_get_variant(hba);
	int err = 0;
	int err;
	int vote = 0;

	/*
	 * In case ufs_qcom_init() is not yet done, simply ignore.
@@ -1031,21 +1004,28 @@ static int ufs_qcom_setup_clocks(struct ufs_hba *hba, bool on,
	if (!host)
		return 0;

	if (on && (status == PRE_CHANGE)) {
		err = ufs_qcom_set_bus_vote(hba, true);
	} else if (on && (status == POST_CHANGE)) {
	if (on && (status == POST_CHANGE)) {
		/* enable the device ref clock for HS mode*/
		if (ufshcd_is_hs_mode(&hba->pwr_info))
			ufs_qcom_dev_ref_clk_ctrl(host, true);
		vote = host->bus_vote.saved_vote;
		if (vote == host->bus_vote.min_bw_vote)
			ufs_qcom_update_bus_bw_vote(host);

	} else if (!on && (status == PRE_CHANGE)) {
		if (!ufs_qcom_is_link_active(hba)) {
			/* disable device ref_clk */
			ufs_qcom_dev_ref_clk_ctrl(host, false);
		}
	} else if (!on && (status == POST_CHANGE)) {
		err = ufs_qcom_set_bus_vote(hba, false);

		vote = host->bus_vote.min_bw_vote;
	}

	err = ufs_qcom_set_bus_vote(host, vote);
	if (err)
		dev_err(hba->dev, "%s: set bus vote failed %d\n",
				__func__, err);

	return err;
}

@@ -1212,7 +1192,6 @@ static int ufs_qcom_init(struct ufs_hba *hba)
	ufs_qcom_set_caps(hba);
	ufs_qcom_advertise_quirks(hba);

	ufs_qcom_set_bus_vote(hba, true);
	ufs_qcom_setup_clocks(hba, true, POST_CHANGE);

	if (hba->dev->id < MAX_UFS_QCOM_HOSTS)