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

Commit 2f588eeb authored by Lina Iyer's avatar Lina Iyer Committed by Blagovest Kolenichev
Browse files

Revert "soc: qcom: rpmh: Update dirty flag only when data changes"



This reverts commit 9edb7370.

This is a preparation change for merging android-5.4.54 into
msm-5.4 branch. Revert this change to continue using existing
driver that is already supporting same functionality being
added in this change.

Change-Id: I017becf75b2e5383902dd91e33e94702127be94f
Signed-off-by: default avatarBlagovest Kolenichev <bkolenichev@codeaurora.org>
parent 29379006
Loading
Loading
Loading
Loading
+8 −11
Original line number Diff line number Diff line
@@ -119,7 +119,6 @@ static struct cache_req *cache_rpm_request(struct rpmh_ctrlr *ctrlr,
{
	struct cache_req *req;
	unsigned long flags;
	u32 old_sleep_val, old_wake_val;

	spin_lock_irqsave(&ctrlr->cache_lock, flags);
	req = __find_req(ctrlr, cmd->addr);
@@ -134,27 +133,26 @@ static struct cache_req *cache_rpm_request(struct rpmh_ctrlr *ctrlr,

	req->addr = cmd->addr;
	req->sleep_val = req->wake_val = UINT_MAX;
	INIT_LIST_HEAD(&req->list);
	list_add_tail(&req->list, &ctrlr->cache);

existing:
	old_sleep_val = req->sleep_val;
	old_wake_val = req->wake_val;

	switch (state) {
	case RPMH_ACTIVE_ONLY_STATE:
		if (req->sleep_val != UINT_MAX)
			req->wake_val = cmd->data;
		break;
	case RPMH_WAKE_ONLY_STATE:
		req->wake_val = cmd->data;
		break;
	case RPMH_SLEEP_STATE:
		req->sleep_val = cmd->data;
		break;
	default:
		break;
	}

	ctrlr->dirty = (req->sleep_val != old_sleep_val ||
			req->wake_val != old_wake_val) &&
			req->sleep_val != UINT_MAX &&
			req->wake_val != UINT_MAX;

	ctrlr->dirty = true;
unlock:
	spin_unlock_irqrestore(&ctrlr->cache_lock, flags);

@@ -289,7 +287,6 @@ static void cache_batch(struct rpmh_ctrlr *ctrlr, struct batch_cache_req *req)

	spin_lock_irqsave(&ctrlr->cache_lock, flags);
	list_add_tail(&req->list, &ctrlr->batch_cache);
	ctrlr->dirty = true;
	spin_unlock_irqrestore(&ctrlr->cache_lock, flags);
}

@@ -326,7 +323,6 @@ static void invalidate_batch(struct rpmh_ctrlr *ctrlr)
	list_for_each_entry_safe(req, tmp, &ctrlr->batch_cache, list)
		kfree(req);
	INIT_LIST_HEAD(&ctrlr->batch_cache);
	ctrlr->dirty = true;
	spin_unlock_irqrestore(&ctrlr->cache_lock, flags);
}

@@ -513,6 +509,7 @@ int rpmh_invalidate(const struct device *dev)
	int ret;

	invalidate_batch(ctrlr);
	ctrlr->dirty = true;

	do {
		ret = rpmh_rsc_invalidate(ctrlr_to_drv(ctrlr));