Lines Matching +full:thermal +full:- +full:sensors
136 static int psok[2] = {-1, -1};
137 static int pspr[2] = {-1, -1};
158 * green = OK - no action needed
159 * yellow = warning - display warning message and poll faster
160 * red = critical - shutdown system
227 &mod_driverops, /* type of module - driver */
296 mutex_enter(&unitp->umutex); in envctrl_attach()
297 if (!unitp->suspended) { in envctrl_attach()
298 mutex_exit(&unitp->umutex); in envctrl_attach()
301 unitp->suspended = 0; in envctrl_attach()
302 unitp->initting = B_TRUE; in envctrl_attach()
304 unitp->initting = B_FALSE; in envctrl_attach()
308 mutex_exit(&unitp->umutex); in envctrl_attach()
337 if (ddi_regs_map_setup(dip, 0, (caddr_t *)&unitp->bus_ctl_regs, 0, in envctrl_attach()
339 &unitp->ctlr_handle) != DDI_SUCCESS) { in envctrl_attach()
346 * If the PCI nexus has added a thermal interrupt, we first need in envctrl_attach()
359 &unitp->ic_trap_cookie) != DDI_SUCCESS) { in envctrl_attach()
365 mutex_init(&unitp->umutex, NULL, MUTEX_DRIVER, in envctrl_attach()
366 (void *)unitp->ic_trap_cookie); in envctrl_attach()
369 if (ddi_add_intr(dip, 0, &unitp->ic_trap_cookie, NULL, envctrl_bus_isr, in envctrl_attach()
377 if (ddi_add_intr(dip, 1, &unitp->ic_trap_cookie, NULL, envctrl_dev_isr, in envctrl_attach()
393 mutex_enter(&unitp->umutex); in envctrl_attach()
399 unitp->activity_led_blink = B_TRUE; in envctrl_attach()
400 unitp->shutdown = B_FALSE; in envctrl_attach()
401 unitp->num_ps_present = 0; in envctrl_attach()
402 unitp->num_encl_present = 1; in envctrl_attach()
403 unitp->current_mode = ENVCTRL_NORMAL_MODE; in envctrl_attach()
405 unitp->num_cpus_present = envctrl_numcpus; in envctrl_attach()
408 if ((unitp->cpu_pr_location[ENVCTRL_CPU0] == B_FALSE) || in envctrl_attach()
409 (unitp->cpu_pr_location[ENVCTRL_CPU1] == B_FALSE)) in envctrl_attach()
411 unitp->num_temps_present = 5; in envctrl_attach()
413 unitp->num_temps_present = 6; in envctrl_attach()
414 unitp->num_fans_present = 1; in envctrl_attach()
415 unitp->dip = dip; in envctrl_attach()
417 mutex_exit(&unitp->umutex); in envctrl_attach()
420 "cpu-temp-factors", &creg_prop, &len) != DDI_PROP_SUCCESS) { in envctrl_attach()
422 "%s%d: Unable to read cpu-temp-factors property", in envctrl_attach()
438 "cpu-fan-speeds", &creg_prop, &len) != DDI_PROP_SUCCESS) { in envctrl_attach()
440 "%s%d: Unable to read cpu-fan-speeds property", in envctrl_attach()
463 mutex_enter(&unitp->umutex); in envctrl_attach()
468 unitp->temp_kstats[k].type = sensor_types[i]; in envctrl_attach()
478 unitp->temp_kstats[k].min = in envctrl_attach()
483 unitp->temp_kstats[k].warning_threshold = in envctrl_attach()
488 unitp->temp_kstats[k].shutdown_threshold = in envctrl_attach()
500 bcopy((caddr_t)&creg_prop[j], unitp->temp_kstats[k].label, in envctrl_attach()
506 (unitp->cpu_pr_location[ENVCTRL_CPU0] == in envctrl_attach()
509 (unitp->cpu_pr_location[ENVCTRL_CPU1] == B_FALSE))) in envctrl_attach()
526 unitp->initting = B_TRUE; in envctrl_attach()
529 unitp->initting = B_FALSE; in envctrl_attach()
532 unitp->timeout_id = 0; in envctrl_attach()
533 unitp->blink_timeout_id = 0; in envctrl_attach()
535 unitp->fan_failed = 0; in envctrl_attach()
536 unitp->fan_kstats.fans_ok = B_TRUE; in envctrl_attach()
537 unitp->tempr_warning = 0; in envctrl_attach()
541 unitp->initting = B_TRUE; in envctrl_attach()
543 unitp->initting = B_FALSE; in envctrl_attach()
563 idle_fanspeed = unitp->fan_kstats.fanspeed; in envctrl_attach()
565 if (unitp->activity_led_blink == B_TRUE) { in envctrl_attach()
566 unitp->present_led_state = B_FALSE; in envctrl_attach()
567 mutex_exit(&unitp->umutex); in envctrl_attach()
569 mutex_enter(&unitp->umutex); in envctrl_attach()
575 mutex_exit(&unitp->umutex); in envctrl_attach()
591 ddi_remove_intr(dip, (uint_t)1, unitp->ic_trap_cookie); in envctrl_attach()
593 ddi_remove_intr(dip, (uint_t)0, unitp->ic_trap_cookie); in envctrl_attach()
596 mutex_destroy(&unitp->umutex); in envctrl_attach()
599 if (unitp->ctlr_handle) in envctrl_attach()
600 ddi_regs_map_free(&unitp->ctlr_handle); in envctrl_attach()
621 if (unitp->psksp != NULL) { in envctrl_detach()
622 kstat_delete(unitp->psksp); in envctrl_detach()
624 if (unitp->fanksp != NULL) { in envctrl_detach()
625 kstat_delete(unitp->fanksp); in envctrl_detach()
627 if (unitp->enclksp != NULL) { in envctrl_detach()
628 kstat_delete(unitp->enclksp); in envctrl_detach()
630 if (unitp->tempksp != NULL) { in envctrl_detach()
631 kstat_delete(unitp->tempksp); in envctrl_detach()
633 if (unitp->diskksp != NULL) { in envctrl_detach()
634 kstat_delete(unitp->diskksp); in envctrl_detach()
637 if (unitp->timeout_id != 0) { in envctrl_detach()
638 (void) untimeout(unitp->timeout_id); in envctrl_detach()
639 unitp->timeout_id = 0; in envctrl_detach()
641 if (unitp->blink_timeout_id != 0) { in envctrl_detach()
642 (void) untimeout(unitp->blink_timeout_id); in envctrl_detach()
643 unitp->blink_timeout_id = 0; in envctrl_detach()
648 ddi_remove_intr(dip, (uint_t)0, unitp->ic_trap_cookie); in envctrl_detach()
649 ddi_remove_intr(dip, (uint_t)1, unitp->ic_trap_cookie); in envctrl_detach()
651 ddi_regs_map_free(&unitp->ctlr_handle); in envctrl_detach()
653 mutex_destroy(&unitp->umutex); in envctrl_detach()
663 mutex_enter(&unitp->umutex); in envctrl_detach()
664 if (unitp->suspended) { in envctrl_detach()
667 mutex_exit(&unitp->umutex); in envctrl_detach()
670 unitp->suspended = 1; in envctrl_detach()
671 mutex_exit(&unitp->umutex); in envctrl_detach()
702 *result = unitp->dip; in envctrl_getinfo()
741 mutex_enter(&unitp->umutex); in envctrl_open()
744 if ((unitp->oflag & FWRITE)) { in envctrl_open()
745 mutex_exit(&unitp->umutex); in envctrl_open()
748 unitp->oflag |= FWRITE; in envctrl_open()
752 mutex_exit(&unitp->umutex); in envctrl_open()
771 mutex_enter(&unitp->umutex); in envctrl_close()
773 unitp->oflag = B_FALSE; in envctrl_close()
774 unitp->current_mode = ENVCTRL_NORMAL_MODE; in envctrl_close()
776 mutex_exit(&unitp->umutex); in envctrl_close()
827 mutex_enter(&unitp->umutex); in envctrl_ioctl()
828 unitp->current_mode = wdval; in envctrl_ioctl()
829 if (unitp->timeout_id != 0 && in envctrl_ioctl()
831 (void) untimeout(unitp->timeout_id); in envctrl_ioctl()
832 unitp->timeout_id = in envctrl_ioctl()
848 driver_name, unitp->instance); in envctrl_ioctl()
856 unitp->current_mode = ENVCTRL_DIAG_MODE; in envctrl_ioctl()
858 unitp->current_mode = ENVCTRL_NORMAL_MODE; in envctrl_ioctl()
860 mutex_exit(&unitp->umutex); in envctrl_ioctl()
866 wdval = unitp->current_mode; in envctrl_ioctl()
877 if (unitp->current_mode == ENVCTRL_DIAG_MODE) { in envctrl_ioctl()
878 if (unitp->timeout_id != 0) { in envctrl_ioctl()
879 (void) untimeout(unitp->timeout_id); in envctrl_ioctl()
880 unitp->timeout_id = 0; in envctrl_ioctl()
901 mutex_enter(&unitp->umutex); in envctrl_ioctl()
904 mutex_exit(&unitp->umutex); in envctrl_ioctl()
908 driver_name, unitp->instance); in envctrl_ioctl()
925 if (unitp->current_mode == ENVCTRL_DIAG_MODE) { in envctrl_ioctl()
937 mutex_enter(&unitp->umutex); in envctrl_ioctl()
943 driver_name, unitp->instance); in envctrl_ioctl()
946 mutex_exit(&unitp->umutex); in envctrl_ioctl()
963 mutex_enter(&unitp->umutex); in envctrl_ioctl()
967 mutex_exit(&unitp->umutex); in envctrl_ioctl()
971 driver_name, unitp->instance); in envctrl_ioctl()
986 unitp->fan_kstats.fanspeed = a_fanspeed.val; in envctrl_ioctl()
1004 mutex_enter(&unitp->umutex); in envctrl_ioctl()
1012 if (unitp->current_mode == ENVCTRL_NORMAL_MODE) { in envctrl_ioctl()
1014 mutex_exit(&unitp->umutex); in envctrl_ioctl()
1022 mutex_exit(&unitp->umutex); in envctrl_ioctl()
1026 driver_name, unitp->instance); in envctrl_ioctl()
1041 mutex_enter(&unitp->umutex); in envctrl_ioctl()
1043 mutex_exit(&unitp->umutex); in envctrl_ioctl()
1047 driver_name, unitp->instance); in envctrl_ioctl()
1068 mutex_enter(&unitp->umutex); in envctrl_ioctl()
1072 mutex_exit(&unitp->umutex); in envctrl_ioctl()
1085 mutex_enter(&unitp->umutex); in envctrl_ioctl()
1094 mutex_exit(&unitp->umutex); in envctrl_ioctl()
1097 if (unitp->current_mode != ENVCTRL_DIAG_MODE) { in envctrl_ioctl()
1106 mutex_enter(&unitp->umutex); in envctrl_ioctl()
1112 driver_name, unitp->instance); in envctrl_ioctl()
1115 mutex_exit(&unitp->umutex); in envctrl_ioctl()
1123 mutex_enter(&unitp->umutex); in envctrl_ioctl()
1129 driver_name, unitp->instance); in envctrl_ioctl()
1132 mutex_exit(&unitp->umutex); in envctrl_ioctl()
1151 mutex_enter(&unitp->umutex); in envctrl_bus_isr()
1157 mutex_exit(&unitp->umutex); in envctrl_bus_isr()
1173 mutex_enter(&unitp->umutex); in envctrl_dev_isr()
1183 * ------------------------- in envctrl_dev_isr()
1185 * ------------------------- in envctrl_dev_isr()
1188 * P1 = Thermal Interrupt in envctrl_dev_isr()
1225 driver_name, unitp->instance); in envctrl_dev_isr()
1227 mutex_exit(&unitp->umutex); in envctrl_dev_isr()
1302 driver_name, unitp->instance); in envctrl_dev_isr()
1308 mutex_exit(&unitp->umutex); in envctrl_dev_isr()
1322 * If more than one read is requested, set auto-increment bit in envctrl_read_chip()
1371 * If more than one write is requested, set auto-increment bit in envctrl_write_chip()
1416 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_get_cpu_temp()
1430 driver_name, unitp->instance); in envctrl_get_cpu_temp()
1431 return (ENVCTRL_UE250_MAX_CPU_TEMP - 10); in envctrl_get_cpu_temp()
1444 mutex_enter(&unitp->umutex); in envctrl_tempr_poll()
1446 if (unitp->shutdown == B_TRUE) { in envctrl_tempr_poll()
1462 if (unitp->current_mode == ENVCTRL_DIAG_MODE) { in envctrl_tempr_poll()
1467 driver_name, unitp->instance); in envctrl_tempr_poll()
1470 unitp->current_mode = ENVCTRL_NORMAL_MODE; in envctrl_tempr_poll()
1476 driver_name, unitp->instance); in envctrl_tempr_poll()
1487 if ((unitp->fan_failed == B_TRUE) || (unitp->tempr_warning == B_TRUE)) { in envctrl_tempr_poll()
1489 * A thermal warning or fan failure condition exists. in envctrl_tempr_poll()
1492 if (unitp->timeout_id != 0) in envctrl_tempr_poll()
1493 (void) untimeout(unitp->timeout_id); in envctrl_tempr_poll()
1494 unitp->timeout_id = (timeout(envctrl_tempr_poll, in envctrl_tempr_poll()
1498 * No thermal warning or fan failure condition exists. in envctrl_tempr_poll()
1501 unitp->timeout_id = (timeout(envctrl_tempr_poll, in envctrl_tempr_poll()
1505 mutex_exit(&unitp->umutex); in envctrl_tempr_poll()
1515 mutex_enter(&unitp->umutex); in envctrl_led_blink()
1521 driver_name, unitp->instance); in envctrl_led_blink()
1523 unitp->blink_timeout_id = (timeout(envctrl_led_blink, in envctrl_led_blink()
1525 mutex_exit(&unitp->umutex); in envctrl_led_blink()
1529 if (unitp->present_led_state == B_TRUE) { in envctrl_led_blink()
1536 unitp->present_led_state = B_FALSE; in envctrl_led_blink()
1539 unitp->present_led_state = B_TRUE; in envctrl_led_blink()
1565 driver_name, unitp->instance); in envctrl_led_blink()
1567 unitp->blink_timeout_id = (timeout(envctrl_led_blink, in envctrl_led_blink()
1569 mutex_exit(&unitp->umutex); in envctrl_led_blink()
1574 unitp->blink_timeout_id = (timeout(envctrl_led_blink, in envctrl_led_blink()
1577 mutex_exit(&unitp->umutex); in envctrl_led_blink()
1593 driver_name, unitp->instance); in envctrl_check_sys_temperatures()
1608 unitp->tempr_warning = B_TRUE; in envctrl_check_sys_temperatures()
1610 unitp->tempr_warning = B_TRUE; in envctrl_check_sys_temperatures()
1612 unitp->shutdown = B_TRUE; in envctrl_check_sys_temperatures()
1622 driver_name, unitp->instance); in envctrl_check_sys_temperatures()
1635 if ((warning_level == yellow) && (unitp->shutdown == B_FALSE)) in envctrl_check_sys_temperatures()
1636 unitp->tempr_warning = B_TRUE; in envctrl_check_sys_temperatures()
1638 unitp->tempr_warning = B_TRUE; in envctrl_check_sys_temperatures()
1640 unitp->shutdown = B_TRUE; in envctrl_check_sys_temperatures()
1642 } else if ((level == green) && (unitp->tempr_warning == B_TRUE)) { in envctrl_check_sys_temperatures()
1649 "TEMPERATURE NORMAL: all sensors back to normal readings"); in envctrl_check_sys_temperatures()
1650 unitp->tempr_warning = B_FALSE; in envctrl_check_sys_temperatures()
1657 driver_name, unitp->instance); in envctrl_check_sys_temperatures()
1660 if ((unitp->tempr_warning == B_TRUE) || (unitp->shutdown == B_TRUE)) in envctrl_check_sys_temperatures()
1676 driver_name, unitp->instance); in envctrl_check_sys_temperatures()
1682 if (unitp->tempr_warning == B_TRUE) { in envctrl_check_sys_temperatures()
1683 if (unitp->timeout_id != 0) { in envctrl_check_sys_temperatures()
1684 (void) untimeout(unitp->timeout_id); in envctrl_check_sys_temperatures()
1685 unitp->timeout_id = (timeout(envctrl_tempr_poll, in envctrl_check_sys_temperatures()
1711 unitp->fan_kstats.fanspeed = 255; in envctrl_check_tempr_levels()
1713 unitp->fan_kstats.fanspeed = tval; in envctrl_check_tempr_levels()
1715 unitp->fan_kstats.fanspeed, data[i]); in envctrl_check_tempr_levels()
1722 if (unitp->cpu_pr_location[i] == B_FALSE) in envctrl_check_tempr_levels()
1727 (j < unitp->num_temps_present)) in envctrl_check_tempr_levels()
1747 (unitp->current_mode == ENVCTRL_NORMAL_MODE)) { in envctrl_check_tempr_levels()
1762 driver_name, unitp->instance); in envctrl_check_tempr_levels()
1768 driver_name, unitp->instance); in envctrl_check_tempr_levels()
1772 unitp->fan_kstats.fanspeed = 255; in envctrl_check_tempr_levels()
1774 unitp->fan_kstats.fanspeed = tval; in envctrl_check_tempr_levels()
1778 temp_degree_c, data[i], unitp->temp_kstats[j].label); in envctrl_check_tempr_levels()
1780 unitp->temp_kstats[j].value = temp_degree_c; in envctrl_check_tempr_levels()
1782 unitp->temp_kstats[j].warning_threshold) || in envctrl_check_tempr_levels()
1783 (temp_degree_c < unitp->temp_kstats[j].min)) { in envctrl_check_tempr_levels()
1790 temp_degree_c, unitp->temp_kstats[j].label); in envctrl_check_tempr_levels()
1793 unitp->temp_kstats[j].shutdown_threshold) { in envctrl_check_tempr_levels()
1800 temp_degree_c, unitp->temp_kstats[j].label); in envctrl_check_tempr_levels()
1822 driver_name, unitp->instance); in envctrl_update_fanspeed()
1828 unitp->fan_kstats.fanspeed = 255; in envctrl_update_fanspeed()
1830 unitp->fan_kstats.fanspeed = tval; in envctrl_update_fanspeed()
1846 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_fan_fail_service()
1874 driver_name, unitp->instance); in envctrl_fan_fail_service()
1883 if (unitp->fan_failed == B_TRUE) { in envctrl_fan_fail_service()
1884 if (unitp->current_mode == ENVCTRL_NORMAL_MODE) in envctrl_fan_fail_service()
1887 unitp->fan_kstats.fans_ok = B_TRUE; in envctrl_fan_fail_service()
1896 driver_name, unitp->instance); in envctrl_fan_fail_service()
1901 if (unitp->shutdown != B_TRUE) { in envctrl_fan_fail_service()
1907 driver_name, unitp->instance); in envctrl_fan_fail_service()
1914 unitp->fan_failed = B_FALSE; in envctrl_fan_fail_service()
1917 if (unitp->fan_failed == B_FALSE) { in envctrl_fan_fail_service()
1918 if (unitp->current_mode == ENVCTRL_NORMAL_MODE) in envctrl_fan_fail_service()
1921 unitp->fan_failed = B_TRUE; in envctrl_fan_fail_service()
1922 unitp->fan_kstats.fans_ok = B_FALSE; in envctrl_fan_fail_service()
1931 driver_name, unitp->instance); in envctrl_fan_fail_service()
1939 driver_name, unitp->instance); in envctrl_fan_fail_service()
1945 if (unitp->timeout_id != 0) { in envctrl_fan_fail_service()
1946 (void) untimeout(unitp->timeout_id); in envctrl_fan_fail_service()
1947 unitp->timeout_id = in envctrl_fan_fail_service()
1971 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_PS_intr_service()
1973 if (unitp->current_mode == ENVCTRL_DIAG_MODE) { in envctrl_PS_intr_service()
1983 unitp->pshotplug_id = (timeout(envctrl_pshotplug_poll, in envctrl_PS_intr_service()
2010 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_reset_dflop()
2017 driver_name, unitp->instance); in envctrl_reset_dflop()
2025 driver_name, unitp->instance); in envctrl_reset_dflop()
2036 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_enable_devintrs()
2043 driver_name, unitp->instance); in envctrl_enable_devintrs()
2051 driver_name, unitp->instance); in envctrl_enable_devintrs()
2061 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_intr_latch_clr()
2068 driver_name, unitp->instance); in envctrl_intr_latch_clr()
2076 driver_name, unitp->instance); in envctrl_intr_latch_clr()
2091 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_ps_probe()
2093 unitp->num_ps_present = 0; in envctrl_ps_probe()
2099 driver_name, unitp->instance); in envctrl_ps_probe()
2104 unitp->ps_kstats[i].slot = -1; in envctrl_ps_probe()
2136 unitp->ps_kstats[j].slot = i; in envctrl_ps_probe()
2137 ++unitp->num_ps_present; in envctrl_ps_probe()
2148 unitp->ps_kstats[j].ps_ok = B_FALSE; in envctrl_ps_probe()
2152 unitp->ps_kstats[j].ps_ok = B_TRUE; in envctrl_ps_probe()
2195 driver_name, unitp->instance); in envctrl_ps_probe()
2213 driver_name, unitp->instance); in envctrl_ps_probe()
2246 secure = unitp->encl_kstats.value; in envctrl_abort_seq_handler()
2252 driver_name, unitp->instance); in envctrl_abort_seq_handler()
2256 driver_name, unitp->instance); in envctrl_abort_seq_handler()
2273 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_get_fpm_status()
2279 driver_name, unitp->instance); in envctrl_get_fpm_status()
2288 unitp->encl_kstats.value = recv_data; in envctrl_get_fpm_status()
2301 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_set_fsp()
2320 driver_name, unitp->instance); in envctrl_set_fsp()
2336 driver_name, unitp->instance); in envctrl_set_fsp()
2362 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_get_dskled()
2364 if (chip->chip_num != EHC_DEV7 || in envctrl_get_dskled()
2365 chip->type != ENVCTRL_PCF8574A) { in envctrl_get_dskled()
2370 0, &chip->val, 1); in envctrl_get_dskled()
2373 driver_name, unitp->instance); in envctrl_get_dskled()
2375 chip->val = ~chip->val; in envctrl_get_dskled()
2394 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_set_dskled()
2397 if (chip->chip_num != EHC_DEV7) in envctrl_set_dskled()
2400 if (chip->type != ENVCTRL_PCF8574A) in envctrl_set_dskled()
2407 driver_name, unitp->instance); in envctrl_set_dskled()
2412 if ((chip->val & 0x3F) == 0) { in envctrl_set_dskled()
2430 driver_name, unitp->instance); in envctrl_set_dskled()
2439 driver_name, unitp->instance); in envctrl_set_dskled()
2443 envctrl_update_disk_kstats(unitp, val, ~(chip->val)); in envctrl_set_dskled()
2449 * knows that a 1 is a TRUE state or fault. ;-) in envctrl_set_dskled()
2452 confirm_val_hold = chip->val; in envctrl_set_dskled()
2454 chip->val = ~(chip->val); in envctrl_set_dskled()
2458 0, &chip->val, 1); in envctrl_set_dskled()
2461 driver_name, unitp->instance); in envctrl_set_dskled()
2471 confirm_chip.type = chip->type; in envctrl_set_dskled()
2472 confirm_chip.chip_num = chip->chip_num; in envctrl_set_dskled()
2473 confirm_chip.index = chip->index; in envctrl_set_dskled()
2509 fanspeed_hold = fanspeed->val; in envctrl_set_fanspeed()
2512 EHC_DEV2, 0, &fanspeed->val, 1); in envctrl_set_fanspeed()
2517 unitp->instance); in envctrl_set_fanspeed()
2522 readback_speed = unitp->fan_kstats.fanspeed; in envctrl_set_fanspeed()
2525 (fanspeed->val + FAN_DRIFT > in envctrl_set_fanspeed()
2527 (fanspeed->val + FAN_DRIFT); in envctrl_set_fanspeed()
2528 if ((readback_speed < fanspeed->val - in envctrl_set_fanspeed()
2550 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_add_kstats()
2552 if ((unitp->enclksp = kstat_create(ENVCTRL_MODULE_NAME, unitp->instance, in envctrl_add_kstats()
2554 sizeof (unitp->encl_kstats), in envctrl_add_kstats()
2557 driver_name, unitp->instance); in envctrl_add_kstats()
2561 unitp->enclksp->ks_update = envctrl_encl_kstat_update; in envctrl_add_kstats()
2562 unitp->enclksp->ks_private = (void *)unitp; in envctrl_add_kstats()
2563 kstat_install(unitp->enclksp); in envctrl_add_kstats()
2566 if ((unitp->fanksp = kstat_create(ENVCTRL_MODULE_NAME, unitp->instance, in envctrl_add_kstats()
2568 sizeof (unitp->fan_kstats), in envctrl_add_kstats()
2571 driver_name, unitp->instance); in envctrl_add_kstats()
2575 unitp->fanksp->ks_update = envctrl_fanstat_kstat_update; in envctrl_add_kstats()
2576 unitp->fanksp->ks_private = (void *)unitp; in envctrl_add_kstats()
2577 kstat_install(unitp->fanksp); in envctrl_add_kstats()
2579 if ((unitp->psksp = kstat_create(ENVCTRL_MODULE_NAME, unitp->instance, in envctrl_add_kstats()
2581 sizeof (unitp->ps_kstats), in envctrl_add_kstats()
2584 driver_name, unitp->instance); in envctrl_add_kstats()
2588 unitp->psksp->ks_update = envctrl_ps_kstat_update; in envctrl_add_kstats()
2589 unitp->psksp->ks_private = (void *)unitp; in envctrl_add_kstats()
2590 kstat_install(unitp->psksp); in envctrl_add_kstats()
2592 if ((unitp->tempksp = kstat_create(ENVCTRL_MODULE_NAME, in envctrl_add_kstats()
2593 unitp->instance, ENVCTRL_KSTAT_TEMPERATURE, "misc", KSTAT_TYPE_RAW, in envctrl_add_kstats()
2594 sizeof (unitp->temp_kstats), in envctrl_add_kstats()
2597 driver_name, unitp->instance); in envctrl_add_kstats()
2601 unitp->tempksp->ks_update = envctrl_temp_kstat_update; in envctrl_add_kstats()
2602 unitp->tempksp->ks_private = (void *)unitp; in envctrl_add_kstats()
2603 kstat_install(unitp->tempksp); in envctrl_add_kstats()
2605 if ((unitp->diskksp = kstat_create(ENVCTRL_MODULE_NAME, in envctrl_add_kstats()
2606 unitp->instance, ENVCTRL_KSTAT_DISK, "misc", KSTAT_TYPE_RAW, in envctrl_add_kstats()
2607 sizeof (unitp->disk_kstats), in envctrl_add_kstats()
2610 driver_name, unitp->instance); in envctrl_add_kstats()
2614 unitp->diskksp->ks_update = envctrl_disk_kstat_update; in envctrl_add_kstats()
2615 unitp->diskksp->ks_private = (void *)unitp; in envctrl_add_kstats()
2616 kstat_install(unitp->diskksp); in envctrl_add_kstats()
2628 unitp = (struct envctrlunit *)ksp->ks_private; in envctrl_ps_kstat_update()
2630 mutex_enter(&unitp->umutex); in envctrl_ps_kstat_update()
2631 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_ps_kstat_update()
2633 kstatp = (char *)ksp->ks_data; in envctrl_ps_kstat_update()
2636 mutex_exit(&unitp->umutex); in envctrl_ps_kstat_update()
2640 unitp->psksp->ks_ndata = unitp->num_ps_present; in envctrl_ps_kstat_update()
2641 bcopy((caddr_t)&unitp->ps_kstats, kstatp, in envctrl_ps_kstat_update()
2642 sizeof (unitp->ps_kstats)); in envctrl_ps_kstat_update()
2644 mutex_exit(&unitp->umutex); in envctrl_ps_kstat_update()
2654 kstatp = (char *)ksp->ks_data; in envctrl_fanstat_kstat_update()
2655 unitp = (struct envctrlunit *)ksp->ks_private; in envctrl_fanstat_kstat_update()
2657 mutex_enter(&unitp->umutex); in envctrl_fanstat_kstat_update()
2658 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_fanstat_kstat_update()
2661 mutex_exit(&unitp->umutex); in envctrl_fanstat_kstat_update()
2664 unitp->fanksp->ks_ndata = unitp->num_fans_present; in envctrl_fanstat_kstat_update()
2665 bcopy((caddr_t)&unitp->fan_kstats, kstatp, in envctrl_fanstat_kstat_update()
2666 sizeof (unitp->fan_kstats)); in envctrl_fanstat_kstat_update()
2668 mutex_exit(&unitp->umutex); in envctrl_fanstat_kstat_update()
2680 kstatp = (char *)ksp->ks_data; in envctrl_encl_kstat_update()
2681 unitp = (struct envctrlunit *)ksp->ks_private; in envctrl_encl_kstat_update()
2683 mutex_enter(&unitp->umutex); in envctrl_encl_kstat_update()
2684 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_encl_kstat_update()
2687 mutex_exit(&unitp->umutex); in envctrl_encl_kstat_update()
2691 unitp->enclksp->ks_ndata = unitp->num_encl_present; in envctrl_encl_kstat_update()
2694 bcopy((caddr_t)&unitp->encl_kstats, kstatp, in envctrl_encl_kstat_update()
2695 sizeof (unitp->encl_kstats)); in envctrl_encl_kstat_update()
2697 mutex_exit(&unitp->umutex); in envctrl_encl_kstat_update()
2707 kstatp = (char *)ksp->ks_data; in envctrl_temp_kstat_update()
2708 unitp = (struct envctrlunit *)ksp->ks_private; in envctrl_temp_kstat_update()
2710 mutex_enter(&unitp->umutex); in envctrl_temp_kstat_update()
2711 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_temp_kstat_update()
2714 mutex_exit(&unitp->umutex); in envctrl_temp_kstat_update()
2717 unitp->tempksp->ks_ndata = unitp->num_temps_present; in envctrl_temp_kstat_update()
2718 bcopy((caddr_t)unitp->temp_kstats, kstatp, in envctrl_temp_kstat_update()
2719 sizeof (unitp->temp_kstats)); in envctrl_temp_kstat_update()
2721 mutex_exit(&unitp->umutex); in envctrl_temp_kstat_update()
2731 kstatp = (char *)ksp->ks_data; in envctrl_disk_kstat_update()
2732 unitp = (struct envctrlunit *)ksp->ks_private; in envctrl_disk_kstat_update()
2734 mutex_enter(&unitp->umutex); in envctrl_disk_kstat_update()
2735 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_disk_kstat_update()
2738 mutex_exit(&unitp->umutex); in envctrl_disk_kstat_update()
2741 unitp->diskksp->ks_ndata = unitp->num_disks_present; in envctrl_disk_kstat_update()
2742 bcopy((caddr_t)unitp->disk_kstats, kstatp, in envctrl_disk_kstat_update()
2743 sizeof (unitp->disk_kstats)); in envctrl_disk_kstat_update()
2745 mutex_exit(&unitp->umutex); in envctrl_disk_kstat_update()
2755 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_init_encl_kstats()
2761 driver_name, unitp->instance); in envctrl_init_encl_kstats()
2765 unitp->encl_kstats.value = val; in envctrl_init_encl_kstats()
2774 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_check_disk_kstats()
2780 driver_name, unitp->instance); in envctrl_check_disk_kstats()
2787 driver_name, unitp->instance); in envctrl_check_disk_kstats()
2804 unitp->disk_kstats[count].disk_ok = 0; in envctrl_update_disk_kstats()
2806 unitp->disk_kstats[count].disk_ok = 1; in envctrl_update_disk_kstats()
2807 unitp->disk_kstats[count].slot = i; in envctrl_update_disk_kstats()
2812 unitp->num_disks_present = count; in envctrl_update_disk_kstats()
2825 * we need to check the "upa-portid" property. in envctrl_probe_cpus()
2834 unitp->cpu_pr_location[instance] = B_FALSE; in envctrl_probe_cpus()
2855 DDI_PROP_DONTPASS, "upa-portid", in envctrl_match_cpu()
2856 -1)) == -1) { in envctrl_match_cpu()
2857 cmn_err(CE_WARN, "%s%d: no cpu upa-portid", in envctrl_match_cpu()
2858 driver_name, unitp->instance); in envctrl_match_cpu()
2860 unitp->cpu_pr_location[cpu_slot] = B_TRUE; in envctrl_match_cpu()
2861 unitp->num_cpus_present++; in envctrl_match_cpu()
2889 if ((unitp->fan_failed == B_TRUE) && thisled != 0) { in envctrl_isother_fault_led()
2906 mutex_enter(&unitp->umutex); in envctrl_pshotplug_poll()
2910 mutex_exit(&unitp->umutex); in envctrl_pshotplug_poll()