Lines Matching refs:soft_state

45 static void hci1394_isr_bus_reset(hci1394_state_t *soft_state);
46 static void hci1394_isr_self_id(hci1394_state_t *soft_state);
47 static void hci1394_isr_isoch_ir(hci1394_state_t *soft_state);
48 static void hci1394_isr_isoch_it(hci1394_state_t *soft_state);
49 static void hci1394_isr_atreq_complete(hci1394_state_t *soft_state);
50 static void hci1394_isr_arresp(hci1394_state_t *soft_state);
51 static void hci1394_isr_arreq(hci1394_state_t *soft_state);
52 static void hci1394_isr_atresp_complete(hci1394_state_t *soft_state);
61 hci1394_isr_init(hci1394_state_t *soft_state) in hci1394_isr_init() argument
65 ASSERT(soft_state != NULL); in hci1394_isr_init()
68 status = ddi_intr_hilevel(soft_state->drvinfo.di_dip, 0); in hci1394_isr_init()
74 status = ddi_get_iblock_cookie(soft_state->drvinfo.di_dip, 0, in hci1394_isr_init()
75 &soft_state->drvinfo.di_iblock_cookie); in hci1394_isr_init()
90 hci1394_isr_fini(hci1394_state_t *soft_state) in hci1394_isr_fini() argument
92 ASSERT(soft_state != NULL); in hci1394_isr_fini()
103 hci1394_isr_handler_init(hci1394_state_t *soft_state) in hci1394_isr_handler_init() argument
107 ASSERT(soft_state != NULL); in hci1394_isr_handler_init()
110 status = ddi_add_intr(soft_state->drvinfo.di_dip, 0, NULL, NULL, in hci1394_isr_handler_init()
111 hci1394_isr, (caddr_t)soft_state); in hci1394_isr_handler_init()
121 hci1394_isr_handler_fini(hci1394_state_t *soft_state) in hci1394_isr_handler_fini() argument
123 ASSERT(soft_state != NULL); in hci1394_isr_handler_fini()
126 ddi_remove_intr(soft_state->drvinfo.di_dip, 0, in hci1394_isr_handler_fini()
127 soft_state->drvinfo.di_iblock_cookie); in hci1394_isr_handler_fini()
137 hci1394_isr_mask_setup(hci1394_state_t *soft_state) in hci1394_isr_mask_setup() argument
139 ASSERT(soft_state != NULL); in hci1394_isr_mask_setup()
142 hci1394_ohci_ir_intr_disable(soft_state->ohci, 0xFFFFFFFF); in hci1394_isr_mask_setup()
143 hci1394_ohci_ir_intr_clear(soft_state->ohci, 0xFFFFFFFF); in hci1394_isr_mask_setup()
144 hci1394_ohci_it_intr_disable(soft_state->ohci, 0xFFFFFFFF); in hci1394_isr_mask_setup()
145 hci1394_ohci_it_intr_clear(soft_state->ohci, 0xFFFFFFFF); in hci1394_isr_mask_setup()
146 hci1394_ohci_intr_disable(soft_state->ohci, 0xFFFFFFFF); in hci1394_isr_mask_setup()
147 hci1394_ohci_intr_clear(soft_state->ohci, 0xFFFFFFFF); in hci1394_isr_mask_setup()
150 hci1394_ohci_intr_enable(soft_state->ohci, in hci1394_isr_mask_setup()
171 hci1394_state_t *soft_state; in hci1394_isr() local
178 soft_state = (hci1394_state_t *)parm; in hci1394_isr()
180 ASSERT(soft_state != NULL); in hci1394_isr()
182 if (hci1394_state(&soft_state->drvinfo) == HCI1394_SHUTDOWN) in hci1394_isr()
189 interrupt_event = hci1394_ohci_intr_asserted(soft_state->ohci); in hci1394_isr()
193 hci1394_isr_bus_reset(soft_state); in hci1394_isr()
197 hci1394_isr_self_id(soft_state); in hci1394_isr()
201 hci1394_isr_isoch_it(soft_state); in hci1394_isr()
205 hci1394_isr_isoch_ir(soft_state); in hci1394_isr()
209 hci1394_isr_atreq_complete(soft_state); in hci1394_isr()
213 hci1394_isr_arresp(soft_state); in hci1394_isr()
217 hci1394_isr_arreq(soft_state); in hci1394_isr()
221 hci1394_isr_atresp_complete(soft_state); in hci1394_isr()
225 hci1394_ohci_isr_cycle64seconds(soft_state->ohci); in hci1394_isr()
229 h1394_error_detected(soft_state->drvinfo.di_sl_private, in hci1394_isr()
233 soft_state->drvinfo.di_instance); in hci1394_isr()
234 hci1394_shutdown(soft_state->drvinfo.di_dip); in hci1394_isr()
238 hci1394_isoch_cycle_lost(soft_state); in hci1394_isr()
242 hci1394_isoch_cycle_inconsistent(soft_state); in hci1394_isr()
246 hci1394_ohci_intr_clear(soft_state->ohci, in hci1394_isr()
249 hci1394_csr_state_bclr(soft_state->csr, in hci1394_isr()
251 h1394_error_detected(soft_state->drvinfo.di_sl_private, in hci1394_isr()
256 hci1394_ohci_postwr_addr(soft_state->ohci, in hci1394_isr()
258 h1394_error_detected(soft_state->drvinfo.di_sl_private, in hci1394_isr()
263 hci1394_ohci_isr_phy(soft_state->ohci); in hci1394_isr()
267 hci1394_ohci_intr_clear(soft_state->ohci, in hci1394_isr()
269 h1394_error_detected(soft_state->drvinfo.di_sl_private, in hci1394_isr()
288 (hci1394_state(&soft_state->drvinfo) == in hci1394_isr()
290 if (soft_state->drvinfo.di_gencnt != in hci1394_isr()
291 hci1394_ohci_current_busgen(soft_state->ohci)) { in hci1394_isr()
301 soft_state->ohci); in hci1394_isr()
315 hci1394_isr_bus_reset(hci1394_state_t *soft_state) in hci1394_isr_bus_reset() argument
320 ASSERT(soft_state != NULL); in hci1394_isr_bus_reset()
330 status = hci1394_state_set(&soft_state->drvinfo, HCI1394_BUS_RESET); in hci1394_isr_bus_reset()
332 hci1394_ohci_intr_master_disable(soft_state->ohci); in hci1394_isr_bus_reset()
341 soft_state->drvinfo.di_gencnt = in hci1394_isr_bus_reset()
342 hci1394_ohci_current_busgen(soft_state->ohci); in hci1394_isr_bus_reset()
344 soft_state->drvinfo.di_stats.st_bus_reset_count++; in hci1394_isr_bus_reset()
353 hci1394_ohci_intr_disable(soft_state->ohci, OHCI_INTR_BUS_RESET); in hci1394_isr_bus_reset()
356 hci1394_async_atreq_reset(soft_state->async); in hci1394_isr_bus_reset()
357 hci1394_async_atresp_reset(soft_state->async); in hci1394_isr_bus_reset()
360 h1394_bus_reset(soft_state->drvinfo.di_sl_private, in hci1394_isr_bus_reset()
361 (void **)&soft_state->sl_selfid_buf); in hci1394_isr_bus_reset()
372 hci1394_isr_self_id(hci1394_state_t *soft_state) in hci1394_isr_self_id() argument
386 ASSERT(soft_state != NULL); in hci1394_isr_self_id()
388 soft_state->drvinfo.di_stats.st_selfid_count++; in hci1394_isr_self_id()
394 if (hci1394_state(&soft_state->drvinfo) != HCI1394_BUS_RESET) { in hci1394_isr_self_id()
395 hci1394_isr_bus_reset(soft_state); in hci1394_isr_self_id()
405 status = hci1394_ohci_phy_read(soft_state->ohci, 5, &phy_status); in hci1394_isr_self_id()
409 status = hci1394_ohci_phy_write(soft_state->ohci, 5, in hci1394_isr_self_id()
417 hci1394_ohci_intr_enable(soft_state->ohci, in hci1394_isr_self_id()
423 if (hci1394_ohci_at_active(soft_state->ohci) == B_TRUE) { in hci1394_isr_self_id()
428 hci1394_ohci_intr_clear(soft_state->ohci, (OHCI_INTR_BUS_RESET | in hci1394_isr_self_id()
432 hci1394_ohci_nodeid_info(soft_state->ohci, &node_id, &nodeid_error); in hci1394_isr_self_id()
438 hci1394_ohci_selfid_sync(soft_state->ohci); in hci1394_isr_self_id()
441 hci1394_ohci_selfid_info(soft_state->ohci, in hci1394_isr_self_id()
442 &soft_state->drvinfo.di_gencnt, &selfid_size, &selfid_error); in hci1394_isr_self_id()
461 if (hci1394_ohci_selfid_buf_current(soft_state->ohci) == B_FALSE) { in hci1394_isr_self_id()
474 hci1394_ohci_selfid_read(soft_state->ohci, index + 1, in hci1394_isr_self_id()
475 &soft_state->sl_selfid_buf[index]); in hci1394_isr_self_id()
482 if (soft_state->halinfo.phy == H1394_PHY_1995) { in hci1394_isr_self_id()
484 (uintptr_t)soft_state->sl_selfid_buf + in hci1394_isr_self_id()
486 status = hci1394_ohci_phy_info(soft_state->ohci, in hci1394_isr_self_id()
502 hci1394_async_flush(soft_state->async); in hci1394_isr_self_id()
509 if (soft_state->drvinfo.di_gencnt != in hci1394_isr_self_id()
510 hci1394_ohci_current_busgen(soft_state->ohci)) { in hci1394_isr_self_id()
517 hci1394_csr_bus_reset(soft_state->csr); in hci1394_isr_self_id()
523 hci1394_isoch_error_ints_enable(soft_state); in hci1394_isr_self_id()
533 h1394_self_ids(soft_state->drvinfo.di_sl_private, in hci1394_isr_self_id()
534 soft_state->sl_selfid_buf, 0, node_id, in hci1394_isr_self_id()
535 soft_state->drvinfo.di_gencnt); in hci1394_isr_self_id()
548 status = hci1394_state_set(&soft_state->drvinfo, in hci1394_isr_self_id()
551 hci1394_ohci_intr_master_disable(soft_state->ohci); in hci1394_isr_self_id()
559 h1394_self_ids(soft_state->drvinfo.di_sl_private, in hci1394_isr_self_id()
560 soft_state->sl_selfid_buf, selfid_size, in hci1394_isr_self_id()
561 node_id, soft_state->drvinfo.di_gencnt); in hci1394_isr_self_id()
574 status = hci1394_state_set(&soft_state->drvinfo, in hci1394_isr_self_id()
577 hci1394_ohci_intr_master_disable(soft_state->ohci); in hci1394_isr_self_id()
582 "bus", soft_state->drvinfo.di_instance); in hci1394_isr_self_id()
586 hci1394_ohci_intr_enable(soft_state->ohci, OHCI_INTR_BUS_RESET); in hci1394_isr_self_id()
597 hci1394_isr_isoch_ir(hci1394_state_t *soft_state) in hci1394_isr_isoch_ir() argument
606 ASSERT(soft_state != NULL); in hci1394_isr_isoch_ir()
608 num_ir_contexts = hci1394_isoch_recv_count_get(soft_state->isoch); in hci1394_isr_isoch_ir()
615 while ((ev = hci1394_ohci_ir_intr_asserted(soft_state->ohci)) != 0) { in hci1394_isr_isoch_ir()
618 hci1394_ohci_ir_intr_clear(soft_state->ohci, ev); in hci1394_isr_isoch_ir()
628 soft_state->isoch, i); in hci1394_isr_isoch_ir()
629 hci1394_ixl_interrupt(soft_state, ctxtp, in hci1394_isr_isoch_ir()
645 hci1394_isr_isoch_it(hci1394_state_t *soft_state) in hci1394_isr_isoch_it() argument
654 ASSERT(soft_state != NULL); in hci1394_isr_isoch_it()
656 num_it_contexts = hci1394_isoch_xmit_count_get(soft_state->isoch); in hci1394_isr_isoch_it()
664 while ((ev = hci1394_ohci_it_intr_asserted(soft_state->ohci)) != 0) { in hci1394_isr_isoch_it()
667 hci1394_ohci_it_intr_clear(soft_state->ohci, ev); in hci1394_isr_isoch_it()
677 soft_state->isoch, i); in hci1394_isr_isoch_it()
678 hci1394_ixl_interrupt(soft_state, ctxtp, in hci1394_isr_isoch_it()
693 hci1394_isr_atreq_complete(hci1394_state_t *soft_state) in hci1394_isr_atreq_complete() argument
697 ASSERT(soft_state != NULL); in hci1394_isr_atreq_complete()
699 hci1394_ohci_intr_clear(soft_state->ohci, OHCI_INTR_REQ_TX_CMPLT); in hci1394_isr_atreq_complete()
711 (void) hci1394_async_atreq_process(soft_state->async, B_FALSE, in hci1394_isr_atreq_complete()
725 hci1394_isr_arresp(hci1394_state_t *soft_state) in hci1394_isr_arresp() argument
729 ASSERT(soft_state != NULL); in hci1394_isr_arresp()
731 hci1394_ohci_intr_clear(soft_state->ohci, OHCI_INTR_RSPKT); in hci1394_isr_arresp()
743 (void) hci1394_async_arresp_process(soft_state->async, in hci1394_isr_arresp()
755 hci1394_isr_arreq(hci1394_state_t *soft_state) in hci1394_isr_arreq() argument
759 ASSERT(soft_state != NULL); in hci1394_isr_arreq()
761 hci1394_ohci_intr_clear(soft_state->ohci, OHCI_INTR_RQPKT); in hci1394_isr_arreq()
771 (void) hci1394_async_arreq_process(soft_state->async, in hci1394_isr_arreq()
786 hci1394_isr_atresp_complete(hci1394_state_t *soft_state) in hci1394_isr_atresp_complete() argument
790 ASSERT(soft_state != NULL); in hci1394_isr_atresp_complete()
792 hci1394_ohci_intr_clear(soft_state->ohci, OHCI_INTR_RESP_TX_CMPLT); in hci1394_isr_atresp_complete()
806 (void) hci1394_async_atresp_process(soft_state->async, in hci1394_isr_atresp_complete()