Lines Matching defs:pib_p

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