diff options
| author | Linux Build Service Account <lnxbuild@quicinc.com> | 2017-07-06 23:41:16 -0700 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-07-06 23:41:16 -0700 |
| commit | 6b67ad013a290eaa48b429d7897f589477eb6555 (patch) | |
| tree | ba6d64667d099f8df58abf56bd5fa15830abac00 /drivers/gpu | |
| parent | abfdf9aa5a9199e8bf9107506d022afb166a2396 (diff) | |
| parent | aac10e39c7eeba471339fd79f25d51fefd547ea4 (diff) | |
Merge "msm: kgsl: Fix a dead loop issue while changing gpu frequency"
Diffstat (limited to 'drivers/gpu')
| -rw-r--r-- | drivers/gpu/msm/kgsl_pwrscale.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/gpu/msm/kgsl_pwrscale.c b/drivers/gpu/msm/kgsl_pwrscale.c index 7f93ab8fa8d4..24a1a42af74e 100644 --- a/drivers/gpu/msm/kgsl_pwrscale.c +++ b/drivers/gpu/msm/kgsl_pwrscale.c @@ -550,7 +550,11 @@ int kgsl_devfreq_target(struct device *dev, unsigned long *freq, u32 flags) /* If the governor recommends a new frequency, update it here */ if (*freq != cur_freq) { level = pwr->max_pwrlevel; - for (i = pwr->min_pwrlevel; i >= pwr->max_pwrlevel; i--) + /* + * To avoid infinite loop issue type cast max_pwrlevel to + * signed integer type + */ + for (i = pwr->min_pwrlevel; i >= (int)pwr->max_pwrlevel; i--) if (*freq <= pwr->pwrlevels[i].gpu_freq) { if (pwr->thermal_cycle == CYCLE_ACTIVE) level = _thermal_adjust(pwr, i); |
