Lines Matching refs:hsp

192 	hsc_slot_t *hsp = (hsc_slot_t *)ops_arg;  in hsc_connect()  local
196 DEBUG2("hsc_connect: slot %d, healthy %d", hsp->hs_slot_number, in hsc_connect()
197 hsp->hs_board_healthy); in hsc_connect()
199 if (!(hsp->hs_flags & (HSC_ENABLED|HSC_SLOT_ENABLED))) in hsc_connect()
202 if (hsp->hs_flags & HSC_SCB_HOTSWAPPED) in hsc_connect()
210 if (hsp->hs_flags & HSC_SLOT_BAD_STATE) { in hsc_connect()
215 hsc_led_op(hsp, HPC_CTRL_SET_LED_STATE, HPC_ACTIVE_LED, in hsc_connect()
222 rc = scsb_get_slot_state(hsp->hs_hpchandle, hsp->hs_slot_number, in hsc_connect()
227 hsp->hs_slot_state = rstate; in hsc_connect()
228 if (hsp->hs_slot_state == HPC_SLOT_EMPTY) { in hsc_connect()
232 hsp->hs_slot_number); in hsc_connect()
237 if (hsp->hs_slot_state == HPC_SLOT_CONNECTED) in hsc_connect()
244 if (scsb_connect_slot(hsp->hs_hpchandle, hsp->hs_slot_number, in hsc_connect()
245 hsp->hs_board_healthy) != DDI_SUCCESS) { in hsc_connect()
247 hsp->hs_slot_number); in hsc_connect()
250 if (hsp->hs_slot_state != HPC_SLOT_CONNECTED) { in hsc_connect()
251 if (hsp->hs_board_healthy == B_FALSE) { in hsc_connect()
253 " slot %d", hsp->hs_slot_number); in hsc_connect()
256 hsc = hsp->hsc; in hsc_connect()
257 hsc->hsp_last = hsp; in hsc_connect()
258 if (scsb_reset_slot(hsp->hs_hpchandle, in hsc_connect()
259 hsp->hs_slot_number, SCSB_UNRESET_SLOT) != 0) { in hsc_connect()
270 if (hsp->hs_flags & HSC_ENUM_FAILED) { in hsc_connect()
271 hsp->hs_flags &= ~HSC_ENUM_FAILED; in hsc_connect()
275 hsp->hs_slot_number); in hsc_connect()
277 hsp->hs_slot_state = HPC_SLOT_CONNECTED; in hsc_connect()
278 (void) hsc_led_op(hsp, HPC_CTRL_SET_LED_STATE, in hsc_connect()
298 hsc_slot_t *hsp = (hsc_slot_t *)ops_arg; in hsc_disconnect() local
304 DEBUG1("hsc_disconnect: slot %d", hsp->hs_slot_number); in hsc_disconnect()
306 if (hsp->hs_board_configured) { in hsc_disconnect()
310 func, hsp->hs_slot_number); in hsc_disconnect()
315 if (hsp->hs_slot_state == HPC_SLOT_EMPTY) { in hsc_disconnect()
318 func, hsp->hs_slot_number); in hsc_disconnect()
323 if (hsp->hs_slot_state == HPC_SLOT_DISCONNECTED) { in hsc_disconnect()
331 if (hsp->hs_flags & HSC_SCB_HOTSWAPPED) in hsc_disconnect()
335 if (scsb_disconnect_slot(hsp->hs_hpchandle, B_TRUE, hsp->hs_slot_number) in hsc_disconnect()
338 hsc = hsp->hsc; in hsc_disconnect()
339 if (hsc->hsp_last == hsp) in hsc_disconnect()
354 hsc_slot_t *hsp = (hsc_slot_t *)ops_arg; in hsc_insert() local
357 (scsb_enable_enum(hsp->hsc) == DDI_SUCCESS)) { in hsc_insert()
372 hsc_slot_t *hsp = (hsc_slot_t *)ops_arg; in hsc_remove() local
375 (scsb_disable_enum(hsp->hsc, SCSB_HSC_FORCE_REMOVE) in hsc_remove()
377 hsp->hs_flags &= ~HSC_ENUM_FAILED; in hsc_remove()
384 hsc_led_op(hsc_slot_t *hsp, int cmd, hpc_led_t led, hpc_led_state_t led_state) in hsc_led_op() argument
390 (void) hsc_led_state(hsp, cmd, &ledinfo); in hsc_led_op()
394 hsc_led_state(hsc_slot_t *hsp, int cmd, hpc_led_info_t *hlip) in hsc_led_state() argument
401 hsp->hs_slot_number, hlip->led, hlip->state); in hsc_led_state()
404 sunit.unit_number = hsp->hs_slot_number; in hsc_led_state()
411 hlsp = &hsp->hs_fault_led_state; in hsc_led_state()
415 hlsp = &hsp->hs_active_led_state; in hsc_led_state()
439 res = scsb_led_set(hsp->hs_hpchandle, &sunit, sunit.led_type); in hsc_led_state()
446 res = scsb_led_get(hsp->hs_hpchandle, &sunit, sunit.led_type); in hsc_led_state()
462 hsc_get_slot_state(hsc_slot_t *hsp, hpc_slot_state_t *hssp) in hsc_get_slot_state() argument
470 DEBUG1("hsc_get_slot_state: slot %d", hsp->hs_slot_number); in hsc_get_slot_state()
471 rc = scsb_get_slot_state(hsp->hs_hpchandle, hsp->hs_slot_number, in hsc_get_slot_state()
476 orstate = hsp->hs_slot_state; in hsc_get_slot_state()
478 hsp->hs_slot_state = rstate; in hsc_get_slot_state()
479 switch (hsp->hs_slot_state) { in hsc_get_slot_state()
491 *hssp = hsp->hs_slot_state; in hsc_get_slot_state()
494 if ((hsp->hs_flags & HSC_SCB_HOTSWAPPED) && in hsc_get_slot_state()
500 if (hsp->hs_board_configured == B_TRUE) { in hsc_get_slot_state()
501 hsp->hs_slot_state = *hssp; in hsc_get_slot_state()
509 " to SCB hotswap!", hsp->hs_slot_number); in hsc_get_slot_state()
517 hsc_set_config_state(hsc_slot_t *hsp, int cmd) in hsc_set_config_state() argument
519 hsc_state_t *hsc = hsp->hsc; in hsc_set_config_state()
521 DEBUG1("hsc_set_config_state: slot %d", hsp->hs_slot_number); in hsc_set_config_state()
530 if (hsp->hs_board_configured == B_TRUE) { in hsc_set_config_state()
531 hsc_led_op(hsp, HPC_CTRL_SET_LED_STATE, HPC_ACTIVE_LED, in hsc_set_config_state()
535 hsp->hs_board_configured = B_TRUE; in hsc_set_config_state()
536 hsp->hs_board_configuring = B_FALSE; in hsc_set_config_state()
538 hsp->hs_flags & HSC_ALARM_CARD_PRES) in hsc_set_config_state()
539 (void) scsb_hsc_ac_op(hsp->hs_hpchandle, in hsc_set_config_state()
540 hsp->hs_slot_number, SCSB_HSC_AC_CONFIGURED); in hsc_set_config_state()
542 (void) hpc_slot_event_notify(hsp->hs_slot_handle, in hsc_set_config_state()
544 if (hsp->hs_flags & HSC_AUTOCFG) in hsc_set_config_state()
545 (void) hpc_slot_event_notify(hsp->hs_slot_handle, in hsc_set_config_state()
548 (void) hpc_slot_event_notify(hsp->hs_slot_handle, in hsc_set_config_state()
550 hsc_led_op(hsp, HPC_CTRL_SET_LED_STATE, HPC_ACTIVE_LED, in hsc_set_config_state()
552 if (hsc->hsp_last == hsp) in hsc_set_config_state()
556 hsp->hs_board_configured = B_FALSE; in hsc_set_config_state()
557 hsp->hs_board_unconfiguring = B_FALSE; in hsc_set_config_state()
558 hsp->hs_flags &= ~HSC_SLOT_BAD_STATE; in hsc_set_config_state()
559 if (hsp->hs_flags & HSC_ALARM_CARD_PRES) in hsc_set_config_state()
560 (void) scsb_hsc_ac_op(hsp->hs_hpchandle, in hsc_set_config_state()
561 hsp->hs_slot_number, SCSB_HSC_AC_UNCONFIGURED); in hsc_set_config_state()
562 hsc_led_op(hsp, HPC_CTRL_SET_LED_STATE, HPC_ACTIVE_LED, in hsc_set_config_state()
568 ((hsp->hs_flags & HSC_AUTOCFG) != in hsc_set_config_state()
570 if (scsb_reset_slot(hsp->hs_hpchandle, in hsc_set_config_state()
571 hsp->hs_slot_number, SCSB_RESET_SLOT) == 0) { in hsc_set_config_state()
573 hsp->hs_slot_state = HPC_SLOT_DISCONNECTED; in hsc_set_config_state()
574 hsp->hs_board_healthy = B_FALSE; in hsc_set_config_state()
575 hsc_led_op(hsp, HPC_CTRL_SET_LED_STATE, in hsc_set_config_state()
581 hsc_led_op(hsp, HPC_CTRL_SET_LED_STATE, HPC_ACTIVE_LED, in hsc_set_config_state()
583 hsc_led_op(hsp, HPC_CTRL_SET_LED_STATE, in hsc_set_config_state()
587 hsc_led_op(hsp, HPC_CTRL_SET_LED_STATE, HPC_ACTIVE_LED, in hsc_set_config_state()
592 hsc_led_op(hsp, HPC_CTRL_SET_LED_STATE, HPC_FAULT_LED, in hsc_set_config_state()
594 hsc_led_op(hsp, HPC_CTRL_SET_LED_STATE, HPC_ACTIVE_LED, in hsc_set_config_state()
640 hsc_get_board_type(hsc_slot_t *hsp, hpc_board_type_t *hbtp) in hsc_get_board_type() argument
642 *hbtp = hsp->hs_board_type; in hsc_get_board_type()
649 hsc_autoconfig(hsc_slot_t *hsp, int cmd) in hsc_autoconfig() argument
655 DEBUG1("hsc_autoconfig: slot %d", hsp->hs_slot_number); in hsc_autoconfig()
657 hsp->hs_slot_number); in hsc_autoconfig()
660 hsp->hs_flags |= HSC_AUTOCFG; in hsc_autoconfig()
661 (void) ddi_prop_update_string(DDI_DEV_T_NONE, hsp->hsc->dip, in hsc_autoconfig()
663 if ((res = scsb_enable_enum(hsp->hsc)) == DDI_SUCCESS) { in hsc_autoconfig()
664 (void) hpc_slot_event_notify(hsp->hs_slot_handle, in hsc_autoconfig()
668 (void) ddi_prop_update_string(DDI_DEV_T_NONE, hsp->hsc->dip, in hsc_autoconfig()
670 hsp->hs_flags &= ~HSC_AUTOCFG; in hsc_autoconfig()
671 hsc = hsp->hsc; in hsc_autoconfig()
673 (void) hpc_slot_event_notify(hsp->hs_slot_handle, in hsc_autoconfig()
709 hsc_slot_enable(hsc_slot_t *hsp, boolean_t enabled) in hsc_slot_enable() argument
714 DEBUG1("hsc_slot_enable: slot %d", hsp->hs_slot_number); in hsc_slot_enable()
717 sunit.unit_number = hsp->hs_slot_number; in hsc_slot_enable()
723 res = scsb_reset_unit(hsp->hs_hpchandle, &sunit); in hsc_slot_enable()
738 hsc_slot_t *hsp = (hsc_slot_t *)ops_arg; in hsc_control() local
741 DEBUG2("hsc_control: slot %d, op=%x\n", hsp->hs_slot_number, request); in hsc_control()
745 return (hsc_led_state(hsp, in hsc_control()
749 return (hsc_led_state(hsp, in hsc_control()
753 return (hsc_get_slot_state(hsp, (hpc_slot_state_t *)arg)); in hsc_control()
756 return (hsc_set_config_state(hsp, HPC_CTRL_DEV_CONFIGURED)); in hsc_control()
759 return (hsc_set_config_state(hsp, HPC_CTRL_DEV_UNCONFIGURED)); in hsc_control()
762 return (hsc_set_config_state(hsp, HPC_CTRL_DEV_CONFIG_FAILURE)); in hsc_control()
765 return (hsc_set_config_state(hsp, in hsc_control()
770 return (hsc_set_config_state(hsp, request)); in hsc_control()
773 return (hsc_get_board_type(hsp, (hpc_board_type_t *)arg)); in hsc_control()
776 return (hsc_autoconfig(hsp, HPC_CTRL_DISABLE_AUTOCFG)); in hsc_control()
779 return (hsc_autoconfig(hsp, HPC_CTRL_ENABLE_AUTOCFG)); in hsc_control()
786 if (hsp->hs_board_configured == B_TRUE) in hsc_control()
788 if (scsb_hsc_disable_slot(hsp) != DDI_SUCCESS) in hsc_control()
793 if (scsb_hsc_enable_slot(hsp) != DDI_SUCCESS) in hsc_control()
798 return (scsb_enable_enum(hsp->hsc)); in hsc_control()
801 return (scsb_disable_enum(hsp->hsc, 0)); in hsc_control()
809 scsb_hsc_disable_slot(hsc_slot_t *hsp) in scsb_hsc_disable_slot() argument
814 DEBUG1("hsc_disable_slot: slot %d", hsp->hs_slot_number); in scsb_hsc_disable_slot()
815 (void) sprintf(slot_disable_prop, "slot%d-status", hsp->hs_slot_number); in scsb_hsc_disable_slot()
817 rc = scsb_reset_slot(hsp->hs_hpchandle, hsp->hs_slot_number, in scsb_hsc_disable_slot()
820 (void) hsc_autoconfig(hsp, HPC_CTRL_DISABLE_AUTOCFG); in scsb_hsc_disable_slot()
821 hsp->hs_flags &= ~HSC_SLOT_ENABLED; in scsb_hsc_disable_slot()
822 (void) ddi_prop_update_string(DDI_DEV_T_NONE, hsp->hsc->dip, in scsb_hsc_disable_slot()
830 scsb_hsc_enable_slot(hsc_slot_t *hsp) in scsb_hsc_enable_slot() argument
835 DEBUG1("hsc_disable_slot: slot %d", hsp->hs_slot_number); in scsb_hsc_enable_slot()
836 (void) sprintf(slot_disable_prop, "slot%d-status", hsp->hs_slot_number); in scsb_hsc_enable_slot()
838 rc = scsb_reset_slot(hsp->hs_hpchandle, hsp->hs_slot_number, in scsb_hsc_enable_slot()
841 (void) hsc_autoconfig(hsp, HPC_CTRL_ENABLE_AUTOCFG); in scsb_hsc_enable_slot()
842 hsp->hs_flags |= HSC_SLOT_ENABLED; in scsb_hsc_enable_slot()
843 (void) ddi_prop_remove(DDI_DEV_T_NONE, hsp->hsc->dip, in scsb_hsc_enable_slot()
859 hsc_slot_t *hsp = NEW(hsc_slot_t); in hsc_alloc_slot() local
864 if (hsp == NULL) { in hsc_alloc_slot()
871 hsip = &hsp->hs_info; in hsc_alloc_slot()
890 hsp->hs_active_led_state = HPC_LED_OFF; in hsc_alloc_slot()
891 hsp->hs_fault_led_state = HPC_LED_OFF; in hsc_alloc_slot()
893 hsp->hs_board_configured = B_FALSE; in hsc_alloc_slot()
894 hsp->hs_board_healthy = B_FALSE; in hsc_alloc_slot()
895 hsp->hs_board_type = HPC_BOARD_UNKNOWN; in hsc_alloc_slot()
897 hsp->hs_flags = HSC_ENABLED | HSC_SLOT_ENABLED; in hsc_alloc_slot()
898 hsp->hs_slot_number = slot_number; in hsc_alloc_slot()
905 hsp->hs_slot_state = HPC_SLOT_CONNECTED; in hsc_alloc_slot()
907 hsp->hs_slot_state = HPC_SLOT_EMPTY; in hsc_alloc_slot()
909 return (hsp); in hsc_alloc_slot()
914 hsc_free_slot(hsc_slot_t *hsp) in hsc_free_slot() argument
918 kmem_free(hsp, sizeof (*hsp)); in hsc_free_slot()
934 hsc_slot_t *hsp; in hsc_slot_register() local
939 hsp = hsc_alloc_slot(device_number, slot_number, in hsc_slot_register()
942 if (hsp == NULL) { in hsc_slot_register()
949 hsp->hs_hpchandle = hsc->scsb_handle; /* handle for call backs */ in hsc_slot_register()
950 hsp->hsc = hsc; in hsc_slot_register()
952 rc = scsb_hsc_init_slot_state(hsc, hsp); in hsc_slot_register()
958 (void) hsc_autoconfig(hsp, HPC_CTRL_ENABLE_AUTOCFG); in hsc_slot_register()
960 (void) hsc_autoconfig(hsp, HPC_CTRL_DISABLE_AUTOCFG); in hsc_slot_register()
966 hsp->hs_next = hsc_slot_list; in hsc_slot_register()
967 hsc_slot_list = hsp; in hsc_slot_register()
972 &hsp->hs_info, in hsc_slot_register()
973 &hsp->hs_slot_handle, /* return value */ in hsc_slot_register()
975 (caddr_t)hsp, in hsc_slot_register()
982 hsc_free_slot(hsp); in hsc_slot_register()
995 hsc_slot_t *hsp, *prev; in hsc_slot_unregister() local
1000 hsp = prev = NULL; in hsc_slot_unregister()
1001 for (hsp = hsc_slot_list; hsp != NULL; hsp = hsp->hs_next) { in hsc_slot_unregister()
1002 if (hsp->hs_slot_number == slot_number) { in hsc_slot_unregister()
1006 prev->hs_next = hsp->hs_next; in hsc_slot_unregister()
1007 hsp->hs_next = NULL; in hsc_slot_unregister()
1010 prev = hsp; in hsc_slot_unregister()
1014 if (hsp != NULL) { in hsc_slot_unregister()
1015 (void) hpc_slot_unregister(&hsp->hs_slot_handle); in hsc_slot_unregister()
1016 if ((hsp->hsc->state & HSC_ATTACHED) != HSC_ATTACHED && in hsc_slot_unregister()
1017 hsp->hs_slot_state != HPC_SLOT_EMPTY) { in hsc_slot_unregister()
1018 hsp->hsc->n_registered_occupants--; in hsc_slot_unregister()
1020 hsc_free_slot(hsp); in hsc_slot_unregister()
1027 scsb_hsc_init_slot_state(hsc_state_t *hsc, hsc_slot_t *hsp) in scsb_hsc_init_slot_state() argument
1030 int slot_number = hsp->hs_slot_number; in scsb_hsc_init_slot_state()
1040 hsp->hs_board_healthy = scsb_read_slot_health(scsb, slot_number); in scsb_hsc_init_slot_state()
1041 hsp->hs_slot_state = rstate; in scsb_hsc_init_slot_state()
1048 hsp->hs_slot_state = HPC_SLOT_EMPTY; in scsb_hsc_init_slot_state()
1052 hsc_led_op(hsp, HPC_CTRL_SET_LED_STATE, HPC_ACTIVE_LED, in scsb_hsc_init_slot_state()
1054 hsc_led_op(hsp, HPC_CTRL_SET_LED_STATE, HPC_FAULT_LED, in scsb_hsc_init_slot_state()
1062 hsp->hs_slot_state = HPC_SLOT_DISCONNECTED; in scsb_hsc_init_slot_state()
1064 if (hsp->hs_board_configured != B_TRUE) { in scsb_hsc_init_slot_state()
1075 hsc_led_op(hsp, HPC_CTRL_SET_LED_STATE, in scsb_hsc_init_slot_state()
1077 hsc_led_op(hsp, HPC_CTRL_SET_LED_STATE, in scsb_hsc_init_slot_state()
1087 hsp->hs_slot_state = HPC_SLOT_CONNECTED; in scsb_hsc_init_slot_state()
1096 if (hsp->hs_board_configured == B_TRUE) in scsb_hsc_init_slot_state()
1097 hsc_led_op(hsp, HPC_CTRL_SET_LED_STATE, in scsb_hsc_init_slot_state()
1100 hsc_led_op(hsp, HPC_CTRL_SET_LED_STATE, in scsb_hsc_init_slot_state()
1102 hsc_led_op(hsp, HPC_CTRL_SET_LED_STATE, HPC_FAULT_LED, in scsb_hsc_init_slot_state()
1109 hsp->hs_flags |= HSC_ALARM_CARD_PRES; in scsb_hsc_init_slot_state()
1137 hsc_slot_t *hsp; in hsc_find_slot() local
1140 for (hsp = hsc_slot_list; hsp != NULL; hsp = hsp->hs_next) { in hsc_find_slot()
1141 if (hsp->hs_slot_number == slot_number) in hsc_find_slot()
1145 return (hsp); in hsc_find_slot()
1158 hsc_slot_t *hsp; in hsc_slot_occupancy() local
1165 hsp = hsc_find_slot(slot_number); in hsc_slot_occupancy()
1167 if (hsp == NULL) { in hsc_slot_occupancy()
1174 hsp->hs_board_healthy = healthy; in hsc_slot_occupancy()
1179 if (hsp->hs_slot_state == HPC_SLOT_EMPTY) in hsc_slot_occupancy()
1180 hsp->hs_board_type = HPC_BOARD_CPCI_HS; in hsc_slot_occupancy()
1181 hsp->hs_slot_state = HPC_SLOT_DISCONNECTED; in hsc_slot_occupancy()
1183 hsp->hs_flags |= HSC_ALARM_CARD_PRES; in hsc_slot_occupancy()
1186 hsc_led_op(hsp, HPC_CTRL_SET_LED_STATE, HPC_FAULT_LED, in hsc_slot_occupancy()
1195 if (hsp->hs_flags & HSC_SLOT_BAD_STATE) { in hsc_slot_occupancy()
1196 hsc_led_op(hsp, HPC_CTRL_SET_LED_STATE, HPC_ACTIVE_LED, in hsc_slot_occupancy()
1202 if ((hsp->hs_flags & HSC_SLOT_ENABLED) != HSC_SLOT_ENABLED) in hsc_slot_occupancy()
1208 rc = hsc_slot_autoconnect(hsp); in hsc_slot_occupancy()
1209 hsc_led_op(hsp, HPC_CTRL_SET_LED_STATE, HPC_ACTIVE_LED, in hsc_slot_occupancy()
1215 hsp->hs_slot_state = HPC_SLOT_EMPTY; in hsc_slot_occupancy()
1216 hsp->hs_board_type = HPC_BOARD_UNKNOWN; in hsc_slot_occupancy()
1217 hsp->hs_flags &= ~HSC_ENUM_FAILED; in hsc_slot_occupancy()
1218 if (hsp->hs_flags & HSC_ALARM_CARD_PRES) { in hsc_slot_occupancy()
1219 hsp->hs_flags &= ~HSC_ALARM_CARD_PRES; in hsc_slot_occupancy()
1222 if (hsp->hs_board_configured == B_TRUE) { in hsc_slot_occupancy()
1223 (void) hpc_slot_event_notify(hsp->hs_slot_handle, in hsc_slot_occupancy()
1227 ddi_driver_name(hsp->hsc->dip), in hsc_slot_occupancy()
1228 ddi_get_instance(hsp->hsc->dip), in hsc_slot_occupancy()
1232 ddi_driver_name(hsp->hsc->dip), in hsc_slot_occupancy()
1233 ddi_get_instance(hsp->hsc->dip)); in hsc_slot_occupancy()
1235 (void) scsb_hsc_disable_slot(hsp); in hsc_slot_occupancy()
1236 hsp->hs_flags |= HSC_SLOT_BAD_STATE; in hsc_slot_occupancy()
1238 hsc_led_op(hsp, HPC_CTRL_SET_LED_STATE, HPC_FAULT_LED, in hsc_slot_occupancy()
1240 hsc_led_op(hsp, HPC_CTRL_SET_LED_STATE, HPC_ACTIVE_LED, in hsc_slot_occupancy()
1243 hsc_led_op(hsp, HPC_CTRL_SET_LED_STATE, HPC_FAULT_LED, in hsc_slot_occupancy()
1245 hsc_led_op(hsp, HPC_CTRL_SET_LED_STATE, HPC_ACTIVE_LED, in hsc_slot_occupancy()
1261 hsc_slot_t *hsp; in scsb_hsc_board_healthy() local
1266 hsp = hsc_find_slot(slot_number); in scsb_hsc_board_healthy()
1267 if (hsp == NULL) { in scsb_hsc_board_healthy()
1272 hsc = hsp->hsc; in scsb_hsc_board_healthy()
1273 if (hsp->hs_slot_state == HPC_SLOT_EMPTY) { in scsb_hsc_board_healthy()
1282 if (hsp->hs_slot_state == HPC_SLOT_DISCONNECTED) { in scsb_hsc_board_healthy()
1288 hsp->hs_board_healthy = healthy; in scsb_hsc_board_healthy()
1290 return (hsc_slot_autoconnect(hsp)); in scsb_hsc_board_healthy()
1298 if (hsp->hs_board_healthy != B_TRUE) { in scsb_hsc_board_healthy()
1299 hsc_led_op(hsp, HPC_CTRL_SET_LED_STATE, HPC_FAULT_LED, in scsb_hsc_board_healthy()
1306 hsp->hs_board_configured == B_TRUE ? in scsb_hsc_board_healthy()
1308 (void) hpc_slot_event_notify(hsp->hs_slot_handle, in scsb_hsc_board_healthy()
1312 if (hsp->hs_board_configured == B_TRUE) { in scsb_hsc_board_healthy()
1318 hsp->hs_board_configured == B_TRUE ? in scsb_hsc_board_healthy()
1320 (void) hpc_slot_event_notify(hsp->hs_slot_handle, in scsb_hsc_board_healthy()
1323 if ((hsp->hs_board_configured != B_TRUE) || in scsb_hsc_board_healthy()
1325 if (scsb_reset_slot(hsp->hs_hpchandle, in scsb_hsc_board_healthy()
1328 hsc_led_op(hsp, HPC_CTRL_SET_LED_STATE, in scsb_hsc_board_healthy()
1338 hsp->hs_board_healthy = healthy; in scsb_hsc_board_healthy()
1343 hsc_slot_autoconnect(hsc_slot_t *hsp) in hsc_slot_autoconnect() argument
1345 hsc_state_t *hsc = hsp->hsc; in hsc_slot_autoconnect()
1355 (hsp->hs_flags & HSC_AUTOCFG)) { in hsc_slot_autoconnect()
1357 hsc->hsp_last = hsp; in hsc_slot_autoconnect()
1358 if ((rc = scsb_reset_slot(hsp->hs_hpchandle, in hsc_slot_autoconnect()
1359 hsp->hs_slot_number, SCSB_UNRESET_SLOT)) == 0) { in hsc_slot_autoconnect()
1361 hsp->hs_slot_state = HPC_SLOT_CONNECTED; in hsc_slot_autoconnect()
1362 hsc_led_op(hsp, HPC_CTRL_SET_LED_STATE, in hsc_slot_autoconnect()
1476 hsc_slot_t *hsp; in hsc_clear_all_enum() local
1480 hsp = hsc_find_slot(hsc->slot_table_prop[i].pslotnum); in hsc_clear_all_enum()
1481 if (hsp == NULL) in hsc_clear_all_enum()
1483 rc = hpc_slot_event_notify(hsp->hs_slot_handle, in hsc_clear_all_enum()
1806 hsc_slot_t *hsp; in scsb_hsc_detach() local
1808 hsp = hsc_find_slot(hsc->slot_table_prop[i].pslotnum); in scsb_hsc_detach()
1809 if (hsp == NULL) { in scsb_hsc_detach()
1820 (void) hsc_led_state(hsp, HPC_CTRL_SET_LED_STATE, in scsb_hsc_detach()
1822 (void) hsc_led_state(hsp, HPC_CTRL_SET_LED_STATE, in scsb_hsc_detach()
1826 hsp->hs_slot_number); in scsb_hsc_detach()
1861 hsc_slot_t *hsp; in scsb_hsc_freeze() local
1874 hsp = hsc_find_slot(hsc->slot_table_prop[i].pslotnum); in scsb_hsc_freeze()
1876 if (hsp == NULL) { in scsb_hsc_freeze()
1891 if (hsp->hs_slot_state == HPC_SLOT_DISCONNECTED) { in scsb_hsc_freeze()
1895 hsp->hs_slot_number); in scsb_hsc_freeze()
1897 hsp->hs_flags |= HSC_SCB_HOTSWAPPED; in scsb_hsc_freeze()
1913 hsc_slot_t *hsp; in scsb_hsc_restore() local
1927 hsp = hsc_find_slot(hsc->slot_table_prop[i].pslotnum); in scsb_hsc_restore()
1929 if (hsp == NULL) { in scsb_hsc_restore()
1937 if ((hsp->hs_slot_state == HPC_SLOT_DISCONNECTED) && in scsb_hsc_restore()
1938 (hsp->hs_board_configured == B_FALSE)) { in scsb_hsc_restore()
1939 if (scsb_reset_slot(hsp->hs_hpchandle, in scsb_hsc_restore()
1940 hsp->hs_slot_number, in scsb_hsc_restore()
1946 hsp->hs_slot_number); in scsb_hsc_restore()
1950 if (scsb_hsc_init_slot_state(hsc, hsp) != DDI_SUCCESS) { in scsb_hsc_restore()
1956 hsp->hs_slot_number); in scsb_hsc_restore()
1958 hsp->hs_flags &= ~HSC_SCB_HOTSWAPPED; in scsb_hsc_restore()
1988 hsc_slot_t *hsp; in hsc_ac_op() local
1998 hsp = hsc_find_slot(pslotnum); in hsc_ac_op()
1999 if (hsp == NULL) { in hsc_ac_op()
2013 hsp->hs_slot_handle, in hsc_ac_op()
2017 *(hsc_slot_t **)arg = hsp; in hsc_ac_op()
2029 hsc_slot_t *hsp; in hsc_enum_intr() local
2035 hsp = hsc_find_slot(hsc->slot_table_prop[0].pslotnum); in hsc_enum_intr()
2036 if (hsp == NULL) /* No slots registered */ in hsc_enum_intr()
2043 rc = hpc_slot_event_notify(hsp->hs_slot_handle, in hsc_enum_intr()
2064 hsp = hsc->hsp_last; in hsc_enum_intr()
2069 hsp->hs_slot_number); in hsc_enum_intr()
2075 if (scsb_reset_slot(hsp->hs_hpchandle, in hsc_enum_intr()
2076 hsp->hs_slot_number, in hsc_enum_intr()
2079 hsp->hs_flags |= HSC_ENUM_FAILED; in hsc_enum_intr()
2080 if (hsp->hs_board_configured == B_TRUE) in hsc_enum_intr()
2086 hsc_led_op(hsp, HPC_CTRL_SET_LED_STATE, in hsc_enum_intr()
2098 hsp = hsc_get_slot_info(hsc, rc); in hsc_enum_intr()
2099 if (hsp == NULL) { in hsc_enum_intr()
2106 if (hsp->hs_flags & HSC_ALARM_CARD_PRES) { in hsc_enum_intr()
2107 if (scsb_hsc_ac_op(hsp->hs_hpchandle, hsp->hs_slot_number, in hsc_enum_intr()
2114 (void) scsb_hsc_ac_op(hsp->hs_hpchandle, in hsc_enum_intr()
2115 hsp->hs_slot_number, in hsc_enum_intr()
2124 if ((hsp->hs_flags & HSC_SCB_HOTSWAPPED) && in hsc_enum_intr()
2125 (hsp->hs_slot_state == HPC_SLOT_DISCONNECTED)) in hsc_enum_intr()
2128 (void) hpc_slot_event_notify(hsp->hs_slot_handle, in hsc_enum_intr()