soc: qcom: rpmh-rsc: Correctly handle zero active TCS for solver mode

If we made an active request on a RSC that does not have a dedicated TCS
for active state use, then re-purposed wake TCSes should be checked for not
busy before setting solver mode.

Change-Id: I8a493f4ac15d31df5b1963e5ae0d5d9966b482cc
Signed-off-by: Maulik Shah <mkshah@codeaurora.org>
This commit is contained in:
Maulik Shah 2020-06-26 13:55:34 +05:30
commit fb9c36e4b2

View file

@ -617,6 +617,14 @@ void rpmh_rsc_mode_solver_set(struct rsc_drv *drv, bool enable)
int m;
struct tcs_group *tcs = get_tcs_of_type(drv, ACTIVE_TCS);
/*
* If we made an active request on a RSC that does not have a
* dedicated TCS for active state use, then re-purposed wake TCSes
* should be checked for not busy, because we used wake TCSes for
* active requests in this case.
*/
if (!tcs->num_tcs)
tcs = get_tcs_of_type(drv, WAKE_TCS);
again:
spin_lock(&drv->lock);
for (m = tcs->offset; m < tcs->offset + tcs->num_tcs; m++) {