drm/nouveau/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>
This commit is contained in:
parent
d4a312dc90
commit
85fa319d8a
drivers/gpu/drm/nouveau/nvkm/subdev/clk
|
@ -214,7 +214,7 @@ nvkm_pstate_work(struct work_struct *work)
|
||||||
pstate = clk->pwrsrc ? clk->ustate_ac : clk->ustate_dc;
|
pstate = clk->pwrsrc ? clk->ustate_ac : clk->ustate_dc;
|
||||||
if (clk->state_nr && pstate != -1) {
|
if (clk->state_nr && pstate != -1) {
|
||||||
pstate = (pstate < 0) ? clk->astate : pstate;
|
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);
|
pstate = max(pstate, clk->dstate);
|
||||||
} else {
|
} else {
|
||||||
pstate = clk->pstate = -1;
|
pstate = clk->pstate = -1;
|
||||||
|
|
Loading…
Reference in New Issue