Lines Matching refs:pib_p

48 	pcmu_ib_t *pib_p;  in pcmu_ib_create()  local
56 pib_p = kmem_zalloc(sizeof (pcmu_ib_t), KM_SLEEP); in pcmu_ib_create()
57 pcmu_p->pcmu_ib_p = pib_p; in pcmu_ib_create()
58 pib_p->pib_pcmu_p = pcmu_p; in pcmu_ib_create()
60 a = pcmu_ib_setup(pib_p); in pcmu_ib_create()
66 pib_p->pib_intr_retry_timer_reg = in pcmu_ib_create()
68 pib_p->pib_obio_intr_state_diag_reg = in pcmu_ib_create()
73 pib_p->pib_obio_intr_map_regs, pib_p->pib_obio_clear_intr_regs); in pcmu_ib_create()
76 pib_p->pib_intr_retry_timer_reg, in pcmu_ib_create()
77 pib_p->pib_obio_intr_state_diag_reg); in pcmu_ib_create()
79 pib_p->pib_ino_lst = (pcmu_ib_ino_info_t *)NULL; in pcmu_ib_create()
80 mutex_init(&pib_p->pib_intr_lock, NULL, MUTEX_DRIVER, NULL); in pcmu_ib_create()
81 mutex_init(&pib_p->pib_ino_lst_mutex, NULL, MUTEX_DRIVER, NULL); in pcmu_ib_create()
87 (uint64_t *)pib_p->pib_upa_imr[i - 1], i); in pcmu_ib_create()
90 pcmu_ib_configure(pib_p); in pcmu_ib_create()
91 bus_func_register(BF_TYPE_RESINTR, pcmu_ib_intr_reset, pib_p); in pcmu_ib_create()
97 pcmu_ib_t *pib_p = pcmu_p->pcmu_ib_p; in pcmu_ib_destroy() local
100 bus_func_unregister(BF_TYPE_RESINTR, pcmu_ib_intr_reset, pib_p); in pcmu_ib_destroy()
102 intr_dist_rem_weighted(pcmu_ib_intr_dist_all, pib_p); in pcmu_ib_destroy()
103 mutex_destroy(&pib_p->pib_ino_lst_mutex); in pcmu_ib_destroy()
104 mutex_destroy(&pib_p->pib_intr_lock); in pcmu_ib_destroy()
106 pcmu_ib_free_ino_all(pib_p); in pcmu_ib_destroy()
108 kmem_free(pib_p, sizeof (pcmu_ib_t)); in pcmu_ib_destroy()
113 pcmu_ib_configure(pcmu_ib_t *pib_p) in pcmu_ib_configure() argument
115 *pib_p->pib_intr_retry_timer_reg = pcmu_intr_retry_intv; in pcmu_ib_configure()
124 pcmu_ib_t *pib_p = pcmu_p->pcmu_ib_p; in pcmu_ib_intr_enable() local
125 pcmu_ib_mondo_t mondo = PCMU_IB_INO_TO_MONDO(pib_p, ino); in pcmu_ib_intr_enable()
126 volatile uint64_t *imr_p = ib_intr_map_reg_addr(pib_p, ino); in pcmu_ib_intr_enable()
132 mutex_enter(&pib_p->pib_intr_lock); in pcmu_ib_intr_enable()
139 PCMU_IB_INO_INTR_CLEAR(ib_clear_intr_reg_addr(pib_p, ino)); in pcmu_ib_intr_enable()
140 mutex_exit(&pib_p->pib_intr_lock); in pcmu_ib_intr_enable()
149 pcmu_ib_intr_disable(pcmu_ib_t *pib_p, pcmu_ib_ino_t ino, int wait) in pcmu_ib_intr_disable() argument
151 volatile uint64_t *imr_p = ib_intr_map_reg_addr(pib_p, ino); in pcmu_ib_intr_disable()
152 volatile uint64_t *state_reg_p = PCMU_IB_INO_INTR_STATE_REG(pib_p, ino); in pcmu_ib_intr_disable()
158 mutex_enter(&pib_p->pib_intr_lock); in pcmu_ib_intr_disable()
161 mutex_exit(&pib_p->pib_intr_lock); in pcmu_ib_intr_disable()
185 pcmu_pbm_t *pcbm_p = pib_p->pib_pcmu_p->pcmu_pcbm_p; in pcmu_ib_intr_disable()
194 PCMU_IB_INO_INTR_PEND(ib_clear_intr_reg_addr(pib_p, ino)); in pcmu_ib_intr_disable()
196 (PCMU_IB2CB(pib_p)->pcb_ittrans_cookie), imr_p); in pcmu_ib_intr_disable()
201 pcmu_ib_nintr_clear(pcmu_ib_t *pib_p, pcmu_ib_ino_t ino) in pcmu_ib_nintr_clear() argument
203 uint64_t *clr_reg = ib_clear_intr_reg_addr(pib_p, ino); in pcmu_ib_nintr_clear()
212 pcmu_ib_intr_dist_nintr(pcmu_ib_t *pib_p, pcmu_ib_ino_t ino, in pcmu_ib_intr_dist_nintr() argument
224 cpu_id = u2u_translate_tgtid(pib_p->pib_pcmu_p, cpu_id, imr_p); in pcmu_ib_intr_dist_nintr()
235 pcmu_ib_intr_dist(pcmu_ib_t *pib_p, pcmu_ib_ino_info_t *ino_p) in pcmu_ib_intr_dist() argument
244 ASSERT(MUTEX_HELD(&pib_p->pib_ino_lst_mutex)); in pcmu_ib_intr_dist()
245 imr_p = ib_intr_map_reg_addr(pib_p, ino); in pcmu_ib_intr_dist()
246 state_reg = PCMU_IB_INO_INTR_STATE_REG(pib_p, ino); in pcmu_ib_intr_dist()
271 pcmu_pbm_t *pcbm_p = pib_p->pib_pcmu_p->pcmu_pcbm_p; in pcmu_ib_intr_dist()
276 (void *)imr_p, PCMU_IB_INO_TO_MONDO(pib_p, ino)); in pcmu_ib_intr_dist()
280 cpu_id = u2u_translate_tgtid(pib_p->pib_pcmu_p, cpu_id, imr_p); in pcmu_ib_intr_dist()
297 pcmu_ib_t *pib_p = (pcmu_ib_t *)arg; in pcmu_ib_intr_dist_all() local
303 mutex_enter(&pib_p->pib_ino_lst_mutex); in pcmu_ib_intr_dist_all()
307 for (ino_p = pib_p->pib_ino_lst; ino_p; in pcmu_ib_intr_dist_all()
336 for (ino_p = pib_p->pib_ino_lst; ino_p; ino_p = ino_p->pino_next) { in pcmu_ib_intr_dist_all()
349 ino_p->pino_cpuid = pcmu_intr_dist_cpuid(pib_p, ino_p); in pcmu_ib_intr_dist_all()
362 pcmu_ib_intr_dist(pib_p, ino_p); in pcmu_ib_intr_dist_all()
365 mutex_exit(&pib_p->pib_ino_lst_mutex); in pcmu_ib_intr_dist_all()
379 pcmu_ib_t *pib_p = (pcmu_ib_t *)arg; in pcmu_ib_intr_reset() local
387 for (ino = 0; ino <= pib_p->pib_max_ino; ino++) { in pcmu_ib_intr_reset()
388 clr_reg = ib_clear_intr_reg_addr(pib_p, ino); in pcmu_ib_intr_reset()
395 pcmu_ib_suspend(pcmu_ib_t *pib_p) in pcmu_ib_suspend() argument
400 mutex_enter(&pib_p->pib_ino_lst_mutex); in pcmu_ib_suspend()
401 for (ip = pib_p->pib_ino_lst; ip; ip = ip->pino_next) { in pcmu_ib_suspend()
404 mutex_exit(&pib_p->pib_ino_lst_mutex); in pcmu_ib_suspend()
408 pcmu_ib_resume(pcmu_ib_t *pib_p) in pcmu_ib_resume() argument
413 mutex_enter(&pib_p->pib_ino_lst_mutex); in pcmu_ib_resume()
414 for (ip = pib_p->pib_ino_lst; ip; ip = ip->pino_next) { in pcmu_ib_resume()
418 mutex_exit(&pib_p->pib_ino_lst_mutex); in pcmu_ib_resume()
426 pcmu_ib_locate_ino(pcmu_ib_t *pib_p, pcmu_ib_ino_t ino_num) in pcmu_ib_locate_ino() argument
428 pcmu_ib_ino_info_t *ino_p = pib_p->pib_ino_lst; in pcmu_ib_locate_ino()
429 ASSERT(MUTEX_HELD(&pib_p->pib_ino_lst_mutex)); in pcmu_ib_locate_ino()
440 pcmu_ib_new_ino(pcmu_ib_t *pib_p, pcmu_ib_ino_t ino_num, ih_t *ih_p) in pcmu_ib_new_ino() argument
446 ino_p->pino_ib_p = pib_p; in pcmu_ib_new_ino()
447 ino_p->pino_clr_reg = ib_clear_intr_reg_addr(pib_p, ino_num); in pcmu_ib_new_ino()
448 ino_p->pino_map_reg = ib_intr_map_reg_addr(pib_p, ino_num); in pcmu_ib_new_ino()
462 ino_p->pino_next = pib_p->pib_ino_lst; in pcmu_ib_new_ino()
463 pib_p->pib_ino_lst = ino_p; in pcmu_ib_new_ino()
469 pcmu_ib_delete_ino(pcmu_ib_t *pib_p, pcmu_ib_ino_info_t *ino_p) in pcmu_ib_delete_ino() argument
471 pcmu_ib_ino_info_t *list = pib_p->pib_ino_lst; in pcmu_ib_delete_ino()
472 ASSERT(MUTEX_HELD(&pib_p->pib_ino_lst_mutex)); in pcmu_ib_delete_ino()
474 pib_p->pib_ino_lst = list->pino_next; in pcmu_ib_delete_ino()
484 pcmu_ib_free_ino_all(pcmu_ib_t *pib_p) in pcmu_ib_free_ino_all() argument
486 pcmu_ib_ino_info_t *tmp = pib_p->pib_ino_lst; in pcmu_ib_free_ino_all()
499 pcmu_ib_t *pib_p = ino_p->pino_ib_p; in pcmu_ib_ino_add_intr() local
500 volatile uint64_t *state_reg = PCMU_IB_INO_INTR_STATE_REG(pib_p, ino); in pcmu_ib_ino_add_intr()
505 ASSERT(pib_p == pcmu_p->pcmu_ib_p); in pcmu_ib_ino_add_intr()
506 ASSERT(MUTEX_HELD(&pib_p->pib_ino_lst_mutex)); in pcmu_ib_ino_add_intr()
728 pcmu_ib_t *pib_p = pcmu_p->pcmu_ib_p; in pcmu_ib_update_intr_state() local
734 mutex_enter(&pib_p->pib_ino_lst_mutex); in pcmu_ib_update_intr_state()
738 mutex_exit(&pib_p->pib_ino_lst_mutex); in pcmu_ib_update_intr_state()
742 if (ino_p = pcmu_ib_locate_ino(pib_p, PCMU_IB_MONDO_TO_INO(mondo))) { in pcmu_ib_update_intr_state()
749 mutex_exit(&pib_p->pib_ino_lst_mutex); in pcmu_ib_update_intr_state()