Lines Matching refs:cbp
97 static int cardbus_configure_ap(cbus_t *cbp);
98 static int cardbus_unconfigure_ap(cbus_t *cbp);
104 cardbus_init_hotplug(cbus_t *cbp) in cardbus_init_hotplug() argument
114 if (hpc_nexus_register_bus(cbp->cb_dip, in cardbus_init_hotplug()
117 ddi_driver_name(cbp->cb_dip), cbp->cb_instance); in cardbus_init_hotplug()
121 (void) sprintf(cbp->ap_id, "slot%d", cbp->cb_instance); in cardbus_init_hotplug()
122 (void) ddi_pathname(cbp->cb_dip, tbuf); in cardbus_init_hotplug()
123 cbp->nexus_path = kmem_alloc(strlen(tbuf) + 1, KM_SLEEP); in cardbus_init_hotplug()
124 (void) strcpy(cbp->nexus_path, tbuf); in cardbus_init_hotplug()
125 cardbus_err(cbp->cb_dip, 8, in cardbus_init_hotplug()
126 "cardbus_init_hotplug: nexus_path set to %s", cbp->nexus_path); in cardbus_init_hotplug()
129 cbp->slot_ops = slot_ops; in cardbus_init_hotplug()
140 (void) strcpy(slot_info.slot.pci.slot_logical_name, cbp->ap_id); in cardbus_init_hotplug()
149 if (hpc_slot_register(cbp->cb_dip, cbp->nexus_path, &slot_info, in cardbus_init_hotplug()
150 &slhandle, slot_ops, (caddr_t)cbp, 0) != 0) { in cardbus_init_hotplug()
156 "cbp%d Unable to Register Slot %s", cbp->cb_instance, in cardbus_init_hotplug()
159 (void) hpc_nexus_unregister_bus(cbp->cb_dip); in cardbus_init_hotplug()
161 cbp->slot_ops = NULL; in cardbus_init_hotplug()
165 ASSERT(slhandle == cbp->slot_handle); in cardbus_init_hotplug()
167 cardbus_err(cbp->cb_dip, 8, in cardbus_init_hotplug()
168 "cardbus_init_hotplug: slot_handle 0x%p", cbp->slot_handle); in cardbus_init_hotplug()
176 cbus_t *cbp; in cardbus_event_handler() local
183 cbp = (cbus_t *)ddi_get_soft_state(cardbus_state, cb_instance); in cardbus_event_handler()
184 mutex_enter(&cbp->cb_mutex); in cardbus_event_handler()
193 cardbus_err(cbp->cb_dip, 7, in cardbus_event_handler()
195 ddi_driver_name(cbp->cb_dip), cbp->cb_instance); in cardbus_event_handler()
207 if (!(cbp->auto_config)) { in cardbus_event_handler()
211 cardbus_err(cbp->cb_dip, 7, in cardbus_event_handler()
214 ddi_driver_name(cbp->cb_dip), cbp->cb_instance, in cardbus_event_handler()
215 cbp->name); in cardbus_event_handler()
220 cardbus_err(cbp->cb_dip, 7, in cardbus_event_handler()
222 ddi_driver_name(cbp->cb_dip), cbp->cb_instance); in cardbus_event_handler()
224 if (cbp->ostate != AP_OSTATE_UNCONFIGURED) { in cardbus_event_handler()
226 cbp->cb_instance); in cardbus_event_handler()
234 if ((rv = hpc_nexus_connect(cbp->slot_handle, in cardbus_event_handler()
236 cbp->rstate = AP_RSTATE_CONNECTED; /* record rstate */ in cardbus_event_handler()
239 if (cardbus_configure_ap(cbp) == HPC_SUCCESS) in cardbus_event_handler()
240 create_occupant_props(cbp->cb_dip, makedevice( in cardbus_event_handler()
241 ddi_driver_major((cbp->cb_dip)), ap_minor)); in cardbus_event_handler()
251 if (!(cbp->auto_config)) { in cardbus_event_handler()
255 cardbus_err(cbp->cb_dip, 7, in cardbus_event_handler()
259 ddi_driver_name(cbp->cb_dip), cbp->cb_instance, in cardbus_event_handler()
260 cbp->name); in cardbus_event_handler()
265 cardbus_err(cbp->cb_dip, 7, in cardbus_event_handler()
268 ddi_driver_name(cbp->cb_dip), cbp->cb_instance, in cardbus_event_handler()
269 cbp->name); in cardbus_event_handler()
271 if (cardbus_unconfigure_ap(cbp) != HPC_SUCCESS) in cardbus_event_handler()
274 DEVI(cbp->cb_dip)->devi_ops->devo_bus_ops = cbp->orig_bopsp; in cardbus_event_handler()
283 if (cbp->ostate != AP_OSTATE_UNCONFIGURED) { in cardbus_event_handler()
284 cardbus_err(cbp->cb_dip, 1, in cardbus_event_handler()
288 ddi_driver_name(cbp->cb_dip), cbp->cb_instance, in cardbus_event_handler()
289 cbp->name); in cardbus_event_handler()
294 cardbus_err(cbp->cb_dip, 7, in cardbus_event_handler()
297 ddi_driver_name(cbp->cb_dip), cbp->cb_instance, in cardbus_event_handler()
298 cbp->name); in cardbus_event_handler()
307 cardbus_err(cbp->cb_dip, 7, in cardbus_event_handler()
310 ddi_driver_name(cbp->cb_dip), cbp->cb_instance, in cardbus_event_handler()
311 cbp->name); in cardbus_event_handler()
313 cbp->rstate = AP_RSTATE_CONNECTED; /* record rstate */ in cardbus_event_handler()
322 cardbus_err(cbp->cb_dip, 7, in cardbus_event_handler()
325 ddi_driver_name(cbp->cb_dip), cbp->cb_instance, in cardbus_event_handler()
326 cbp->name); in cardbus_event_handler()
328 cbp->rstate = AP_RSTATE_DISCONNECTED; /* record rstate */ in cardbus_event_handler()
333 cardbus_err(cbp->cb_dip, 4, in cardbus_event_handler()
336 ddi_driver_name(cbp->cb_dip), cbp->cb_instance, in cardbus_event_handler()
337 event_mask, cbp->name); in cardbus_event_handler()
342 mutex_exit(&cbp->cb_mutex); in cardbus_event_handler()
351 cbus_t *cbp; in cardbus_pci_control() local
357 cbp = (cbus_t *)ops_arg; in cardbus_pci_control()
358 ASSERT(mutex_owned(&cbp->cb_mutex)); in cardbus_pci_control()
367 cardbus_err(cbp->cb_dip, 7, in cardbus_pci_control()
372 if (cbp->card_present) in cardbus_pci_control()
385 cardbus_err(cbp->cb_dip, 7, in cardbus_pci_control()
399 cardbus_err(cbp->cb_dip, 5, in cardbus_pci_control()
406 cardbus_err(cbp->cb_dip, 5, in cardbus_pci_control()
409 hpc_led_info->led, cbp->leds[hpc_led_info->led]); in cardbus_pci_control()
411 hpc_led_info->state = cbp->leds[hpc_led_info->led]; in cardbus_pci_control()
417 cardbus_err(cbp->cb_dip, 4, in cardbus_pci_control()
422 cbp->leds[hpc_led_info->led] = hpc_led_info->state; in cardbus_pci_control()
426 cardbus_err(cbp->cb_dip, 5, in cardbus_pci_control()
438 cardbus_err(cbp->cb_dip, 5, in cardbus_pci_control()
464 cbus_t *cbp; in cardbus_new_slot_state() local
477 cbp = (cbus_t *)ddi_get_soft_state(cardbus_state, cb_instance); in cardbus_new_slot_state()
479 mutex_enter(&cbp->cb_mutex); in cardbus_new_slot_state()
487 if (cbp->slot_handle != NULL) { in cardbus_new_slot_state()
513 cbp->slot_handle = hdl; in cardbus_new_slot_state()
524 cbp->event_mask = (uint32_t)0xFFFFFFFF; in cardbus_new_slot_state()
530 cbp->auto_config = cardbus_autocfg_enabled; in cardbus_new_slot_state()
533 cbp->name = (char *)kmem_alloc(strlen(slot_info->pci_slot_name) in cardbus_new_slot_state()
535 (void) strcpy(cbp->name, slot_info->pci_slot_name); in cardbus_new_slot_state()
536 cardbus_err(cbp->cb_dip, 10, in cardbus_new_slot_state()
537 "cardbus_new_slot_state: cbp->name set to %s", cbp->name); in cardbus_new_slot_state()
542 cbp->ostate = AP_OSTATE_UNCONFIGURED; in cardbus_new_slot_state()
543 cbp->rstate = AP_RSTATE_EMPTY; in cardbus_new_slot_state()
553 if (cbp->ostate != AP_OSTATE_UNCONFIGURED) { in cardbus_new_slot_state()
564 if (cbp->soft_state != PCIHP_SOFT_STATE_CLOSED) { in cardbus_new_slot_state()
570 ddi_remove_minor_node(dip, cbp->name); in cardbus_new_slot_state()
572 kmem_free(cbp->name, strlen(cbp->name) + 1); in cardbus_new_slot_state()
575 cbp->name = NULL; in cardbus_new_slot_state()
576 cbp->slot_handle = NULL; in cardbus_new_slot_state()
589 mutex_exit(&cbp->cb_mutex); in cardbus_new_slot_state()
666 cardbus_configure_ap(cbus_t *cbp) in cardbus_configure_ap() argument
668 dev_info_t *self = cbp->cb_dip; in cardbus_configure_ap()
678 if (cbp->slot_handle == NULL || cbp->disabled) { in cardbus_configure_ap()
688 if (cbp->ostate == AP_OSTATE_CONFIGURED) { in cardbus_configure_ap()
712 ddi_driver_name(self), cbp->cb_instance, in cardbus_configure_ap()
713 cbp->name); in cardbus_configure_ap()
717 (void) hpc_nexus_control(cbp->slot_handle, in cardbus_configure_ap()
727 if (hpc_nexus_control(cbp->slot_handle, in cardbus_configure_ap()
737 cbp->rstate = AP_RSTATE_CONNECTED; /* record rstate */ in cardbus_configure_ap()
742 if (cardbus_configure(cbp) != PCICFG_SUCCESS) { in cardbus_configure_ap()
747 cbp->ostate = AP_OSTATE_CONFIGURED; in cardbus_configure_ap()
748 cbp->condition = AP_COND_OK; in cardbus_configure_ap()
772 ddi_driver_name(cbp->cb_dip), in cardbus_configure_ap()
773 cbp->cb_instance, cbp->name); in cardbus_configure_ap()
778 (void) hpc_nexus_control(cbp->slot_handle, in cardbus_configure_ap()
790 cardbus_unconfigure_ap(cbus_t *cbp) in cardbus_unconfigure_ap() argument
792 dev_info_t *self = cbp->cb_dip; in cardbus_unconfigure_ap()
801 if (cbp->slot_handle == NULL || cbp->disabled) { in cardbus_unconfigure_ap()
809 if (cbp->ostate == AP_OSTATE_CONFIGURED) { in cardbus_unconfigure_ap()
826 " (slot %s)", ddi_driver_name(cbp->cb_dip), in cardbus_unconfigure_ap()
827 cbp->cb_instance, cbp->name); in cardbus_unconfigure_ap()
831 if (cardbus_unconfigure(cbp) == PCICFG_SUCCESS) { in cardbus_unconfigure_ap()
836 cbp->ostate = AP_OSTATE_UNCONFIGURED; in cardbus_unconfigure_ap()
837 cbp->condition = AP_COND_UNKNOWN; in cardbus_unconfigure_ap()
842 (void) hpc_nexus_control(cbp->slot_handle, in cardbus_unconfigure_ap()
1037 cbus_t *cbp; in cardbus_open() local
1053 cbp = (cbus_t *)ddi_get_soft_state(cardbus_state, in cardbus_open()
1055 if (cbp == NULL) in cardbus_open()
1058 mutex_enter(&cbp->cb_mutex); in cardbus_open()
1069 if ((cbp->soft_state == PCIHP_SOFT_STATE_OPEN_EXCL) || in cardbus_open()
1071 (cbp->soft_state != PCIHP_SOFT_STATE_CLOSED))) { in cardbus_open()
1072 mutex_exit(&cbp->cb_mutex); in cardbus_open()
1077 cbp->soft_state = PCIHP_SOFT_STATE_OPEN_EXCL; in cardbus_open()
1079 cbp->soft_state = PCIHP_SOFT_STATE_OPEN; in cardbus_open()
1081 mutex_exit(&cbp->cb_mutex); in cardbus_open()
1089 cbus_t *cbp; in cardbus_close() local
1099 cbp = (cbus_t *)ddi_get_soft_state(cardbus_state, in cardbus_close()
1101 if (cbp == NULL) in cardbus_close()
1104 mutex_enter(&cbp->cb_mutex); in cardbus_close()
1105 cbp->soft_state = PCIHP_SOFT_STATE_CLOSED; in cardbus_close()
1106 mutex_exit(&cbp->cb_mutex); in cardbus_close()
1118 cbus_t *cbp; in cardbus_ioctl() local
1134 cbp = (cbus_t *)ddi_get_soft_state(cardbus_state, in cardbus_ioctl()
1136 if (cbp == NULL) in cardbus_ioctl()
1139 self = cbp->cb_dip; in cardbus_ioctl()
1171 cardbus_err(cbp->cb_dip, 7, in cardbus_ioctl()
1235 if ((cbp->slot_handle == NULL) || cbp->disabled) { in cardbus_ioctl()
1241 if (cbp->ostate != AP_OSTATE_UNCONFIGURED) { in cardbus_ioctl()
1249 mutex_enter(&cbp->cb_mutex); in cardbus_ioctl()
1252 rv = hpc_nexus_insert(cbp->slot_handle, NULL, 0); in cardbus_ioctl()
1255 rv = hpc_nexus_remove(cbp->slot_handle, NULL, 0); in cardbus_ioctl()
1258 if ((rv = hpc_nexus_connect(cbp->slot_handle, in cardbus_ioctl()
1260 cbp->rstate = AP_RSTATE_CONNECTED; in cardbus_ioctl()
1263 if ((rv = hpc_nexus_disconnect(cbp->slot_handle, in cardbus_ioctl()
1265 cbp->rstate = AP_RSTATE_DISCONNECTED; in cardbus_ioctl()
1268 mutex_exit(&cbp->cb_mutex); in cardbus_ioctl()
1291 mutex_enter(&cbp->cb_mutex); in cardbus_ioctl()
1292 if ((nrv = cardbus_configure_ap(cbp)) == HPC_SUCCESS) { in cardbus_ioctl()
1293 create_occupant_props(cbp->cb_dip, dev); in cardbus_ioctl()
1296 mutex_exit(&cbp->cb_mutex); in cardbus_ioctl()
1306 mutex_enter(&cbp->cb_mutex); in cardbus_ioctl()
1307 if ((nrv = cardbus_unconfigure_ap(cbp)) == HPC_SUCCESS) { in cardbus_ioctl()
1308 delete_occupant_props(cbp->cb_dip, dev); in cardbus_ioctl()
1311 mutex_exit(&cbp->cb_mutex); in cardbus_ioctl()
1331 if (cbp->slot_handle == NULL) { in cardbus_ioctl()
1337 mutex_held = mutex_tryenter(&cbp->cb_mutex); in cardbus_ioctl()
1339 if (cbp->ostate == AP_OSTATE_UNCONFIGURED) { in cardbus_ioctl()
1340 if (hpc_nexus_control(cbp->slot_handle, in cardbus_ioctl()
1345 mutex_exit(&cbp->cb_mutex); in cardbus_ioctl()
1348 cbp->rstate = (ap_rstate_t)rstate; in cardbus_ioctl()
1351 ap_state.ap_rstate = cbp->rstate; in cardbus_ioctl()
1352 ap_state.ap_ostate = cbp->ostate; in cardbus_ioctl()
1353 ap_state.ap_condition = cbp->condition; in cardbus_ioctl()
1362 mutex_exit(&cbp->cb_mutex); in cardbus_ioctl()
1452 cardbus_err(cbp->cb_dip, 7, in cardbus_ioctl()
1461 if (cbp->slot_handle == NULL) { in cardbus_ioctl()
1466 mutex_enter(&cbp->cb_mutex); in cardbus_ioctl()
1477 if (hpc_nexus_control(cbp->slot_handle, in cardbus_ioctl()
1501 if (hpc_nexus_control(cbp->slot_handle, in cardbus_ioctl()
1514 cbp->disabled = B_FALSE; in cardbus_ioctl()
1517 (void) hpc_nexus_control(cbp->slot_handle, in cardbus_ioctl()
1526 cbp->disabled = B_TRUE; in cardbus_ioctl()
1529 (void) hpc_nexus_control(cbp->slot_handle, in cardbus_ioctl()
1538 cbp->auto_config = B_TRUE; in cardbus_ioctl()
1541 (void) hpc_nexus_control(cbp->slot_handle, in cardbus_ioctl()
1549 cbp->auto_config = B_FALSE; in cardbus_ioctl()
1552 (void) hpc_nexus_control(cbp->slot_handle, in cardbus_ioctl()
1564 if (hpc_nexus_control(cbp->slot_handle, in cardbus_ioctl()
1593 (void) strcpy(slot_info.pci_slot_name, cbp->name); in cardbus_ioctl()
1614 if (cbp->card_present == B_FALSE) { in cardbus_ioctl()
1619 if (cbp->ostate != AP_OSTATE_CONFIGURED) { in cardbus_ioctl()
1628 for (child_dip = ddi_get_child(cbp->cb_dip); child_dip; in cardbus_ioctl()
1668 mutex_exit(&cbp->cb_mutex); in cardbus_ioctl()
1678 cardbus_err(cbp->cb_dip, 7, in cardbus_ioctl()