Lines Matching refs:dom
255 cpupm_domain_t *dom; in cpupm_domain_find() local
257 dom = cpupm_domains; in cpupm_domain_find()
258 while (dom != NULL) { in cpupm_domain_find()
259 if (id == dom->cpd_id && type == dom->cpd_type) in cpupm_domain_find()
260 return (dom); in cpupm_domain_find()
261 dom = dom->cpd_next; in cpupm_domain_find()
272 cpupm_domain_t *dom; in cpupm_domain_create() local
276 dom = kmem_zalloc(sizeof (cpupm_domain_t), KM_SLEEP); in cpupm_domain_create()
277 dom->cpd_id = id; in cpupm_domain_create()
278 dom->cpd_type = type; in cpupm_domain_create()
281 dom->cpd_next = cpupm_domains; in cpupm_domain_create()
282 cpupm_domains = dom; in cpupm_domain_create()
284 return (dom); in cpupm_domain_create()
288 cpupm_domain_state_enum(struct cpu *cp, cpupm_domain_t *dom) in cpupm_domain_state_enum() argument
294 if (dom->cpd_nstates > 0) { in cpupm_domain_state_enum()
295 kmem_free(dom->cpd_states, in cpupm_domain_state_enum()
296 sizeof (cpupm_state_t) * dom->cpd_nstates); in cpupm_domain_state_enum()
297 dom->cpd_nstates = 0; in cpupm_domain_state_enum()
305 dom->cpd_nstates = cpupm_plat_state_enumerate(cp, dom->cpd_type, NULL); in cpupm_domain_state_enum()
307 if (dom->cpd_nstates == 0) in cpupm_domain_state_enum()
310 dom->cpd_states = in cpupm_domain_state_enum()
311 kmem_zalloc(dom->cpd_nstates * sizeof (cpupm_state_t), KM_SLEEP); in cpupm_domain_state_enum()
312 (void) cpupm_plat_state_enumerate(cp, dom->cpd_type, dom->cpd_states); in cpupm_domain_state_enum()
321 cpupm_domain_t *dom; in cpupm_domain_init() local
331 dom = cpupm_domain_find(did, type); in cpupm_domain_init()
332 if (dom == NULL) { in cpupm_domain_init()
333 dom = cpupm_domain_create(did, type); in cpupm_domain_init()
334 cpupm_domain_state_enum(cp, dom); in cpupm_domain_init()
346 dom->cpd_named_states[CPUPM_STATE_MAX_PERF] = in cpupm_domain_init()
347 &dom->cpd_states[0]; in cpupm_domain_init()
348 dom->cpd_named_states[CPUPM_STATE_LOW_POWER] = in cpupm_domain_init()
349 &dom->cpd_states[dom->cpd_nstates - 1]; in cpupm_domain_init()
354 dom->cpd_state = dom->cpd_named_states[CPUPM_STATE_MAX_PERF]; in cpupm_domain_init()
357 return (dom); in cpupm_domain_init()
374 cpupm_change_state(struct cpu *cp, cpupm_domain_t *dom, cpupm_state_t *state) in cpupm_change_state() argument
380 cpupm_domain_t *, dom, in cpupm_change_state()
383 dom->cpd_state = state; in cpupm_change_state()
392 cpupm_utilization_event(struct cpu *cp, hrtime_t now, cpupm_domain_t *dom, in cpupm_utilization_event() argument
425 if (dom->cpd_state == in cpupm_utilization_event()
426 dom->cpd_named_states[CPUPM_STATE_LOW_POWER]) { in cpupm_utilization_event()
428 dom->cpd_named_states[CPUPM_STATE_MAX_PERF]; in cpupm_utilization_event()
429 if (dom->cpd_governor == CPUPM_GOV_TRANS_WORK) { in cpupm_utilization_event()
430 dom->cpd_governor = CPUPM_GOV_DISENGAGED; in cpupm_utilization_event()
431 dom->cpd_tw = 0; in cpupm_utilization_event()
437 last = dom->cpd_last_lower; in cpupm_utilization_event()
438 dom->cpd_last_raise = now; in cpupm_utilization_event()
441 cpupm_domain_t *, dom, in cpupm_utilization_event()
445 if (dom->cpd_state == in cpupm_utilization_event()
446 dom->cpd_named_states[CPUPM_STATE_LOW_POWER]) { in cpupm_utilization_event()
461 if (dom->cpd_governor == CPUPM_GOV_DISENGAGED) { in cpupm_utilization_event()
470 if (++dom->cpd_ti >= in cpupm_utilization_event()
478 dom->cpd_governor = in cpupm_utilization_event()
480 dom->cpd_ti = 0; in cpupm_utilization_event()
483 cpupm_domain_t *, dom); in cpupm_utilization_event()
490 dom->cpd_ti = 0; in cpupm_utilization_event()
493 if (dom->cpd_governor == CPUPM_GOV_TRANS_WORK) { in cpupm_utilization_event()
499 cpupm_domain_t *, dom); in cpupm_utilization_event()
506 new_state = dom->cpd_named_states[CPUPM_STATE_MAX_PERF]; in cpupm_utilization_event()
508 } else if (dom->cpd_state == in cpupm_utilization_event()
509 dom->cpd_named_states[CPUPM_STATE_MAX_PERF]) { in cpupm_utilization_event()
517 if (dom->cpd_governor == CPUPM_GOV_TRANS_IDLE) { in cpupm_utilization_event()
525 if (++dom->cpd_ti >= in cpupm_utilization_event()
532 dom->cpd_governor = in cpupm_utilization_event()
534 dom->cpd_ti = 0; in cpupm_utilization_event()
537 cpupm_domain_t *, dom); in cpupm_utilization_event()
544 dom->cpd_ti = 0; in cpupm_utilization_event()
551 last = dom->cpd_last_raise; in cpupm_utilization_event()
552 dom->cpd_last_lower = now; in cpupm_utilization_event()
555 cpupm_domain_t *, dom, in cpupm_utilization_event()
559 if (dom->cpd_state == in cpupm_utilization_event()
560 dom->cpd_named_states[CPUPM_STATE_MAX_PERF]) { in cpupm_utilization_event()
568 if (dom->cpd_governor == CPUPM_GOV_DISENGAGED) { in cpupm_utilization_event()
576 if (++dom->cpd_tw >= in cpupm_utilization_event()
584 dom->cpd_governor = in cpupm_utilization_event()
586 dom->cpd_tw = 0; in cpupm_utilization_event()
589 cpupm_domain_t *, dom); in cpupm_utilization_event()
596 dom->cpd_tw = 0; in cpupm_utilization_event()
599 if (dom->cpd_governor == CPUPM_GOV_TRANS_IDLE) { in cpupm_utilization_event()
605 cpupm_domain_t *, dom); in cpupm_utilization_event()
614 dom->cpd_named_states[CPUPM_STATE_LOW_POWER]; in cpupm_utilization_event()
616 } else if (dom->cpd_state == in cpupm_utilization_event()
617 dom->cpd_named_states[CPUPM_STATE_LOW_POWER]) { in cpupm_utilization_event()
625 if (dom->cpd_governor == CPUPM_GOV_TRANS_WORK) { in cpupm_utilization_event()
632 if (++dom->cpd_tw >= in cpupm_utilization_event()
639 dom->cpd_governor = in cpupm_utilization_event()
641 dom->cpd_tw = 0; in cpupm_utilization_event()
644 cpupm_domain_t *, dom); in cpupm_utilization_event()
651 dom->cpd_tw = 0; in cpupm_utilization_event()
662 (void) cpupm_change_state(cp, dom, new_state); in cpupm_utilization_event()
673 cpupm_domain_t *dom; in cpupm_redefine_max_activepwr_state() local
681 dom = cpupm_domain_find(did, type); in cpupm_redefine_max_activepwr_state()
684 dom = cpupm_domain_find(did, type); in cpupm_redefine_max_activepwr_state()
696 if (dom != NULL) { in cpupm_redefine_max_activepwr_state()
697 if (dom->cpd_state == in cpupm_redefine_max_activepwr_state()
698 dom->cpd_named_states[CPUPM_STATE_MAX_PERF]) { in cpupm_redefine_max_activepwr_state()
706 if (max_perf_level >= dom->cpd_nstates && in cpupm_redefine_max_activepwr_state()
707 dom->cpd_nstates > 1) { in cpupm_redefine_max_activepwr_state()
708 max_perf_level = dom->cpd_nstates - 1; in cpupm_redefine_max_activepwr_state()
711 dom->cpd_named_states[CPUPM_STATE_MAX_PERF] = in cpupm_redefine_max_activepwr_state()
712 &dom->cpd_states[max_perf_level]; in cpupm_redefine_max_activepwr_state()
720 dom->cpd_named_states[CPUPM_STATE_MAX_PERF]; in cpupm_redefine_max_activepwr_state()
722 (void) cpupm_change_state(cp, dom, new_state); in cpupm_redefine_max_activepwr_state()
751 cpupm_domain_t *dom; in cpupm_state_change_global() local
780 dom = (cpupm_domain_t *)pwr_pg->cmt_pg.pghw_handle; in cpupm_state_change_global()
787 (void) cpupm_change_state(cp, dom, in cpupm_state_change_global()
788 dom->cpd_named_states[state]); in cpupm_state_change_global()