Lines Matching refs:ppmd

494 	ppm_dev_t *ppmd;  in xcppm_detach_ctlop()  local
496 ppmd = PPM_GET_PRIVATE(dip); in xcppm_detach_ctlop()
497 if (ppmd == NULL || reqp->req.ppm_config_req.result != DDI_SUCCESS) in xcppm_detach_ctlop()
515 ppm_dev_t *ppmd; in xcppm_resume_ctlop() local
518 ppmd = PPM_GET_PRIVATE(dip); in xcppm_resume_ctlop()
519 if (ppmd == NULL) in xcppm_resume_ctlop()
526 domp = ppmd->domp; in xcppm_resume_ctlop()
529 for (ppmd = domp->devlist; ppmd; ppmd = ppmd->next) { in xcppm_resume_ctlop()
530 if (ppmd->dip == dip && ppmd->level) in xcppm_resume_ctlop()
543 for (ppmd = domp->devlist; ppmd; ppmd = ppmd->next) { in xcppm_resume_ctlop()
544 if (ppmd->dip == dip) in xcppm_resume_ctlop()
545 ppmd->level = ppmd->rplvl = PM_LEVEL_UNKNOWN; in xcppm_resume_ctlop()
557 xcppm_set_level(ppm_dev_t *ppmd, int cmpt, int level, boolean_t change) in xcppm_set_level() argument
566 ret = pm_power(ppmd->dip, cmpt, level); in xcppm_set_level()
569 str, ppmd->path, change, ppmd->level, level, ret)); in xcppm_set_level()
572 ppmd->level = level; in xcppm_set_level()
573 ppmd->rplvl = PM_LEVEL_UNKNOWN; in xcppm_set_level()
581 xcppm_change_power_level(ppm_dev_t *ppmd, int cmpt, int level) in xcppm_change_power_level() argument
583 return (xcppm_set_level(ppmd, cmpt, level, B_TRUE)); in xcppm_change_power_level()
588 xcppm_record_level_change(ppm_dev_t *ppmd, int cmpt, int level) in xcppm_record_level_change() argument
590 return (xcppm_set_level(ppmd, cmpt, level, B_FALSE)); in xcppm_record_level_change()
914 ppm_dev_t *ppmd; in xcppm_manage_cpus() local
929 ppmd = PPM_GET_PRIVATE(dip); in xcppm_manage_cpus()
930 ASSERT(MUTEX_HELD(&ppmd->domp->lock)); in xcppm_manage_cpus()
939 if (ppmd->level == PM_LEVEL_UNKNOWN && new == ppmd->highest) { in xcppm_manage_cpus()
940 *result = ret = xcppm_change_power_level(ppmd, 0, new); in xcppm_manage_cpus()
948 if (new == ppmd->level) { in xcppm_manage_cpus()
953 ppmd->rplvl = new; in xcppm_manage_cpus()
962 for (ppmd = xcppm_cpu.devlist; ppmd; ppmd = ppmd->next) { in xcppm_manage_cpus()
963 if (ppmd->rplvl == new) in xcppm_manage_cpus()
979 "need pm_rescan\n", str, PM_NAME(ppmd->dip), in xcppm_manage_cpus()
980 PM_ADDR(ppmd->dip), (void *)ppmd->dip, in xcppm_manage_cpus()
983 rescan_dip = ppmd->dip; in xcppm_manage_cpus()
997 for (ppmd = xcppm_cpu.devlist; ppmd; ppmd = ppmd->next) { in xcppm_manage_cpus()
998 if (ppmd->dip == dip) in xcppm_manage_cpus()
1005 p->ppd_who = ppmd->dip; in xcppm_manage_cpus()
1006 p->ppd_cmpt = ppmd->cmpt; in xcppm_manage_cpus()
1037 ppm_dev_t *ppmd; in xcppm_manage_fet() local
1039 ppmd = PPM_GET_PRIVATE(dip); in xcppm_manage_fet()
1041 ppmd->path, ppm_get_ctlstr(reqp->request_type, ~0))); in xcppm_manage_fet()
1064 str, ppmd->path, old, new)); in xcppm_manage_fet()
1066 ASSERT(old == ppmd->level); in xcppm_manage_fet()
1067 if (new == ppmd->level) in xcppm_manage_fet()
1070 PPM_LOCK_DOMAIN(ppmd->domp); in xcppm_manage_fet()
1076 if (ppmd->domp->pwr_cnt == 0) in xcppm_manage_fet()
1079 ppmd->domp->pwr_cnt++; in xcppm_manage_fet()
1082 str, ppmd->domp->pwr_cnt)); in xcppm_manage_fet()
1086 PPM_UNLOCK_DOMAIN(ppmd->domp); in xcppm_manage_fet()
1088 ASSERT(ppmd->domp->pwr_cnt > 0); in xcppm_manage_fet()
1090 if ((*result = (*pwr_func)(ppmd, cmpt, new)) != DDI_SUCCESS) { in xcppm_manage_fet()
1092 str, ppmd->path)); in xcppm_manage_fet()
1095 PPM_LOCK_DOMAIN(ppmd->domp); in xcppm_manage_fet()
1103 if ((*result == DDI_SUCCESS && ppmd->level == 0) || in xcppm_manage_fet()
1105 ASSERT(ppmd->domp->pwr_cnt > 0); in xcppm_manage_fet()
1106 ppmd->domp->pwr_cnt--; in xcppm_manage_fet()
1107 DPRINTF(D_FET, ("%s: DN cnt = %d\n", str, ppmd->domp->pwr_cnt)); in xcppm_manage_fet()
1108 if (ppmd->domp->pwr_cnt == 0) in xcppm_manage_fet()
1112 PPM_UNLOCK_DOMAIN(ppmd->domp); in xcppm_manage_fet()
1113 ASSERT(ppmd->domp->pwr_cnt >= 0); in xcppm_manage_fet()
1137 ppm_dev_t *ppmd, *codev; in xcppm_manage_pciupa() local
1140 ppmd = PPM_GET_PRIVATE(dip); in xcppm_manage_pciupa()
1142 ppmd->path, ppm_get_ctlstr(reqp->request_type, ~0))); in xcppm_manage_pciupa()
1163 ASSERT(ppmd); /* since it should be locked already */ in xcppm_manage_pciupa()
1165 if (new == ppmd->level) in xcppm_manage_pciupa()
1169 str, ppmd->path, ppmd->level, new)); in xcppm_manage_pciupa()
1174 flags = ppmd->flags; in xcppm_manage_pciupa()
1179 ppmd->flags)); in xcppm_manage_pciupa()
1187 for (codev = ppmd->domp->devlist; codev; codev = codev->next) in xcppm_manage_pciupa()
1191 if (new > ppmd->level) { in xcppm_manage_pciupa()
1205 if ((retval = (*pwr_func)(ppmd, 0, new)) != DDI_SUCCESS) { in xcppm_manage_pciupa()
1209 } else if (new < ppmd->level) { in xcppm_manage_pciupa()
1219 ppmd->rplvl = new; in xcppm_manage_pciupa()
1222 if ((retval = (*pwr_func)(ppmd, cmpt, new)) != DDI_SUCCESS && in xcppm_manage_pciupa()
1223 ppmd->level != new) { in xcppm_manage_pciupa()
1262 ppm_dev_t *ppmd; in xcppm_manage_1394() local
1264 ppmd = PPM_GET_PRIVATE(dip); in xcppm_manage_1394()
1266 ppmd->path, ppm_get_ctlstr(reqp->request_type, ~0))); in xcppm_manage_1394()
1290 ASSERT(ppmd); /* since it must already be locked */ in xcppm_manage_1394()
1291 ASSERT(old == ppmd->level); in xcppm_manage_1394()
1293 if (new == ppmd->level) in xcppm_manage_1394()
1297 if (cmpt == 0 && new < ppmd->level) { in xcppm_manage_1394()
1299 (*pwr_func)(ppmd, cmpt, new)) != DDI_SUCCESS) { in xcppm_manage_1394()
1302 if (new == ppmd->lowest) in xcppm_manage_1394()
1304 ppmd->level = new; in xcppm_manage_1394()
1309 if (cmpt == 0 && new > ppmd->level) { in xcppm_manage_1394()
1310 if (ppmd->level == ppmd->lowest) { in xcppm_manage_1394()
1320 (*pwr_func)(ppmd, cmpt, new)) != DDI_SUCCESS && in xcppm_manage_1394()
1321 ppmd->level == ppmd->lowest) { in xcppm_manage_1394()
1324 ppmd->level = new; in xcppm_manage_1394()
1335 *result = xcppm_change_power_level(ppmd, cmpt, new); in xcppm_manage_1394()
1344 xcppm_lock_one(ppm_dev_t *ppmd, power_req_t *reqp, int *iresp) in xcppm_lock_one() argument
1348 pm_lock_power_single(ppmd->dip, in xcppm_lock_one()
1353 pm_unlock_power_single(ppmd->dip, in xcppm_lock_one()
1358 *iresp = pm_try_locking_power_single(ppmd->dip, in xcppm_lock_one()
1427 ppm_dev_t *ppmd; in xcppm_ctlops() local
1485 ppmd = PPM_GET_PRIVATE(rdip); in xcppm_ctlops()
1487 if (ppmd) in xcppm_ctlops()
1489 } else if (!ppmd) { in xcppm_ctlops()
1508 ppmd = PPM_GET_PRIVATE(rdip); in xcppm_ctlops()
1509 if (ppmd) in xcppm_ctlops()
1510 domp = ppmd->domp; in xcppm_ctlops()
1514 ppmd = ppm_get_dev(rdip, domp); in xcppm_ctlops()
1521 ppmd->path, ppm_get_ctlstr(reqp->request_type, D_LOCKS))); in xcppm_ctlops()
1526 xcppm_lock_one(ppmd, reqp, result); in xcppm_ctlops()
1531 ppmd = PPM_GET_PRIVATE(rdip); in xcppm_ctlops()
1532 if (ppmd) in xcppm_ctlops()
1533 domp = ppmd->domp; in xcppm_ctlops()
1537 ppmd = ppm_get_dev(rdip, domp); in xcppm_ctlops()
1555 ppmd = PPM_GET_PRIVATE(rdip); in xcppm_ctlops()
1556 if (ppmd == NULL) { in xcppm_ctlops()
1559 ppmd = ppm_get_dev(rdip, domp); in xcppm_ctlops()
1566 str, ppmd->path); in xcppm_ctlops()
1570 if (ppmd->domp == &xcppm_cpu) in xcppm_ctlops()
1572 else if (ppmd->domp == &xcppm_fet) in xcppm_ctlops()
1574 else if (ppmd->domp == &xcppm_upa) in xcppm_ctlops()
1577 ASSERT(ppmd->domp == &xcppm_1394); in xcppm_ctlops()
1590 xcppm_dev_init(ppm_dev_t *ppmd) in xcppm_dev_init() argument
1597 ASSERT(MUTEX_HELD(&ppmd->domp->lock)); in xcppm_dev_init()
1598 ppmd->level = PM_LEVEL_UNKNOWN; in xcppm_dev_init()
1599 ppmd->rplvl = PM_LEVEL_UNKNOWN; in xcppm_dev_init()
1601 dip = ppmd->dip; in xcppm_dev_init()
1613 pm_comp = &dcomps[ppmd->cmpt].pmc_comp; in xcppm_dev_init()
1615 ppmd->lowest = pm_comp->pmc_lvals[0]; in xcppm_dev_init()
1616 ASSERT(ppmd->lowest >= 0); in xcppm_dev_init()
1618 ppmd->highest = pm_comp->pmc_lvals[maxi]; in xcppm_dev_init()
1624 if (ppmd->domp == &xcppm_fet) { in xcppm_dev_init()
1629 ppmd->domp->pwr_cnt++; in xcppm_dev_init()
1631 ppmd->domp->pwr_cnt)); in xcppm_dev_init()
1632 } else if (ppmd->domp == &xcppm_upa) { in xcppm_dev_init()
1637 if (strstr(ppmd->path, "pci@8,700000")) in xcppm_dev_init()
1638 ppmd->flags = XCPPMF_PCIB; in xcppm_dev_init()
1639 else if (strstr(ppmd->path, "upa@8,480000")) in xcppm_dev_init()
1640 ppmd->flags = XCPPMF_UPA; in xcppm_dev_init()
1649 xcppm_dev_fini(ppm_dev_t *ppmd) in xcppm_dev_fini() argument
1651 ASSERT(MUTEX_HELD(&ppmd->domp->lock)); in xcppm_dev_fini()
1652 if (ppmd->domp == &xcppm_fet) { in xcppm_dev_fini()
1653 if (ppmd->level != ppmd->lowest) { in xcppm_dev_fini()
1654 ppmd->domp->pwr_cnt--; in xcppm_dev_fini()
1656 ppmd->domp->pwr_cnt)); in xcppm_dev_fini()