summaryrefslogtreecommitdiff
path: root/drm/nouveau/nvkm/subdev/clk
diff options
context:
space:
mode:
authorWei Ni <wni@nvidia.com>2015-06-16 17:35:12 +0800
committerBen Skeggs <bskeggs@redhat.com>2015-08-28 12:37:24 +1000
commiteeb5b9a66138003568c2965a05114b16e4f3b151 (patch)
treed665e774591f9eb7cfb35854818726be474a5a74 /drm/nouveau/nvkm/subdev/clk
parentfbc04fe827eab9acff2af6a797ab245131db3827 (diff)
downloadnouveau-eeb5b9a66138003568c2965a05114b16e4f3b151.tar.gz
drm/nouveau/clk: fix tstate to pstate calculation
According to the tstate calculation in nvkm_clk_tstate(), the range of tstate is from -(clk->state_nr - 1) to 0, it mean the tstate is negative value. But in nvkm_pstate_work(), it use (clk->state_nr - 1 - clk->tstate) to limit pstate, it's not correct. This patch fix it to use (clk->state_nr - 1 + clk->tstate) to limit pstate. Signed-off-by: Wei Ni <wni@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drm/nouveau/nvkm/subdev/clk')
-rw-r--r--drm/nouveau/nvkm/subdev/clk/base.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drm/nouveau/nvkm/subdev/clk/base.c b/drm/nouveau/nvkm/subdev/clk/base.c
index 39a83d82e..77a0ab5ca 100644
--- a/drm/nouveau/nvkm/subdev/clk/base.c
+++ b/drm/nouveau/nvkm/subdev/clk/base.c
@@ -214,7 +214,7 @@ nvkm_pstate_work(struct work_struct *work)
pstate = clk->pwrsrc ? clk->ustate_ac : clk->ustate_dc;
if (clk->state_nr && pstate != -1) {
pstate = (pstate < 0) ? clk->astate : pstate;
- pstate = min(pstate, clk->state_nr - 1 - clk->tstate);
+ pstate = min(pstate, clk->state_nr - 1 + clk->tstate);
pstate = max(pstate, clk->dstate);
} else {
pstate = clk->pstate = -1;