Lines Matching defs:dstatep
228 struct dstate *dstatep;
264 dstatep = ddi_get_soft_state(dstates, instance);
265 dstatep->dip = devi;
266 mutex_init(&dstatep->lock, NULL, MUTEX_DRIVER, NULL);
295 rval = gen_create_minor_nodes(devi, dstatep);
310 gen_event_cb, NULL, &(dstatep->gen_cb_ids[0]));
316 gen_event_cb, NULL, &(dstatep->gen_cb_ids[1]));
322 gen_event_cb, NULL, &(dstatep->gen_cb_ids[2]));
328 gen_event_cb, NULL, &(dstatep->gen_cb_ids[3]));
335 NULL, &(dstatep->gen_cb_ids[4]));
342 NULL, &(dstatep->gen_cb_ids[5]));
348 mutex_enter(&dstatep->lock);
349 dstatep->flag &= ~OPEN_FLAG;
350 dstatep->flag &= ~PWR_HAS_CHANGED_ON_RESUME_FLAG;
351 dstatep->flag &= ~FAIL_SUSPEND_FLAG;
352 dstatep->flag &= ~PUP_WITH_PWR_HAS_CHANGED_FLAG;
353 dstatep->flag |= LOWER_POWER_FLAG;
354 dstatep->flag &= ~NO_INVOL_FLAG;
355 dstatep->flag |= PM_SUPPORTED_FLAG;
356 dstatep->busy[0] = 0;
357 dstatep->busy[1] = 0;
358 dstatep->level[0] = -1;
359 dstatep->level[1] = -1;
360 mutex_exit(&dstatep->lock);
365 dstatep->nodename = ddi_node_name(devi);
371 if (ddi_prop_exists(DDI_DEV_T_ANY, dstatep->dip,
378 mutex_enter(&dstatep->lock);
379 dstatep->flag |= NO_INVOL_FLAG;
380 mutex_exit(&dstatep->lock);
387 if (ddi_prop_exists(DDI_DEV_T_ANY, dstatep->dip,
413 mutex_enter(&dstatep->lock);
414 dstatep->flag &= ~PM_SUPPORTED_FLAG;
415 mutex_exit(&dstatep->lock);
421 if (dstatep->flag & PM_SUPPORTED_FLAG) {
422 if (ddi_prop_exists(DDI_DEV_T_ANY, dstatep->dip,
458 mutex_enter(&dstatep->lock);
459 i_init = (dstatep->flag & PM_SUPPORTED_FLAG) ? 0 : COMPONENTS;
460 mutex_exit(&dstatep->lock);
466 if (pm_raise_power(dstatep->dip, i, maxpwr[i]) !=
472 dstatep->level[i] = -1;
488 dstatep = ddi_get_soft_state(dstates, ddi_get_instance(devi));
489 if (dstatep == NULL) {
499 mutex_enter(&dstatep->lock);
500 i_init = (dstatep->flag & PM_SUPPORTED_FLAG) ? 0 : COMPONENTS;
501 mutex_exit(&dstatep->lock);
502 if (dstatep->flag & PWR_HAS_CHANGED_ON_RESUME_FLAG) {
508 mutex_enter(&dstatep->lock);
509 level_tmp = dstatep->level[i];
510 dstatep->level[i] = maxpwr[i];
511 if (pm_power_has_changed(dstatep->dip, i,
520 dstatep->level[i] = level_tmp;
522 mutex_exit(&dstatep->lock);
534 if (pm_raise_power(dstatep->dip, i, maxpwr[i])
558 struct dstate *dstatep;
577 dstatep = ddi_get_soft_state(dstates, instance);
578 if (dstatep == NULL) {
597 if (dstatep->flag & PM_SUPPORTED_FLAG) {
602 if (pm_lower_power(dstatep->dip, 1, MINPWR)
616 mutex_enter(&dstatep->lock);
617 level_tmp = dstatep->level[1];
618 dstatep->level[1] = MINPWR;
619 if (dstatep->level[1] != MINPWR) {
624 if (pm_power_has_changed(dstatep->dip,
632 dstatep->level[1] = level_tmp;
633 mutex_exit(&dstatep->lock);
638 mutex_exit(&dstatep->lock);
648 if (!(dstatep->flag & LOWER_POWER_FLAG) &&
649 dstatep->flag & PM_SUPPORTED_FLAG) {
654 } else if (dstatep->flag & PM_SUPPORTED_FLAG) {
659 if (pm_lower_power(dstatep->dip, 0, MINPWR)
673 mutex_enter(&dstatep->lock);
674 level_tmp = dstatep->level[0];
675 dstatep->level[0] = MINPWR;
676 if (dstatep->level[0] != MINPWR) {
681 if (pm_power_has_changed(dstatep->dip,
689 dstatep->level[0] = level_tmp;
690 mutex_exit(&dstatep->lock);
695 mutex_exit(&dstatep->lock);
704 if (dstatep->gen_cb_ids[i]) {
705 (void) ddi_remove_event_handler(dstatep->gen_cb_ids[i]);
706 dstatep->gen_cb_ids[i] = NULL;
712 if (dstatep->node_type)
713 kmem_free(dstatep->node_type,
714 strlen(dstatep->node_type) + 1);
723 dstatep = ddi_get_soft_state(dstates, instance);
724 if (dstatep == NULL) {
733 mutex_enter(&dstatep->lock);
734 if (dstatep->flag & FAIL_SUSPEND_FLAG) {
739 dstatep->flag &= ~FAIL_SUSPEND_FLAG;
744 mutex_exit(&dstatep->lock);
753 if (dstatep->flag & NO_INVOL_FLAG &&
754 dstatep->flag & PM_SUPPORTED_FLAG) {
759 rm_power = ddi_removing_power(dstatep->dip);
790 mutex_enter(&dstatep->lock);
791 if (dstatep->flag & PM_SUPPORTED_FLAG &&
792 !(dstatep->flag & NO_INVOL_FLAG)) {
793 level_tmp = dstatep->level[0];
794 dstatep->level[0] = MINPWR;
799 if (pm_power_has_changed(dstatep->dip, 0, MINPWR)
805 dstatep->level[0] = level_tmp;
806 mutex_exit(&dstatep->lock);
811 mutex_exit(&dstatep->lock);
843 struct dstate *dstatep;
849 if ((dstatep = ddi_get_soft_state(dstates,
853 mutex_enter(&dstatep->lock);
854 dstatep->flag |= OPEN_FLAG;
855 mutex_exit(&dstatep->lock);
859 dstatep->nodename, MINOR_TO_INST(minor)));
868 struct dstate *dstatep;
874 dstatep = ddi_get_soft_state(dstates, MINOR_TO_INST(minor));
876 if (dstatep == NULL)
879 mutex_enter(&dstatep->lock);
880 dstatep->flag &= ~OPEN_FLAG;
881 mutex_exit(&dstatep->lock);
885 dstatep->nodename, MINOR_TO_INST(minor)));
894 struct dstate *dstatep;
906 dstatep = ddi_get_soft_state(dstates, instance);
907 nodename = dstatep->nodename;
909 if (dstatep == NULL)
920 if (ddi_get_eventcookie(dstatep->dip, DDI_DEVI_FAULT_EVENT,
924 return (ndi_post_event(dstatep->dip, dstatep->dip, cookie,
928 if (ddi_get_eventcookie(dstatep->dip, "pshot_dev_offline",
930 (void) ndi_post_event(dstatep->dip, dstatep->dip,
934 if (ddi_get_eventcookie(dstatep->dip, "pshot_dev_reset",
936 (void) ndi_post_event(dstatep->dip, dstatep->dip,
940 if (ddi_get_eventcookie(dstatep->dip, "pshot_bus_reset",
942 (void) ndi_post_event(dstatep->dip, dstatep->dip,
946 if (ddi_get_eventcookie(dstatep->dip, "pshot_bus_quiesce",
948 (void) ndi_post_event(dstatep->dip, dstatep->dip,
952 if (ddi_get_eventcookie(dstatep->dip, "pshot_bus_unquiesce",
954 (void) ndi_post_event(dstatep->dip, dstatep->dip,
958 if (ddi_get_eventcookie(dstatep->dip, "pshot_bus_test_post",
960 (void) ndi_post_event(dstatep->dip, dstatep->dip,
970 mutex_enter(&dstatep->lock);
971 dstatep->flag |= PWR_HAS_CHANGED_ON_RESUME_FLAG;
972 mutex_exit(&dstatep->lock);
983 mutex_enter(&dstatep->lock);
984 dstatep->flag |= FAIL_SUSPEND_FLAG;
985 mutex_exit(&dstatep->lock);
999 mutex_enter(&dstatep->lock);
1000 dstatep->flag |= PUP_WITH_PWR_HAS_CHANGED_FLAG;
1001 mutex_exit(&dstatep->lock);
1012 mutex_enter(&dstatep->lock);
1013 ++dstatep->busy[0];
1015 " busy=%d", nodename, instance, dstatep->busy[0]));
1016 mutex_exit(&dstatep->lock);
1017 ret = pm_busy_component(dstatep->dip, 0);
1026 mutex_enter(&dstatep->lock);
1027 state = dstatep->busy[0];
1038 mutex_exit(&dstatep->lock);
1045 * NOP if dstatep->busy[0] == 0.
1047 mutex_enter(&dstatep->lock);
1048 if (dstatep->busy[0] > 0) {
1049 --dstatep->busy[0];
1052 dstatep->busy[0]));
1053 mutex_exit(&dstatep->lock);
1054 ret = pm_idle_component(dstatep->dip, 0);
1057 mutex_exit(&dstatep->lock);
1078 if (pm_raise_power(dstatep->dip, 0, maxpwr[i])
1094 mutex_enter(&dstatep->lock);
1095 level_tmp = dstatep->level[i];
1096 dstatep->level[i] = 0;
1097 if (pm_power_has_changed(dstatep->dip, i, 0)
1099 dstatep->level[i] = level_tmp;
1102 mutex_exit(&dstatep->lock);
1116 mutex_enter(&dstatep->lock);
1117 level_tmp = dstatep->level[i];
1118 dstatep->level[i] = maxpwr[i];
1119 if (pm_power_has_changed(dstatep->dip, i, maxpwr[i])
1121 dstatep->level[i] = level_tmp;
1124 mutex_exit(&dstatep->lock);
1134 mutex_enter(&dstatep->lock);
1135 state = (dstatep->flag & POWER_FLAG) ? 1 : 0;
1144 dstatep->flag &= ~POWER_FLAG;
1145 mutex_exit(&dstatep->lock);
1152 mutex_enter(&dstatep->lock);
1153 dstatep->flag &= ~LOWER_POWER_FLAG;
1154 mutex_exit(&dstatep->lock);
1184 struct dstate *dstatep;
1192 dstatep = ddi_get_soft_state(dstates, instance);
1193 if (dstatep == NULL) {
1200 * in the dstatep->comp[] array.
1205 mutex_enter(&dstatep->lock);
1206 dstatep->level[cmpt] = level;
1207 mutex_exit(&dstatep->lock);
1208 } else if (level > dstatep->level[cmpt] && level != 0 &&
1209 dstatep->level[0] != COMP_0_MAXPWR) {
1218 if (!(dstatep->flag & PUP_WITH_PWR_HAS_CHANGED_FLAG)) {
1235 mutex_enter(&dstatep->lock);
1236 dstatep->level[0] = COMP_0_MAXPWR;
1240 dstatep->level[cmpt] = level;
1241 mutex_exit(&dstatep->lock);
1250 mutex_enter(&dstatep->lock);
1251 level_tmp = dstatep->level[0];
1252 dstatep->level[0] = COMP_0_MAXPWR;
1259 dstatep->level[0] = level_tmp;
1268 dstatep->level[cmpt] = level;
1270 mutex_exit(&dstatep->lock);
1273 mutex_enter(&dstatep->lock);
1274 dstatep->level[cmpt] = level;
1275 mutex_exit(&dstatep->lock);
1536 gen_create_minor_nodes(dev_info_t *devi, struct dstate *dstatep)
1576 dstatep->node_type = kmem_alloc(
1578 (void) strcpy(dstatep->node_type, node_type);
1584 (INST_TO_MINOR(instance)), dstatep->node_type, NULL) !=
1586 if (dstatep->node_type) {
1587 kmem_free(dstatep->node_type,
1588 strlen(dstatep->node_type) + 1);
1589 dstatep->node_type = NULL;