summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/soc/google/vh/kernel/sched/sched_priv.h12
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/soc/google/vh/kernel/sched/sched_priv.h b/drivers/soc/google/vh/kernel/sched/sched_priv.h
index b2ec38b1717c..1cedbec26e5f 100644
--- a/drivers/soc/google/vh/kernel/sched/sched_priv.h
+++ b/drivers/soc/google/vh/kernel/sched/sched_priv.h
@@ -463,13 +463,13 @@ static inline bool get_prefer_idle(struct task_struct *p)
struct vendor_task_struct *vp = get_vendor_task_struct(p);
struct vendor_binder_task_struct *vbinder = get_vendor_binder_task_struct(p);
- if (vendor_sched_reduce_prefer_idle && !vp->uclamp_fork_reset)
- return (vg[vp->group].prefer_idle && p->prio <= DEFAULT_PRIO &&
- uclamp_eff_value_pixel_mod(p, UCLAMP_MAX) == SCHED_CAPACITY_SCALE) ||
- vp->prefer_idle || vbinder->prefer_idle;
+ if (get_uclamp_fork_reset(p, true) || vp->prefer_idle || vbinder->prefer_idle)
+ return true;
+ else if (vendor_sched_reduce_prefer_idle)
+ return vg[vp->group].prefer_idle && p->prio <= DEFAULT_PRIO &&
+ uclamp_eff_value_pixel_mod(p, UCLAMP_MAX) == SCHED_CAPACITY_SCALE;
else
- return vg[vp->group].prefer_idle || vp->prefer_idle || vbinder->prefer_idle ||
- vp->uclamp_fork_reset;
+ return vg[vp->group].prefer_idle;
}
static inline void init_vendor_task_struct(struct vendor_task_struct *v_tsk)