Lines Matching refs:unitp
417 struct envctrlunit *unitp; in envctrl_attach() local
438 if (!(unitp = ddi_get_soft_state(envctrlsoft_statep, instance))) in envctrl_attach()
440 mutex_enter(&unitp->umutex); in envctrl_attach()
441 if (!unitp->suspended) { in envctrl_attach()
442 mutex_exit(&unitp->umutex); in envctrl_attach()
445 unitp->suspended = 0; in envctrl_attach()
446 mutex_exit(&unitp->umutex); in envctrl_attach()
447 unitp->initting = B_TRUE; in envctrl_attach()
448 envctrl_init_bus(unitp); in envctrl_attach()
449 unitp->initting = B_FALSE; in envctrl_attach()
451 mutex_enter(&unitp->umutex); in envctrl_attach()
452 envctrl_ps_probe(unitp); in envctrl_attach()
453 envctrl_probe_cpus(unitp); in envctrl_attach()
454 mutex_exit(&unitp->umutex); in envctrl_attach()
472 unitp = ddi_get_soft_state(envctrlsoft_statep, instance); in envctrl_attach()
474 if (ddi_regs_map_setup(dip, 0, (caddr_t *)&unitp->bus_ctl_regs, 0, in envctrl_attach()
476 &unitp->ctlr_handle) != DDI_SUCCESS) { in envctrl_attach()
495 &unitp->ic_trap_cookie) != DDI_SUCCESS) { in envctrl_attach()
500 mutex_init(&unitp->umutex, NULL, MUTEX_DRIVER, in envctrl_attach()
501 (void *)unitp->ic_trap_cookie); in envctrl_attach()
504 if (ddi_add_intr(dip, 0, &unitp->ic_trap_cookie, NULL, envctrl_bus_isr, in envctrl_attach()
505 (caddr_t)unitp) != DDI_SUCCESS) { in envctrl_attach()
512 if (ddi_add_intr(dip, 1, &unitp->ic_trap_cookie, NULL, envctrl_dev_isr, in envctrl_attach()
513 (caddr_t)unitp) != DDI_SUCCESS) { in envctrl_attach()
528 mutex_enter(&unitp->umutex); in envctrl_attach()
532 unitp->activity_led_blink = B_TRUE; in envctrl_attach()
536 unitp->activity_led_blink = B_FALSE; in envctrl_attach()
539 unitp->shutdown = B_FALSE; in envctrl_attach()
540 unitp->num_ps_present = unitp->num_encl_present = 0; in envctrl_attach()
541 unitp->num_fans_present = MIN_FAN_BANKS; in envctrl_attach()
542 unitp->num_fans_failed = ENVCTRL_CHAR_ZERO; in envctrl_attach()
543 unitp->AFB_present = B_TRUE; in envctrl_attach()
544 unitp->dip = dip; in envctrl_attach()
609 unitp->AFB_present = B_TRUE; in envctrl_attach()
613 unitp->AFB_present = B_FALSE; in envctrl_attach()
619 unitp->AFB_present = B_TRUE; in envctrl_attach()
622 if (unitp->AFB_present == B_TRUE) in envctrl_attach()
623 unitp->num_fans_present++; in envctrl_attach()
626 mutex_exit(&unitp->umutex); in envctrl_attach()
628 unitp->initting = B_TRUE; in envctrl_attach()
629 envctrl_init_bus(unitp); in envctrl_attach()
630 unitp->initting = B_FALSE; in envctrl_attach()
633 mutex_enter(&unitp->umutex); in envctrl_attach()
638 status = eHc_write_pcf8583((struct eHc_envcunit *)unitp, in envctrl_attach()
645 status = eHc_write_pcf8583((struct eHc_envcunit *)unitp, in envctrl_attach()
652 status = eHc_write_pcf8583((struct eHc_envcunit *)unitp, in envctrl_attach()
657 unitp->timeout_id = 0; in envctrl_attach()
658 unitp->blink_timeout_id = 0; in envctrl_attach()
661 unitp->num_cpus_present = envctrl_numcpus; in envctrl_attach()
663 envctrl_probe_cpus(unitp); in envctrl_attach()
664 envctrl_ps_probe(unitp); in envctrl_attach()
670 unitp->initting = B_TRUE; in envctrl_attach()
671 envctrl_fan_fail_service(unitp); in envctrl_attach()
672 unitp->initting = B_FALSE; in envctrl_attach()
677 envctrl_add_kstats(unitp); in envctrl_attach()
678 envctrl_init_fan_kstats(unitp); in envctrl_attach()
679 envctrl_init_encl_kstats(unitp); in envctrl_attach()
680 if (unitp->activity_led_blink == B_TRUE) { in envctrl_attach()
681 unitp->present_led_state = B_FALSE; in envctrl_attach()
682 mutex_exit(&unitp->umutex); in envctrl_attach()
683 envctrl_led_blink((void *)unitp); in envctrl_attach()
684 mutex_enter(&unitp->umutex); in envctrl_attach()
687 envctrl_set_fsp(unitp, &fspval); in envctrl_attach()
692 if (unitp->cpu_pr_location[i] == B_TRUE) { in envctrl_attach()
693 cputemp = envctrl_get_cpu_temp(unitp, i); in envctrl_attach()
694 envctrl_add_encl_kstats(unitp, ENVCTRL_ENCL_CPUTEMPR, in envctrl_attach()
700 unitp->shutdown = B_TRUE; in envctrl_attach()
709 cputemp = envctrl_get_cpu_temp(unitp, 0); in envctrl_attach()
710 envctrl_add_encl_kstats(unitp, ENVCTRL_ENCL_CPUTEMPR, INSTANCE_0, in envctrl_attach()
713 mutex_exit(&unitp->umutex); in envctrl_attach()
715 envctrl_tempr_poll((void *)unitp); in envctrl_attach()
729 ddi_remove_intr(dip, (uint_t)1, unitp->ic_trap_cookie); in envctrl_attach()
731 ddi_remove_intr(dip, (uint_t)0, unitp->ic_trap_cookie); in envctrl_attach()
734 mutex_destroy(&unitp->umutex); in envctrl_attach()
737 if (unitp->ctlr_handle) in envctrl_attach()
738 ddi_regs_map_free(&unitp->ctlr_handle); in envctrl_attach()
750 struct envctrlunit *unitp; in envctrl_detach() local
753 unitp = ddi_get_soft_state(envctrlsoft_statep, instance); in envctrl_detach()
759 if (unitp->psksp != NULL) { in envctrl_detach()
760 kstat_delete(unitp->psksp); in envctrl_detach()
762 if (unitp->fanksp != NULL) { in envctrl_detach()
763 kstat_delete(unitp->fanksp); in envctrl_detach()
765 if (unitp->enclksp != NULL) { in envctrl_detach()
766 kstat_delete(unitp->enclksp); in envctrl_detach()
769 if (unitp->timeout_id != 0) { in envctrl_detach()
770 (void) untimeout(unitp->timeout_id); in envctrl_detach()
771 unitp->timeout_id = 0; in envctrl_detach()
773 if (unitp->blink_timeout_id != 0) { in envctrl_detach()
774 (void) untimeout(unitp->blink_timeout_id); in envctrl_detach()
775 unitp->blink_timeout_id = 0; in envctrl_detach()
780 ddi_remove_intr(dip, (uint_t)0, unitp->ic_trap_cookie); in envctrl_detach()
781 ddi_remove_intr(dip, (uint_t)1, unitp->ic_trap_cookie); in envctrl_detach()
783 ddi_regs_map_free(&unitp->ctlr_handle); in envctrl_detach()
785 mutex_destroy(&unitp->umutex); in envctrl_detach()
793 if (!(unitp = ddi_get_soft_state(envctrlsoft_statep, instance))) in envctrl_detach()
795 mutex_enter(&unitp->umutex); in envctrl_detach()
796 if (unitp->suspended) { in envctrl_detach()
798 mutex_exit(&unitp->umutex); in envctrl_detach()
801 unitp->suspended = 1; in envctrl_detach()
802 mutex_exit(&unitp->umutex); in envctrl_detach()
819 struct envctrlunit *unitp; in envctrl_getinfo() local
825 if ((unitp = (struct envctrlunit *) in envctrl_getinfo()
828 *result = unitp->dip; in envctrl_getinfo()
851 struct envctrlunit *unitp; in envctrl_open() local
858 unitp = (struct envctrlunit *) in envctrl_open()
861 if (unitp == NULL) in envctrl_open()
864 mutex_enter(&unitp->umutex); in envctrl_open()
867 if ((unitp->oflag & FWRITE)) { in envctrl_open()
868 mutex_exit(&unitp->umutex); in envctrl_open()
871 unitp->oflag |= FWRITE; in envctrl_open()
875 q->q_ptr = WR(q)->q_ptr = (caddr_t)unitp; in envctrl_open()
885 unitp->readq = RD(q); in envctrl_open()
886 unitp->writeq = WR(q); in envctrl_open()
887 unitp->msg = (mblk_t *)NULL; in envctrl_open()
889 mutex_exit(&unitp->umutex); in envctrl_open()
897 struct envctrlunit *unitp; in envctrl_close() local
899 unitp = (struct envctrlunit *)q->q_ptr; in envctrl_close()
901 mutex_enter(&unitp->umutex); in envctrl_close()
903 unitp->oflag = B_FALSE; in envctrl_close()
904 unitp->current_mode = ENVCTRL_NORMAL_MODE; in envctrl_close()
910 mutex_exit(&unitp->umutex); in envctrl_close()
921 struct envctrlunit *unitp; in envctrl_wput() local
930 unitp = (struct envctrlunit *)q->q_ptr; in envctrl_wput()
971 if (unitp->current_mode == ENVCTRL_DIAG_MODE) { in envctrl_wput()
972 if (unitp->timeout_id != 0) { in envctrl_wput()
973 (void) untimeout(unitp->timeout_id); in envctrl_wput()
974 unitp->timeout_id = 0; in envctrl_wput()
976 envctrl_tempr_poll((void *)unitp); in envctrl_wput()
992 if (unitp->current_mode == ENVCTRL_DIAG_MODE && in envctrl_wput()
1002 if (unitp->current_mode == ENVCTRL_DIAG_MODE && in envctrl_wput()
1016 if (unitp->current_mode == ENVCTRL_DIAG_MODE && in envctrl_wput()
1086 mutex_enter(&unitp->umutex); in envctrl_wput()
1087 if (envctrl_xmit(unitp, (caddr_t *)(void *)fanspeed, in envctrl_wput()
1094 envctrl_fan_fail_service(unitp); in envctrl_wput()
1095 mutex_exit(&unitp->umutex); in envctrl_wput()
1098 mutex_exit(&unitp->umutex); in envctrl_wput()
1104 mutex_enter(&unitp->umutex); in envctrl_wput()
1112 if (unitp->current_mode == ENVCTRL_NORMAL_MODE) { in envctrl_wput()
1114 mutex_exit(&unitp->umutex); in envctrl_wput()
1119 envctrl_set_fsp(unitp, wdval); in envctrl_wput()
1120 mutex_exit(&unitp->umutex); in envctrl_wput()
1126 mutex_enter(&unitp->umutex); in envctrl_wput()
1127 if (envctrl_set_dskled(unitp, ledchip)) { in envctrl_wput()
1132 mutex_exit(&unitp->umutex); in envctrl_wput()
1141 mutex_enter(&unitp->umutex); in envctrl_wput()
1142 if (envctrl_get_dskled(unitp, ledchip)) { in envctrl_wput()
1150 mutex_exit(&unitp->umutex); in envctrl_wput()
1161 mutex_enter(&unitp->umutex); in envctrl_wput()
1162 envctrl_recv(unitp, (caddr_t *)(void *)temp, PCF8591); in envctrl_wput()
1163 mutex_exit(&unitp->umutex); in envctrl_wput()
1178 mutex_enter(&unitp->umutex); in envctrl_wput()
1179 envctrl_recv(unitp, (caddr_t *)(void *)a_fanspeed, in envctrl_wput()
1181 mutex_exit(&unitp->umutex); in envctrl_wput()
1192 mutex_enter(&unitp->umutex); in envctrl_wput()
1193 envctrl_get_sys_temperatures(unitp, tempr); in envctrl_wput()
1194 mutex_exit(&unitp->umutex); in envctrl_wput()
1204 mutex_enter(&unitp->umutex); in envctrl_wput()
1205 envctrl_reset_watchdog(unitp, wdval); in envctrl_wput()
1206 mutex_exit(&unitp->umutex); in envctrl_wput()
1218 *tempr = unitp->current_mode; in envctrl_wput()
1228 mutex_enter(&unitp->umutex); in envctrl_wput()
1229 unitp->current_mode = *wdval; in envctrl_wput()
1230 if (unitp->timeout_id != 0 && in envctrl_wput()
1232 (void) untimeout(unitp->timeout_id); in envctrl_wput()
1233 unitp->timeout_id = in envctrl_wput()
1235 (caddr_t)unitp, in envctrl_wput()
1240 envctrl_get_sys_temperatures(unitp, in envctrl_wput()
1256 unitp->current_mode = in envctrl_wput()
1258 envctrl_fan_fail_service(unitp); in envctrl_wput()
1259 unitp->current_mode = in envctrl_wput()
1262 mutex_exit(&unitp->umutex); in envctrl_wput()
1296 struct envctrlunit *unitp = (struct envctrlunit *)(void *)arg; in envctrl_bus_isr() local
1299 mutex_enter(&unitp->umutex); in envctrl_bus_isr()
1305 mutex_exit(&unitp->umutex); in envctrl_bus_isr()
1312 struct envctrlunit *unitp = (struct envctrlunit *)(void *)arg; in envctrl_dev_isr() local
1320 mutex_enter(&unitp->umutex); in envctrl_dev_isr()
1345 status = eHc_read_pcf8574a((struct eHc_envcunit *)unitp, in envctrl_dev_isr()
1353 status = eHc_read_pcf8574a((struct eHc_envcunit *)unitp, in envctrl_dev_isr()
1375 mutex_exit(&unitp->umutex); in envctrl_dev_isr()
1376 envctrl_init_bus(unitp); in envctrl_dev_isr()
1377 mutex_enter(&unitp->umutex); in envctrl_dev_isr()
1378 envctrl_ps_probe(unitp); in envctrl_dev_isr()
1379 mutex_exit(&unitp->umutex); in envctrl_dev_isr()
1397 envctrl_PS_intr_service(unitp, PS1); in envctrl_dev_isr()
1402 envctrl_PS_intr_service(unitp, PS2); in envctrl_dev_isr()
1407 envctrl_PS_intr_service(unitp, PS3); in envctrl_dev_isr()
1421 envctrl_fan_fail_service(unitp); in envctrl_dev_isr()
1426 (void) envctrl_get_fpm_status(unitp); in envctrl_dev_isr()
1442 mutex_exit(&unitp->umutex); in envctrl_dev_isr()
1448 envctrl_init_bus(struct envctrlunit *unitp) in envctrl_init_bus() argument
1456 mutex_enter(&unitp->umutex); in envctrl_init_bus()
1458 ddi_put8(unitp->ctlr_handle, in envctrl_init_bus()
1459 &unitp->bus_ctl_regs->s0, ENVCTRL_CHAR_ZERO); in envctrl_init_bus()
1463 ddi_put8(unitp->ctlr_handle, &unitp->bus_ctl_regs->s1, in envctrl_init_bus()
1465 (void) ddi_put8(unitp->ctlr_handle, &unitp->bus_ctl_regs->s0, in envctrl_init_bus()
1469 ddi_put8(unitp->ctlr_handle, in envctrl_init_bus()
1470 &unitp->bus_ctl_regs->s1, ENVCTRL_BUS_CLOCK0); in envctrl_init_bus()
1474 ddi_put8(unitp->ctlr_handle, in envctrl_init_bus()
1475 &unitp->bus_ctl_regs->s0, ENVCTRL_BUS_CLOCK1); in envctrl_init_bus()
1478 ddi_put8(unitp->ctlr_handle, in envctrl_init_bus()
1479 &unitp->bus_ctl_regs->s1, ENVCTRL_BUS_ESI); in envctrl_init_bus()
1481 envctrl_stop_clock(unitp); in envctrl_init_bus()
1498 if (unitp->initting == B_TRUE) { in envctrl_init_bus()
1505 (unitp->AFB_present == B_FALSE)) in envctrl_init_bus()
1507 (void) envctrl_xmit(unitp, (caddr_t *)(void *)&fan, in envctrl_init_bus()
1512 envctrl_reset_dflop(unitp); in envctrl_init_bus()
1514 envctrl_enable_devintrs(unitp); in envctrl_init_bus()
1516 unitp->current_mode = ENVCTRL_NORMAL_MODE; in envctrl_init_bus()
1517 envctrl_reset_watchdog(unitp, &noval); in envctrl_init_bus()
1519 mutex_exit(&unitp->umutex); in envctrl_init_bus()
1523 envctrl_xmit(struct envctrlunit *unitp, caddr_t *data, int chip_type) in envctrl_xmit() argument
1533 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_xmit()
1556 status = eHc_write_tda8444((struct eHc_envcunit *)unitp, in envctrl_xmit()
1565 mutex_exit(&unitp->umutex); in envctrl_xmit()
1566 envctrl_init_bus(unitp); in envctrl_xmit()
1567 mutex_enter(&unitp->umutex); in envctrl_xmit()
1581 unitp->fan_kstats[ENVCTRL_FAN_TYPE_CPU].fanspeed = in envctrl_xmit()
1585 unitp->fan_kstats[ENVCTRL_FAN_TYPE_PS].fanspeed = in envctrl_xmit()
1589 unitp->fan_kstats[ENVCTRL_FAN_TYPE_AFB].fanspeed = in envctrl_xmit()
1606 eHc_write_pcf8574a((struct eHc_envcunit *)unitp, in envctrl_xmit()
1610 status = eHc_write_pcf8574((struct eHc_envcunit *)unitp, in envctrl_xmit()
1620 mutex_exit(&unitp->umutex); in envctrl_xmit()
1621 envctrl_init_bus(unitp); in envctrl_xmit()
1622 mutex_enter(&unitp->umutex); in envctrl_xmit()
1643 envctrl_recv(struct envctrlunit *unitp, caddr_t *data, int chip_type) in envctrl_recv() argument
1653 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_recv()
1661 status = eHc_read_pcf8591((struct eHc_envcunit *)unitp, in envctrl_recv()
1676 mutex_exit(&unitp->umutex); in envctrl_recv()
1677 envctrl_init_bus(unitp); in envctrl_recv()
1678 mutex_enter(&unitp->umutex); in envctrl_recv()
1701 status = eHc_read_pcf8574a((struct eHc_envcunit *)unitp, in envctrl_recv()
1706 status = eHc_read_pcf8574((struct eHc_envcunit *)unitp, in envctrl_recv()
1716 mutex_exit(&unitp->umutex); in envctrl_recv()
1717 envctrl_init_bus(unitp); in envctrl_recv()
1718 mutex_enter(&unitp->umutex); in envctrl_recv()
1736 envctrl_get_ps_temp(struct envctrlunit *unitp, uint8_t psaddr) in envctrl_get_ps_temp() argument
1743 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_get_ps_temp()
1749 status = eHc_read_pcf8591((struct eHc_envcunit *)unitp, in envctrl_get_ps_temp()
1781 mutex_exit(&unitp->umutex); in envctrl_get_ps_temp()
1782 envctrl_init_bus(unitp); in envctrl_get_ps_temp()
1783 mutex_enter(&unitp->umutex); in envctrl_get_ps_temp()
1796 envctrl_get_cpu_temp(struct envctrlunit *unitp, int cpunum) in envctrl_get_cpu_temp() argument
1802 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_get_cpu_temp()
1815 status = eHc_read_pcf8591((struct eHc_envcunit *)unitp, in envctrl_get_cpu_temp()
1834 mutex_exit(&unitp->umutex); in envctrl_get_cpu_temp()
1835 envctrl_init_bus(unitp); in envctrl_get_cpu_temp()
1836 mutex_enter(&unitp->umutex); in envctrl_get_cpu_temp()
1849 envctrl_get_lm75_temp(struct envctrlunit *unitp) in envctrl_get_lm75_temp() argument
1860 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_get_lm75_temp()
1862 status = eHc_read_lm75((struct eHc_envcunit *)unitp, in envctrl_get_lm75_temp()
1901 struct envctrlunit *unitp = (struct envctrlunit *)arg; in envctrl_tempr_poll() local
1903 mutex_enter(&unitp->umutex); in envctrl_tempr_poll()
1905 if (unitp->shutdown == B_TRUE) { in envctrl_tempr_poll()
1916 if (unitp->current_mode == ENVCTRL_DIAG_MODE) { in envctrl_tempr_poll()
1923 unitp->current_mode = ENVCTRL_NORMAL_MODE; in envctrl_tempr_poll()
1924 envctrl_get_sys_temperatures(unitp, (uint8_t *)NULL); in envctrl_tempr_poll()
1926 envctrl_fan_fail_service(unitp); in envctrl_tempr_poll()
1929 unitp->timeout_id = (timeout(envctrl_tempr_poll, in envctrl_tempr_poll()
1930 (caddr_t)unitp, overtemp_timeout_hz)); in envctrl_tempr_poll()
1932 mutex_exit(&unitp->umutex); in envctrl_tempr_poll()
1939 struct envctrlunit *unitp = (struct envctrlunit *)arg; in envctrl_led_blink() local
1941 mutex_enter(&unitp->umutex); in envctrl_led_blink()
1945 envctrl_recv(unitp, (caddr_t *)(void *)&fspchip, PCF8574); in envctrl_led_blink()
1947 if (unitp->present_led_state == B_TRUE) { in envctrl_led_blink()
1955 unitp->present_led_state = B_FALSE; in envctrl_led_blink()
1958 unitp->present_led_state = B_TRUE; in envctrl_led_blink()
1961 (void) envctrl_xmit(unitp, (caddr_t *)(void *)&fspchip, PCF8574); in envctrl_led_blink()
1964 unitp->blink_timeout_id = (timeout(envctrl_led_blink, in envctrl_led_blink()
1965 (caddr_t)unitp, blink_timeout_hz)); in envctrl_led_blink()
1967 mutex_exit(&unitp->umutex); in envctrl_led_blink()
1972 envctrl_get_sys_temperatures(struct envctrlunit *unitp, uint8_t *diag_tempr) in envctrl_get_sys_temperatures() argument
1981 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_get_sys_temperatures()
1997 if (unitp->current_mode == ENVCTRL_DIAG_MODE) { in envctrl_get_sys_temperatures()
1998 unitp->current_mode = ENVCTRL_NORMAL_MODE; in envctrl_get_sys_temperatures()
1999 envctrl_reset_watchdog(unitp, &noval); in envctrl_get_sys_temperatures()
2000 unitp->current_mode = ENVCTRL_DIAG_MODE; in envctrl_get_sys_temperatures()
2002 envctrl_reset_watchdog(unitp, &noval); in envctrl_get_sys_temperatures()
2011 envctrl_reset_dflop(unitp); in envctrl_get_sys_temperatures()
2013 envctrl_enable_devintrs(unitp); in envctrl_get_sys_temperatures()
2020 if (unitp->current_mode == ENVCTRL_DIAG_MODE && diag_tempr != NULL) { in envctrl_get_sys_temperatures()
2021 if (unitp->timeout_id != 0) { in envctrl_get_sys_temperatures()
2022 (void) untimeout(unitp->timeout_id); in envctrl_get_sys_temperatures()
2026 unitp->timeout_id = (timeout(envctrl_tempr_poll, in envctrl_get_sys_temperatures()
2027 (caddr_t)unitp, overtemp_timeout_hz)); in envctrl_get_sys_temperatures()
2029 ambtemp = envctrl_get_lm75_temp(unitp); in envctrl_get_sys_temperatures()
2035 mutex_exit(&unitp->umutex); in envctrl_get_sys_temperatures()
2036 envctrl_init_bus(unitp); in envctrl_get_sys_temperatures()
2037 mutex_enter(&unitp->umutex); in envctrl_get_sys_temperatures()
2038 ambtemp = envctrl_get_lm75_temp(unitp); in envctrl_get_sys_temperatures()
2042 envctrl_mod_encl_kstats(unitp, ENVCTRL_ENCL_AMBTEMPR, INSTANCE_0, in envctrl_get_sys_temperatures()
2045 fspval = envctrl_get_fpm_status(unitp); in envctrl_get_sys_temperatures()
2050 unitp->current_mode == ENVCTRL_NORMAL_MODE) { in envctrl_get_sys_temperatures()
2051 unitp->shutdown = B_TRUE; in envctrl_get_sys_temperatures()
2053 if (unitp->current_mode == ENVCTRL_NORMAL_MODE) { in envctrl_get_sys_temperatures()
2059 if (envctrl_isother_fault_led(unitp, fspval, in envctrl_get_sys_temperatures()
2067 envctrl_set_fsp(unitp, &fspval); in envctrl_get_sys_temperatures()
2072 if (unitp->cpu_pr_location[i] == B_TRUE) { in envctrl_get_sys_temperatures()
2073 cputemp = envctrl_get_cpu_temp(unitp, i); in envctrl_get_sys_temperatures()
2074 envctrl_mod_encl_kstats(unitp, ENVCTRL_ENCL_CPUTEMPR, in envctrl_get_sys_temperatures()
2078 unitp->shutdown = B_TRUE; in envctrl_get_sys_temperatures()
2090 cputemp = envctrl_get_cpu_temp(unitp, 0); in envctrl_get_sys_temperatures()
2091 envctrl_mod_encl_kstats(unitp, ENVCTRL_ENCL_CPUTEMPR, 0, cputemp); in envctrl_get_sys_temperatures()
2094 fspval = envctrl_get_fpm_status(unitp); in envctrl_get_sys_temperatures()
2102 if (unitp->current_mode == ENVCTRL_DIAG_MODE && diag_tempr != NULL) { in envctrl_get_sys_temperatures()
2114 if (unitp->current_mode == ENVCTRL_NORMAL_MODE) { in envctrl_get_sys_temperatures()
2125 if (envctrl_isother_fault_led(unitp, fspval, in envctrl_get_sys_temperatures()
2133 envctrl_set_fsp(unitp, &fspval); in envctrl_get_sys_temperatures()
2140 unitp->fan_kstats[ENVCTRL_FAN_TYPE_CPU].fanspeed = fan.val; in envctrl_get_sys_temperatures()
2143 (void) envctrl_xmit(unitp, (caddr_t *)(void *)&fan, TDA8444T); in envctrl_get_sys_temperatures()
2146 if (unitp->AFB_present == B_TRUE) { in envctrl_get_sys_temperatures()
2149 unitp->fan_kstats[ENVCTRL_FAN_TYPE_AFB].fanspeed = fan.val; in envctrl_get_sys_temperatures()
2151 (void) envctrl_xmit(unitp, (caddr_t *)(void *)&fan, TDA8444T); in envctrl_get_sys_temperatures()
2160 if (unitp->ps_present[i]) { in envctrl_get_sys_temperatures()
2161 tmptemp = envctrl_get_ps_temp(unitp, psaddr[i]); in envctrl_get_sys_temperatures()
2162 unitp->ps_kstats[i].ps_tempr = tmptemp & 0xFFFF; in envctrl_get_sys_temperatures()
2168 unitp->shutdown = B_TRUE; in envctrl_get_sys_temperatures()
2180 fspval = envctrl_get_fpm_status(unitp); in envctrl_get_sys_temperatures()
2182 envctrl_set_fsp(unitp, &fspval); in envctrl_get_sys_temperatures()
2200 unitp->fan_kstats[ENVCTRL_FAN_TYPE_PS].fanspeed = fan.val; in envctrl_get_sys_temperatures()
2201 (void) envctrl_xmit(unitp, (caddr_t *)(void *)&fan, TDA8444T); in envctrl_get_sys_temperatures()
2206 envctrl_fan_fail_service(struct envctrlunit *unitp) in envctrl_fan_fail_service() argument
2220 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_fan_fail_service()
2223 status = eHc_read_pcf8574a((struct eHc_envcunit *)unitp, in envctrl_fan_fail_service()
2234 unitp->fan_kstats[ENVCTRL_FAN_TYPE_PS].fans_ok = B_TRUE; in envctrl_fan_fail_service()
2235 unitp->fan_kstats[ENVCTRL_FAN_TYPE_CPU].fans_ok = B_TRUE; in envctrl_fan_fail_service()
2236 unitp->fan_kstats[ENVCTRL_FAN_TYPE_AFB].fans_ok = B_TRUE; in envctrl_fan_fail_service()
2237 unitp->fan_kstats[ENVCTRL_FAN_TYPE_PS].fanflt_num = 0; in envctrl_fan_fail_service()
2238 unitp->fan_kstats[ENVCTRL_FAN_TYPE_CPU].fanflt_num = 0; in envctrl_fan_fail_service()
2239 unitp->fan_kstats[ENVCTRL_FAN_TYPE_AFB].fanflt_num = 0; in envctrl_fan_fail_service()
2240 unitp->num_fans_failed = 0; in envctrl_fan_fail_service()
2241 fpmstat = envctrl_get_fpm_status(unitp); in envctrl_fan_fail_service()
2242 if (!(envctrl_isother_fault_led(unitp, fpmstat, 0))) { in envctrl_fan_fail_service()
2245 if (unitp->shutdown != B_TRUE) { in envctrl_fan_fail_service()
2246 envctrl_set_fsp(unitp, &fpmstat); in envctrl_fan_fail_service()
2264 unitp->fan_kstats[fantype].fans_ok = B_FALSE; in envctrl_fan_fail_service()
2265 unitp->fan_kstats[fantype].fanflt_num = psfanflt - 1; in envctrl_fan_fail_service()
2267 unitp->current_mode == ENVCTRL_NORMAL_MODE) { in envctrl_fan_fail_service()
2272 unitp->fan_kstats[fantype].fans_ok = B_TRUE; in envctrl_fan_fail_service()
2273 unitp->fan_kstats[fantype].fanflt_num = 0; in envctrl_fan_fail_service()
2289 unitp->fan_kstats[fantype].fans_ok = B_FALSE; in envctrl_fan_fail_service()
2290 unitp->fan_kstats[fantype].fanflt_num = cpufanflt - 1; in envctrl_fan_fail_service()
2292 unitp->current_mode == ENVCTRL_NORMAL_MODE) { in envctrl_fan_fail_service()
2297 unitp->fan_kstats[fantype].fans_ok = B_TRUE; in envctrl_fan_fail_service()
2298 unitp->fan_kstats[fantype].fanflt_num = 0; in envctrl_fan_fail_service()
2302 (unitp->AFB_present == B_TRUE)) { in envctrl_fan_fail_service()
2311 unitp->fan_kstats[ENVCTRL_FAN_TYPE_AFB].fans_ok in envctrl_fan_fail_service()
2313 unitp->fan_kstats[ENVCTRL_FAN_TYPE_AFB].fanflt_num = in envctrl_fan_fail_service()
2315 if (unitp->current_mode == ENVCTRL_NORMAL_MODE) { in envctrl_fan_fail_service()
2326 unitp->num_fans_failed != 0) { in envctrl_fan_fail_service()
2327 fpmstat = envctrl_get_fpm_status(unitp); in envctrl_fan_fail_service()
2328 if (!(envctrl_isother_fault_led(unitp, in envctrl_fan_fail_service()
2332 envctrl_set_fsp(unitp, &fpmstat); in envctrl_fan_fail_service()
2334 fpmstat = envctrl_get_fpm_status(unitp); in envctrl_fan_fail_service()
2336 envctrl_set_fsp(unitp, &fpmstat); in envctrl_fan_fail_service()
2339 if (unitp->AFB_present == B_FALSE) { in envctrl_fan_fail_service()
2344 (status != DDI_SUCCESS)) && !unitp->initting && in envctrl_fan_fail_service()
2345 unitp->current_mode == ENVCTRL_NORMAL_MODE) { in envctrl_fan_fail_service()
2358 envctrl_get_sys_temperatures(unitp, in envctrl_fan_fail_service()
2363 unitp->shutdown = B_TRUE; in envctrl_fan_fail_service()
2368 unitp->num_fans_failed = (psfanflt + cpufanflt + afbfanflt); in envctrl_fan_fail_service()
2385 envctrl_PS_intr_service(struct envctrlunit *unitp, uint8_t psaddr) in envctrl_PS_intr_service() argument
2390 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_PS_intr_service()
2392 if (unitp->current_mode == ENVCTRL_DIAG_MODE) { in envctrl_PS_intr_service()
2397 status = eHc_read_pcf8574a((struct eHc_envcunit *)unitp, in envctrl_PS_intr_service()
2405 mutex_exit(&unitp->umutex); in envctrl_PS_intr_service()
2406 envctrl_init_bus(unitp); in envctrl_PS_intr_service()
2407 mutex_enter(&unitp->umutex); in envctrl_PS_intr_service()
2421 unitp->pshotplug_id = (timeout(envctrl_pshotplug_poll, in envctrl_PS_intr_service()
2422 (caddr_t)unitp, pshotplug_timeout_hz)); in envctrl_PS_intr_service()
2428 envctrl_reset_dflop(struct envctrlunit *unitp) in envctrl_reset_dflop() argument
2432 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_reset_dflop()
2446 (void) envctrl_xmit(unitp, (caddr_t *)(void *)&initval, PCF8574); in envctrl_reset_dflop()
2449 (void) envctrl_xmit(unitp, (caddr_t *)(void *)&initval, PCF8574); in envctrl_reset_dflop()
2453 envctrl_add_encl_kstats(struct envctrlunit *unitp, int type, in envctrl_add_encl_kstats() argument
2459 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_add_encl_kstats()
2462 if (unitp->encl_kstats[i].instance == I2C_NODEV) { in envctrl_add_encl_kstats()
2463 unitp->encl_kstats[i].instance = instance; in envctrl_add_encl_kstats()
2464 unitp->encl_kstats[i].type = type; in envctrl_add_encl_kstats()
2465 unitp->encl_kstats[i].value = val; in envctrl_add_encl_kstats()
2470 unitp->num_encl_present++; in envctrl_add_encl_kstats()
2475 envctrl_enable_devintrs(struct envctrlunit *unitp) in envctrl_enable_devintrs() argument
2479 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_enable_devintrs()
2493 (void) envctrl_xmit(unitp, (caddr_t *)(void *)&initval, PCF8574); in envctrl_enable_devintrs()
2500 (void) envctrl_xmit(unitp, (caddr_t *)(void *)&initval, PCF8574); in envctrl_enable_devintrs()
2505 envctrl_stop_clock(struct envctrlunit *unitp) in envctrl_stop_clock() argument
2519 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_stop_clock()
2524 status = eHc_write_pcf8583((struct eHc_envcunit *)unitp, in envctrl_stop_clock()
2531 envctrl_reset_watchdog(struct envctrlunit *unitp, uint8_t *wdval) in envctrl_reset_watchdog() argument
2539 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_reset_watchdog()
2542 envctrl_stop_clock(unitp); in envctrl_reset_watchdog()
2549 status = eHc_write_pcf8583((struct eHc_envcunit *)unitp, in envctrl_reset_watchdog()
2562 if (unitp->current_mode == ENVCTRL_DIAG_MODE) { in envctrl_reset_watchdog()
2563 if (unitp->timeout_id != 0) { in envctrl_reset_watchdog()
2564 (void) untimeout(unitp->timeout_id); in envctrl_reset_watchdog()
2565 unitp->timeout_id = 0; in envctrl_reset_watchdog()
2566 unitp->timeout_id = (timeout(envctrl_tempr_poll, in envctrl_reset_watchdog()
2567 (caddr_t)unitp, overtemp_timeout_hz)); in envctrl_reset_watchdog()
2575 status = eHc_write_pcf8583((struct eHc_envcunit *)unitp, in envctrl_reset_watchdog()
2595 if (unitp->current_mode == ENVCTRL_DIAG_MODE) { in envctrl_reset_watchdog()
2611 status = eHc_write_pcf8583((struct eHc_envcunit *)unitp, in envctrl_reset_watchdog()
2624 status = eHc_write_pcf8583((struct eHc_envcunit *)unitp, in envctrl_reset_watchdog()
2633 envctrl_ps_probe(struct envctrlunit *unitp) in envctrl_ps_probe() argument
2644 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_ps_probe()
2646 unitp->num_ps_present = 0; in envctrl_ps_probe()
2649 unitp->ps_present[i] = B_FALSE; in envctrl_ps_probe()
2650 unitp->ps_kstats[i].ps_rating = 0; in envctrl_ps_probe()
2651 unitp->ps_kstats[i].ps_tempr = 0; in envctrl_ps_probe()
2669 status = eHc_read_pcf8574a((struct eHc_envcunit *)unitp, in envctrl_ps_probe()
2677 mutex_exit(&unitp->umutex); in envctrl_ps_probe()
2678 envctrl_init_bus(unitp); in envctrl_ps_probe()
2679 mutex_enter(&unitp->umutex); in envctrl_ps_probe()
2714 unitp->ps_present[i] = B_TRUE; in envctrl_ps_probe()
2716 unitp->ps_kstats[i].instance = i; in envctrl_ps_probe()
2717 unitp->ps_kstats[i].ps_tempr = ENVCTRL_INIT_TEMPR; in envctrl_ps_probe()
2718 ++unitp->num_ps_present; in envctrl_ps_probe()
2727 unitp->ps_kstats[i].ps_rating = ENVCTRL_PS_550; in envctrl_ps_probe()
2730 unitp->ps_kstats[i].ps_rating = ENVCTRL_PS_650; in envctrl_ps_probe()
2735 unitp->ps_kstats[i].ps_ok = B_FALSE; in envctrl_ps_probe()
2738 unitp->ps_kstats[i].ps_ok = B_TRUE; in envctrl_ps_probe()
2743 unitp->ps_kstats[i].limit_ok = B_FALSE; in envctrl_ps_probe()
2746 unitp->ps_kstats[i].limit_ok = B_TRUE; in envctrl_ps_probe()
2751 unitp->ps_kstats[i].curr_share_ok = B_FALSE; in envctrl_ps_probe()
2754 unitp->ps_kstats[i].curr_share_ok = B_TRUE; in envctrl_ps_probe()
2778 fpmstat = envctrl_get_fpm_status(unitp); in envctrl_ps_probe()
2782 if (envctrl_isother_fault_led(unitp, fpmstat, in envctrl_ps_probe()
2791 envctrl_set_fsp(unitp, &fpmstat); in envctrl_ps_probe()
2798 if (unitp->current_mode == ENVCTRL_NORMAL_MODE) { in envctrl_ps_probe()
2799 envctrl_get_sys_temperatures(unitp, (uint8_t *)NULL); in envctrl_ps_probe()
2809 struct envctrlunit *unitp; in envctrl_abort_seq_handler() local
2819 if (unitp = (struct envctrlunit *) in envctrl_abort_seq_handler()
2824 ASSERT(unitp); in envctrl_abort_seq_handler()
2827 if ((unitp->encl_kstats[i].type == ENVCTRL_ENCL_FSP) && in envctrl_abort_seq_handler()
2828 (unitp->encl_kstats[i].instance != I2C_NODEV)) { in envctrl_abort_seq_handler()
2829 secure = unitp->encl_kstats[i].value; in envctrl_abort_seq_handler()
2855 envctrl_get_fpm_status(struct envctrlunit *unitp) in envctrl_get_fpm_status() argument
2860 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_get_fpm_status()
2863 status = eHc_read_pcf8574a((struct eHc_envcunit *)unitp, in envctrl_get_fpm_status()
2877 mutex_exit(&unitp->umutex); in envctrl_get_fpm_status()
2878 envctrl_init_bus(unitp); in envctrl_get_fpm_status()
2879 mutex_enter(&unitp->umutex); in envctrl_get_fpm_status()
2886 envctrl_mod_encl_kstats(unitp, ENVCTRL_ENCL_FSP, in envctrl_get_fpm_status()
2893 envctrl_set_fsp(struct envctrlunit *unitp, uint8_t *val) in envctrl_set_fsp() argument
2897 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_set_fsp()
2909 (void) envctrl_xmit(unitp, (caddr_t *)(void *)&chip, PCF8574); in envctrl_set_fsp()
2914 envctrl_get_dskled(struct envctrlunit *unitp, struct envctrl_pcf8574_chip *chip) in envctrl_get_dskled() argument
2918 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_get_dskled()
2927 envctrl_recv(unitp, (caddr_t *)(void *)chip, PCF8574); in envctrl_get_dskled()
2934 envctrl_set_dskled(struct envctrlunit *unitp, struct envctrl_pcf8574_chip *chip) in envctrl_set_dskled() argument
2949 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_set_dskled()
2975 envctrl_recv(unitp, (caddr_t *)(void *)&backchip, PCF8574); in envctrl_set_dskled()
2986 envctrl_recv(unitp, (caddr_t *)(void *)&fspchip, PCF8574); in envctrl_set_dskled()
2989 if (!(envctrl_isother_fault_led(unitp, fspchip.val & 0xFF, in envctrl_set_dskled()
3004 (void) envctrl_xmit(unitp, (caddr_t *)(void *)&fspchip, PCF8574); in envctrl_set_dskled()
3014 envctrl_mod_encl_kstats(unitp, ENVCTRL_ENCL_BACKPLANE4, in envctrl_set_dskled()
3018 envctrl_mod_encl_kstats(unitp, ENVCTRL_ENCL_BACKPLANE8, in envctrl_set_dskled()
3032 (void) envctrl_xmit(unitp, (caddr_t *)(void *)chip, PCF8574); in envctrl_set_dskled()
3037 envctrl_add_kstats(struct envctrlunit *unitp) in envctrl_add_kstats() argument
3040 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_add_kstats()
3042 if ((unitp->enclksp = kstat_create(ENVCTRL_MODULE_NAME, unitp->instance, in envctrl_add_kstats()
3044 sizeof (unitp->encl_kstats), in envctrl_add_kstats()
3047 unitp->instance); in envctrl_add_kstats()
3051 unitp->enclksp->ks_update = envctrl_encl_kstat_update; in envctrl_add_kstats()
3052 unitp->enclksp->ks_private = (void *)unitp; in envctrl_add_kstats()
3053 kstat_install(unitp->enclksp); in envctrl_add_kstats()
3056 if ((unitp->fanksp = kstat_create(ENVCTRL_MODULE_NAME, unitp->instance, in envctrl_add_kstats()
3058 sizeof (unitp->fan_kstats), in envctrl_add_kstats()
3061 unitp->instance); in envctrl_add_kstats()
3065 unitp->fanksp->ks_update = envctrl_fanstat_kstat_update; in envctrl_add_kstats()
3066 unitp->fanksp->ks_private = (void *)unitp; in envctrl_add_kstats()
3067 kstat_install(unitp->fanksp); in envctrl_add_kstats()
3069 if ((unitp->psksp = kstat_create(ENVCTRL_MODULE_NAME, unitp->instance, in envctrl_add_kstats()
3071 sizeof (unitp->ps_kstats), in envctrl_add_kstats()
3074 unitp->instance); in envctrl_add_kstats()
3078 unitp->psksp->ks_update = envctrl_ps_kstat_update; in envctrl_add_kstats()
3079 unitp->psksp->ks_private = (void *)unitp; in envctrl_add_kstats()
3080 kstat_install(unitp->psksp); in envctrl_add_kstats()
3087 struct envctrlunit *unitp; in envctrl_ps_kstat_update() local
3092 unitp = (struct envctrlunit *)ksp->ks_private; in envctrl_ps_kstat_update()
3094 mutex_enter(&unitp->umutex); in envctrl_ps_kstat_update()
3095 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_ps_kstat_update()
3103 unitp->psksp->ks_ndata = unitp->num_ps_present; in envctrl_ps_kstat_update()
3104 bcopy(&unitp->ps_kstats, kstatp, sizeof (unitp->ps_kstats)); in envctrl_ps_kstat_update()
3106 mutex_exit(&unitp->umutex); in envctrl_ps_kstat_update()
3112 struct envctrlunit *unitp; in envctrl_fanstat_kstat_update() local
3116 unitp = (struct envctrlunit *)ksp->ks_private; in envctrl_fanstat_kstat_update()
3118 mutex_enter(&unitp->umutex); in envctrl_fanstat_kstat_update()
3119 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_fanstat_kstat_update()
3124 unitp->fanksp->ks_ndata = unitp->num_fans_present; in envctrl_fanstat_kstat_update()
3125 bcopy(unitp->fan_kstats, kstatp, sizeof (unitp->fan_kstats)); in envctrl_fanstat_kstat_update()
3127 mutex_exit(&unitp->umutex); in envctrl_fanstat_kstat_update()
3134 struct envctrlunit *unitp; in envctrl_encl_kstat_update() local
3139 unitp = (struct envctrlunit *)ksp->ks_private; in envctrl_encl_kstat_update()
3141 mutex_enter(&unitp->umutex); in envctrl_encl_kstat_update()
3142 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_encl_kstat_update()
3148 unitp->enclksp->ks_ndata = unitp->num_encl_present; in envctrl_encl_kstat_update()
3149 (void) envctrl_get_fpm_status(unitp); in envctrl_encl_kstat_update()
3151 bcopy(unitp->encl_kstats, kstatp, sizeof (unitp->encl_kstats)); in envctrl_encl_kstat_update()
3153 mutex_exit(&unitp->umutex); in envctrl_encl_kstat_update()
3162 envctrl_init_fan_kstats(struct envctrlunit *unitp) in envctrl_init_fan_kstats() argument
3166 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_init_fan_kstats()
3168 for (i = 0; i < unitp->num_fans_present; i++) { in envctrl_init_fan_kstats()
3169 unitp->fan_kstats[i].instance = 0; in envctrl_init_fan_kstats()
3170 unitp->fan_kstats[i].type = 0; in envctrl_init_fan_kstats()
3171 unitp->fan_kstats[i].fans_ok = B_TRUE; in envctrl_init_fan_kstats()
3172 unitp->fan_kstats[i].fanflt_num = B_FALSE; in envctrl_init_fan_kstats()
3173 unitp->fan_kstats[i].fanspeed = B_FALSE; in envctrl_init_fan_kstats()
3176 unitp->fan_kstats[ENVCTRL_FAN_TYPE_PS].type = ENVCTRL_FAN_TYPE_PS; in envctrl_init_fan_kstats()
3177 unitp->fan_kstats[ENVCTRL_FAN_TYPE_CPU].type = ENVCTRL_FAN_TYPE_CPU; in envctrl_init_fan_kstats()
3178 if (unitp->AFB_present == B_TRUE) in envctrl_init_fan_kstats()
3179 unitp->fan_kstats[ENVCTRL_FAN_TYPE_AFB].type = in envctrl_init_fan_kstats()
3184 envctrl_init_encl_kstats(struct envctrlunit *unitp) in envctrl_init_encl_kstats() argument
3193 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_init_encl_kstats()
3196 unitp->encl_kstats[i].instance = I2C_NODEV; in envctrl_init_encl_kstats()
3213 envctrl_recv(unitp, (caddr_t *)(void *)&chip, PCF8574); in envctrl_init_encl_kstats()
3215 envctrl_add_encl_kstats(unitp, ENVCTRL_ENCL_FSP, INSTANCE_0, in envctrl_init_encl_kstats()
3218 val = envctrl_get_lm75_temp(unitp) & 0xFF; in envctrl_init_encl_kstats()
3219 envctrl_add_encl_kstats(unitp, ENVCTRL_ENCL_AMBTEMPR, INSTANCE_0, val); in envctrl_init_encl_kstats()
3221 if (ddi_prop_lookup_int_array(DDI_DEV_T_ANY, unitp->dip, in envctrl_init_encl_kstats()
3236 envctrl_recv(unitp, (caddr_t *)(void *)&chip, PCF8574); in envctrl_init_encl_kstats()
3237 envctrl_add_encl_kstats(unitp, ENVCTRL_ENCL_BACKPLANE4, in envctrl_init_encl_kstats()
3242 envctrl_recv(unitp, (caddr_t *)(void *)&chip, PCF8574); in envctrl_init_encl_kstats()
3243 envctrl_add_encl_kstats(unitp, ENVCTRL_ENCL_BACKPLANE8, in envctrl_init_encl_kstats()
3253 envctrl_mod_encl_kstats(struct envctrlunit *unitp, int type, in envctrl_mod_encl_kstats() argument
3259 ASSERT(MUTEX_HELD(&unitp->umutex)); in envctrl_mod_encl_kstats()
3262 if (unitp->encl_kstats[i].instance == instance && in envctrl_mod_encl_kstats()
3263 unitp->encl_kstats[i].type == type) { in envctrl_mod_encl_kstats()
3264 unitp->encl_kstats[i].value = val; in envctrl_mod_encl_kstats()
3272 envctrl_probe_cpus(struct envctrlunit *unitp) in envctrl_probe_cpus() argument
3290 unitp->cpu_pr_location[instance] = B_FALSE; in envctrl_probe_cpus()
3293 ddi_walk_devs(ddi_root_node(), envctrl_match_cpu, unitp); in envctrl_probe_cpus()
3303 struct envctrlunit *unitp = (struct envctrlunit *)arg; in envctrl_match_cpu() local
3314 unitp->cpu_pr_location[cpu_slot] = B_TRUE; in envctrl_match_cpu()
3315 unitp->num_cpus_present++; in envctrl_match_cpu()
3335 envctrl_isother_fault_led(struct envctrlunit *unitp, uint8_t fspval, in envctrl_isother_fault_led() argument
3343 if (unitp->num_fans_failed > 0 && thisled != 0) { in envctrl_isother_fault_led()
3358 struct envctrlunit *unitp = (struct envctrlunit *)arg; in envctrl_pshotplug_poll() local
3360 mutex_enter(&unitp->umutex); in envctrl_pshotplug_poll()
3362 envctrl_ps_probe(unitp); in envctrl_pshotplug_poll()
3364 mutex_exit(&unitp->umutex); in envctrl_pshotplug_poll()