From: Chad Goodman Date: Tue, 27 Nov 2012 03:01:35 +0000 (-0800) Subject: GPU: force GPU clock to change 1 clock step at a time X-Git-Url: https://ziggy471.com/git/gitweb.cgi?p=ziggy471-sgs3-jb.git;a=commitdiff;h=7ba69885981b38d5d4405a2e6c7d87553fc6acb8 GPU: force GPU clock to change 1 clock step at a time Signed-off-by: Ziggy --- --- a/drivers/gpu/msm/kgsl_pwrctrl.c +++ b/drivers/gpu/msm/kgsl_pwrctrl.c @@ -64,9 +64,17 @@ void kgsl_pwrctrl_pwrlevel_change(struct new_level >= pwr->thermal_pwrlevel && new_level != pwr->active_pwrlevel) { struct kgsl_pwrlevel *pwrlevel = &pwr->pwrlevels[new_level]; + int diff = new_level - pwr->active_pwrlevel; + int d = (diff > 0) ? 1 : -1; + int level = pwr->active_pwrlevel; pwr->active_pwrlevel = new_level; if ((test_bit(KGSL_PWRFLAGS_CLK_ON, &pwr->power_flags)) || (device->state == KGSL_STATE_NAP)) { + while (level != new_level) { + level += d; + clk_set_rate(pwr->grp_clks[0], + pwr->pwrlevels[level].gpu_freq); + } /* * On some platforms, instability is caused on * changing clock freq when the core is busy.