Lines Matching refs:pstate
41 u8 pstate, u8 domain, u32 input) in nvkm_clk_adjust() argument
48 data = nvbios_boostEm(bios, pstate, &ver, &hdr, &cnt, &len, &boostE); in nvkm_clk_adjust()
78 nvkm_cstate_prog(struct nvkm_clk *clk, struct nvkm_pstate *pstate, int cstatei) in nvkm_cstate_prog() argument
85 if (!list_empty(&pstate->list)) { in nvkm_cstate_prog()
86 cstate = list_entry(pstate->list.prev, typeof(*cstate), head); in nvkm_cstate_prog()
88 cstate = &pstate->base; in nvkm_cstate_prog()
92 ret = nvkm_therm_cstate(ptherm, pstate->fanspeed, +1); in nvkm_cstate_prog()
120 ret = nvkm_therm_cstate(ptherm, pstate->fanspeed, -1); in nvkm_cstate_prog()
136 nvkm_cstate_new(struct nvkm_clk *clk, int idx, struct nvkm_pstate *pstate) in nvkm_cstate_new() argument
153 *cstate = pstate->base; in nvkm_cstate_new()
158 u32 freq = nvkm_clk_adjust(clk, true, pstate->pstate, in nvkm_cstate_new()
165 list_add(&cstate->head, &pstate->list); in nvkm_cstate_new()
176 struct nvkm_pstate *pstate; in nvkm_pstate_prog() local
179 list_for_each_entry(pstate, &clk->states, head) { in nvkm_pstate_prog()
185 clk->pstate = pstatei; in nvkm_pstate_prog()
188 int khz = pstate->base.domain[nv_clk_src_mem]; in nvkm_pstate_prog()
197 return nvkm_cstate_prog(clk, pstate, 0); in nvkm_pstate_prog()
204 int pstate; in nvkm_pstate_work() local
211 clk->pstate, clk->pwrsrc, clk->ustate_ac, clk->ustate_dc, in nvkm_pstate_work()
214 pstate = clk->pwrsrc ? clk->ustate_ac : clk->ustate_dc; in nvkm_pstate_work()
215 if (clk->state_nr && pstate != -1) { in nvkm_pstate_work()
216 pstate = (pstate < 0) ? clk->astate : pstate; in nvkm_pstate_work()
217 pstate = min(pstate, clk->state_nr - 1 - clk->tstate); in nvkm_pstate_work()
218 pstate = max(pstate, clk->dstate); in nvkm_pstate_work()
220 pstate = clk->pstate = -1; in nvkm_pstate_work()
223 nv_trace(clk, "-> %d\n", pstate); in nvkm_pstate_work()
224 if (pstate != clk->pstate) { in nvkm_pstate_work()
225 int ret = nvkm_pstate_prog(clk, pstate); in nvkm_pstate_work()
228 pstate, ret); in nvkm_pstate_work()
247 nvkm_pstate_info(struct nvkm_clk *clk, struct nvkm_pstate *pstate) in nvkm_pstate_info() argument
255 if (pstate->pstate != 0xff) in nvkm_pstate_info()
256 snprintf(name, sizeof(name), "%02x", pstate->pstate); in nvkm_pstate_info()
259 u32 lo = pstate->base.domain[clock->name]; in nvkm_pstate_info()
265 list_for_each_entry(cstate, &pstate->list, head) { in nvkm_pstate_info()
289 nvkm_pstate_del(struct nvkm_pstate *pstate) in nvkm_pstate_del() argument
293 list_for_each_entry_safe(cstate, temp, &pstate->list, head) { in nvkm_pstate_del()
297 list_del(&pstate->head); in nvkm_pstate_del()
298 kfree(pstate); in nvkm_pstate_del()
306 struct nvkm_pstate *pstate; in nvkm_pstate_new() local
316 if (perfE.pstate == 0xff) in nvkm_pstate_new()
319 pstate = kzalloc(sizeof(*pstate), GFP_KERNEL); in nvkm_pstate_new()
320 cstate = &pstate->base; in nvkm_pstate_new()
321 if (!pstate) in nvkm_pstate_new()
324 INIT_LIST_HEAD(&pstate->list); in nvkm_pstate_new()
326 pstate->pstate = perfE.pstate; in nvkm_pstate_new()
327 pstate->fanspeed = perfE.fanspeed; in nvkm_pstate_new()
345 pstate->pstate, in nvkm_pstate_new()
353 data = nvbios_cstepEm(bios, pstate->pstate, &ver, &hdr, &cstepE); in nvkm_pstate_new()
357 nvkm_cstate_new(clk, idx, pstate); in nvkm_pstate_new()
361 nvkm_pstate_info(clk, pstate); in nvkm_pstate_new()
362 list_add_tail(&pstate->head, &clk->states); in nvkm_pstate_new()
373 struct nvkm_pstate *pstate; in nvkm_clk_ustate_update() local
380 list_for_each_entry(pstate, &clk->states, head) { in nvkm_clk_ustate_update()
381 if (pstate->pstate == req) in nvkm_clk_ustate_update()
386 if (pstate->pstate != req) in nvkm_clk_ustate_update()
494 clk->bstate.pstate = 0xff; in _nvkm_clk_init()
511 clk->pstate = -1; in _nvkm_clk_init()
520 struct nvkm_pstate *pstate, *temp; in _nvkm_clk_dtor() local
524 list_for_each_entry_safe(pstate, temp, &clk->states, head) { in _nvkm_clk_dtor()
525 nvkm_pstate_del(pstate); in _nvkm_clk_dtor()