Lines Matching defs:cpupm
395 cpudrv_pm_t *cpupm;
471 cpupm = &(cpudsp->cpudrv_pm);
475 cpupm->cur_spd->pm_level,
476 CPUDRV_TOPSPEED(cpupm)->pm_level));
480 if (!cpudrv_direct_pm && (cpupm->cur_spd !=
481 CPUDRV_TOPSPEED(cpupm))) {
482 if (cpupm->pm_busycnt < 1) {
485 cpupm->pm_busycnt++;
497 CPUDRV_TOPSPEED(cpupm)->pm_level) !=
505 CPUDRV_TOPSPEED(cpupm)->pm_level);
655 cpudrv_pm_t *cpupm = &(cpudsp->cpudrv_pm);
670 cpupm->num_spd = nspeeds;
701 cpupm->head_spd = cur_spd;
702 CPUDRV_TOPSPEED(cpupm) = cur_spd;
713 cur_spd->up_spd = cpupm->head_spd;
759 cpupm->head_spd->speed, cpupm->num_spd));
760 for (cur_spd = cpupm->head_spd; cur_spd; cur_spd = cur_spd->down_spd) {
783 cpudrv_pm_t *cpupm = &(cpudsp->cpudrv_pm);
786 cur_spd = cpupm->head_spd;
792 bzero(cpupm, sizeof (cpudrv_pm_t));
801 cpudrv_pm_t *cpupm = &(cpudsp->cpudrv_pm);
810 pmc = kmem_zalloc((cpupm->num_spd + 1) * sizeof (char *), KM_SLEEP);
812 if (cpupm->num_spd > CPUDRV_COMP_MAX_VAL) {
816 kmem_free(pmc, (cpupm->num_spd + 1) * sizeof (char *));
820 for (i = cpupm->num_spd, cur_spd = cpupm->head_spd; i > 0;
824 comp_spd = CPUDRV_COMP_SPEED(cpupm, cur_spd);
829 for (j = cpupm->num_spd; j >= i; j--) {
832 kmem_free(pmc, (cpupm->num_spd + 1) *
836 CPUDRV_COMP_SPRINT(pmc[i], cpupm, cur_spd, comp_spd)
848 "pm-components", pmc, cpupm->num_spd + 1) == DDI_PROP_SUCCESS) {
856 for (i = cpupm->num_spd; i > 0; i--) {
860 kmem_free(pmc, (cpupm->num_spd + 1) * sizeof (char *));
867 #define CPUDRV_MONITOR_PM_IDLE_COMP(dip, cpupm) { \
868 if ((cpupm)->pm_busycnt >= 1) { \
874 (cpupm)->pm_busycnt--; \
886 #define CPUDRV_MONITOR_PM_BUSY_COMP(dip, cpupm) { \
887 if ((cpupm)->pm_busycnt < 1) { \
893 (cpupm)->pm_busycnt++; \
905 #define CPUDRV_MONITOR_PM_BUSY_AND_RAISE(dip, cpudsp, cpupm, new_spd) { \
911 CPUDRV_MONITOR_PM_BUSY_COMP((dip), (cpupm)); \
968 cpudrv_pm_t *cpupm;
979 if (cpupm->lastquan_mstate[state] > msnsecs[state]) \
980 msnsecs[state] = cpupm->lastquan_mstate[state]; \
981 cnt = msnsecs[state] - cpupm->lastquan_mstate[state]; \
982 cpupm->lastquan_mstate[state] = msnsecs[state]
990 cpupm = &(cpudsp->cpudrv_pm);
991 if (cpupm->timeout_id == 0) {
995 cur_spd = cpupm->cur_spd;
1023 CPUDRV_MONITOR_PM_BUSY_COMP(dip, cpupm);
1035 CPUDRV_MONITOR_PM_BUSY_AND_RAISE(dip, cpudsp, cpupm,
1036 CPUDRV_TOPSPEED(cpupm));
1046 if (!cpupm->pm_started) {
1047 cpupm->pm_started = B_TRUE;
1060 if (cpupm->lastquan_ticks == 0) {
1061 cpupm->lastquan_ticks = NSEC_TO_TICK(gethrtime());
1077 tick_cnt = ticks - cpupm->lastquan_ticks;
1079 cpupm->lastquan_ticks = ticks;
1091 system_cnt, cur_spd->pm_level, cpupm->pm_busycnt));
1125 CPUDRV_MONITOR_PM_BUSY_COMP(dip, cpupm);
1128 CPUDRV_MONITOR_PM_BUSY_AND_RAISE(dip, cpudsp, cpupm,
1139 CPUDRV_MONITOR_PM_IDLE_COMP(dip, cpupm);
1161 CPUDRV_MONITOR_PM_BUSY_COMP(dip, cpupm);
1165 mutex_enter(&cpupm->timeout_lock);
1166 ASSERT(cpupm->timeout_count > 0);
1167 cpupm->timeout_count--;
1168 cv_signal(&cpupm->timeout_cv);
1169 mutex_exit(&cpupm->timeout_lock);