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
87 if (!list_empty(&pstate->list)) { in nvkm_cstate_prog()
88 cstate = list_entry(pstate->list.prev, typeof(*cstate), head); in nvkm_cstate_prog()
90 cstate = &pstate->base; in nvkm_cstate_prog()
94 ret = nvkm_therm_cstate(therm, pstate->fanspeed, +1); in nvkm_cstate_prog()
122 ret = nvkm_therm_cstate(therm, pstate->fanspeed, -1); in nvkm_cstate_prog()
138 nvkm_cstate_new(struct nvkm_clk *clk, int idx, struct nvkm_pstate *pstate) in nvkm_cstate_new() argument
155 *cstate = pstate->base; in nvkm_cstate_new()
160 u32 freq = nvkm_clk_adjust(clk, true, pstate->pstate, in nvkm_cstate_new()
167 list_add(&cstate->head, &pstate->list); in nvkm_cstate_new()
179 struct nvkm_pstate *pstate; in nvkm_pstate_prog() local
182 list_for_each_entry(pstate, &clk->states, head) { in nvkm_pstate_prog()
188 clk->pstate = pstatei; in nvkm_pstate_prog()
191 int khz = pstate->base.domain[nv_clk_src_mem]; in nvkm_pstate_prog()
200 return nvkm_cstate_prog(clk, pstate, 0); in nvkm_pstate_prog()
208 int pstate; in nvkm_pstate_work() local
215 clk->pstate, clk->pwrsrc, clk->ustate_ac, clk->ustate_dc, in nvkm_pstate_work()
218 pstate = clk->pwrsrc ? clk->ustate_ac : clk->ustate_dc; in nvkm_pstate_work()
219 if (clk->state_nr && pstate != -1) { in nvkm_pstate_work()
220 pstate = (pstate < 0) ? clk->astate : pstate; in nvkm_pstate_work()
221 pstate = min(pstate, clk->state_nr - 1 + clk->tstate); in nvkm_pstate_work()
222 pstate = max(pstate, clk->dstate); in nvkm_pstate_work()
224 pstate = clk->pstate = -1; in nvkm_pstate_work()
227 nvkm_trace(subdev, "-> %d\n", pstate); in nvkm_pstate_work()
228 if (pstate != clk->pstate) { in nvkm_pstate_work()
229 int ret = nvkm_pstate_prog(clk, pstate); in nvkm_pstate_work()
232 pstate, ret); in nvkm_pstate_work()
251 nvkm_pstate_info(struct nvkm_clk *clk, struct nvkm_pstate *pstate) in nvkm_pstate_info() argument
260 if (pstate->pstate != 0xff) in nvkm_pstate_info()
261 snprintf(name, sizeof(name), "%02x", pstate->pstate); in nvkm_pstate_info()
264 u32 lo = pstate->base.domain[clock->name]; in nvkm_pstate_info()
270 list_for_each_entry(cstate, &pstate->list, head) { in nvkm_pstate_info()
294 nvkm_pstate_del(struct nvkm_pstate *pstate) in nvkm_pstate_del() argument
298 list_for_each_entry_safe(cstate, temp, &pstate->list, head) { in nvkm_pstate_del()
302 list_del(&pstate->head); in nvkm_pstate_del()
303 kfree(pstate); in nvkm_pstate_del()
311 struct nvkm_pstate *pstate; in nvkm_pstate_new() local
321 if (perfE.pstate == 0xff) in nvkm_pstate_new()
324 pstate = kzalloc(sizeof(*pstate), GFP_KERNEL); in nvkm_pstate_new()
325 cstate = &pstate->base; in nvkm_pstate_new()
326 if (!pstate) in nvkm_pstate_new()
329 INIT_LIST_HEAD(&pstate->list); in nvkm_pstate_new()
331 pstate->pstate = perfE.pstate; in nvkm_pstate_new()
332 pstate->fanspeed = perfE.fanspeed; in nvkm_pstate_new()
350 pstate->pstate, in nvkm_pstate_new()
358 data = nvbios_cstepEm(bios, pstate->pstate, &ver, &hdr, &cstepE); in nvkm_pstate_new()
362 nvkm_cstate_new(clk, idx, pstate); in nvkm_pstate_new()
366 nvkm_pstate_info(clk, pstate); in nvkm_pstate_new()
367 list_add_tail(&pstate->head, &clk->states); in nvkm_pstate_new()
378 struct nvkm_pstate *pstate; in nvkm_clk_ustate_update() local
385 list_for_each_entry(pstate, &clk->states, head) { in nvkm_clk_ustate_update()
386 if (pstate->pstate == req) in nvkm_clk_ustate_update()
391 if (pstate->pstate != req) in nvkm_clk_ustate_update()
504 clk->bstate.pstate = 0xff; in nvkm_clk_init()
524 clk->pstate = -1; in nvkm_clk_init()
533 struct nvkm_pstate *pstate, *temp; in nvkm_clk_dtor() local
541 list_for_each_entry_safe(pstate, temp, &clk->states, head) { in nvkm_clk_dtor()
542 nvkm_pstate_del(pstate); in nvkm_clk_dtor()