Lines Matching refs:ib_p

55 	ib_t *ib_p;
63 ib_p = kmem_zalloc(sizeof (ib_t), KM_SLEEP);
64 pci_p->pci_ib_p = ib_p;
65 ib_p->ib_pci_p = pci_p;
67 a = pci_ib_setup(ib_p);
73 ib_p->ib_slot_clear_intr_regs =
75 ib_p->ib_intr_retry_timer_reg =
77 ib_p->ib_slot_intr_state_diag_reg =
79 ib_p->ib_obio_intr_state_diag_reg =
83 ib_p->ib_upa_imr[0] = (volatile uint64_t *)
85 ib_p->ib_upa_imr[1] = (volatile uint64_t *)
90 ib_p->ib_slot_intr_map_regs, ib_p->ib_obio_intr_map_regs);
92 ib_p->ib_slot_clear_intr_regs, ib_p->ib_obio_clear_intr_regs);
94 ib_p->ib_upa_imr[0], ib_p->ib_upa_imr[1]);
97 ib_p->ib_intr_retry_timer_reg,
98 ib_p->ib_obio_intr_state_diag_reg,
99 ib_p->ib_slot_intr_state_diag_reg);
101 ib_p->ib_ino_lst = (ib_ino_info_t *)NULL;
102 mutex_init(&ib_p->ib_intr_lock, NULL, MUTEX_DRIVER, NULL);
103 mutex_init(&ib_p->ib_ino_lst_mutex, NULL, MUTEX_DRIVER, NULL);
109 (uint64_t *)ib_p->ib_upa_imr[i - 1], i);
112 ib_configure(ib_p);
113 bus_func_register(BF_TYPE_RESINTR, ib_intr_reset, ib_p);
119 ib_t *ib_p = pci_p->pci_ib_p;
123 bus_func_unregister(BF_TYPE_RESINTR, ib_intr_reset, ib_p);
125 intr_dist_rem_weighted(ib_intr_dist_all, ib_p);
126 mutex_destroy(&ib_p->ib_ino_lst_mutex);
127 mutex_destroy(&ib_p->ib_intr_lock);
129 ib_free_ino_all(ib_p);
131 kmem_free(ib_p, sizeof (ib_t));
136 ib_configure(ib_t *ib_p)
139 *ib_p->ib_intr_retry_timer_reg = pci_intr_retry_intv;
149 ib_t *ib_p = pci_p->pci_ib_p;
150 ib_mondo_t mondo = IB_INO_TO_MONDO(ib_p, ino);
151 volatile uint64_t *imr_p = ib_intr_map_reg_addr(ib_p, ino);
157 mutex_enter(&ib_p->ib_intr_lock);
160 cpu_id = pc_translate_tgtid(IB2CB(ib_p)->cb_ittrans_cookie, cpu_id,
167 IB_INO_INTR_CLEAR(ib_clear_intr_reg_addr(ib_p, ino));
168 mutex_exit(&ib_p->ib_intr_lock);
177 ib_intr_disable(ib_t *ib_p, ib_ino_t ino, int wait)
179 volatile uint64_t *imr_p = ib_intr_map_reg_addr(ib_p, ino);
180 volatile uint64_t *state_reg_p = IB_INO_INTR_STATE_REG(ib_p, ino);
184 mutex_enter(&ib_p->ib_intr_lock);
187 mutex_exit(&ib_p->ib_intr_lock);
196 pbm_t *pbm_p = ib_p->ib_pci_p->pci_pbm_p;
204 IB_INO_INTR_PEND(ib_clear_intr_reg_addr(ib_p, ino));
206 pc_ittrans_cleanup(IB2CB(ib_p)->cb_ittrans_cookie,
213 ib_nintr_clear(ib_t *ib_p, ib_ino_t ino)
215 uint64_t *clr_reg = ib_clear_intr_reg_addr(ib_p, ino);
224 ib_intr_dist_nintr(ib_t *ib_p, ib_ino_t ino, volatile uint64_t *imr_p)
236 cpu_id = pc_translate_tgtid(IB2CB(ib_p)->cb_ittrans_cookie,
253 ib_cpu_ticks_to_ih_nsec(ib_t *ib_p, ih_t *ih_p, uint32_t cpu_id)
269 ASSERT(MUTEX_HELD(&ib_p->ib_ino_lst_mutex));
278 ib_intr_dist(ib_t *ib_p, ib_ino_info_t *ino_p)
285 ASSERT(MUTEX_HELD(&ib_p->ib_ino_lst_mutex));
286 imr_p = ib_intr_map_reg_addr(ib_p, ino);
287 state_reg = IB_INO_INTR_STATE_REG(ib_p, ino);
297 cpu_id = pc_translate_tgtid(IB2CB(ib_p)->cb_ittrans_cookie, cpu_id,
312 pbm_t *pbm_p = ib_p->ib_pci_p->pci_pbm_p;
316 imr_p, IB_INO_TO_MONDO(ib_p, ino));
336 ib_t *ib_p = (ib_t *)arg;
337 pci_t *pci_p = ib_p->ib_pci_p;
345 mutex_enter(&ib_p->ib_intr_lock);
348 ib_intr_dist_nintr(ib_p, 0,
349 ib_p->ib_upa_imr[i]);
351 mutex_exit(&ib_p->ib_intr_lock);
354 mutex_enter(&ib_p->ib_ino_lst_mutex);
358 for (ino_p = ib_p->ib_ino_lst; ino_p;
393 for (ino_p = ib_p->ib_ino_lst; ino_p; ino_p = ino_p->ino_next_p) {
411 ino_p->ino_cpuid = pci_intr_dist_cpuid(ib_p, ino_p);
444 ib_cpu_ticks_to_ih_nsec(ib_p, ih_lst,
450 ib_intr_dist(ib_p, ino_p);
453 mutex_exit(&ib_p->ib_ino_lst_mutex);
467 ib_t *ib_p = (ib_t *)arg;
475 for (ino = 0; ino <= ib_p->ib_max_ino; ino++) {
476 clr_reg = ib_clear_intr_reg_addr(ib_p, ino);
484 ib_suspend(ib_t *ib_p)
487 pci_t *pci_p = ib_p->ib_pci_p;
490 mutex_enter(&ib_p->ib_ino_lst_mutex);
491 for (ip = ib_p->ib_ino_lst; ip; ip = ip->ino_next_p)
493 mutex_exit(&ib_p->ib_ino_lst_mutex);
496 ib_p->ib_upa_imr_state[0] = *ib_p->ib_upa_imr[0];
497 ib_p->ib_upa_imr_state[1] = *ib_p->ib_upa_imr[1];
502 ib_resume(ib_t *ib_p)
505 pci_t *pci_p = ib_p->ib_pci_p;
508 mutex_enter(&ib_p->ib_ino_lst_mutex);
509 for (ip = ib_p->ib_ino_lst; ip; ip = ip->ino_next_p) {
513 mutex_exit(&ib_p->ib_ino_lst_mutex);
516 *ib_p->ib_upa_imr[0] = ib_p->ib_upa_imr_state[0];
517 *ib_p->ib_upa_imr[1] = ib_p->ib_upa_imr_state[1];
522 * locate ino_info structure on ib_p->ib_ino_lst according to ino#
526 ib_locate_ino(ib_t *ib_p, ib_ino_t ino_num)
528 ib_ino_info_t *ino_p = ib_p->ib_ino_lst;
529 ASSERT(MUTEX_HELD(&ib_p->ib_ino_lst_mutex));
539 ib_new_ino_pil(ib_t *ib_p, ib_ino_t ino_num, uint_t pil, ih_t *ih_p)
544 if ((ino_p = ib_locate_ino(ib_p, ino_num)) == NULL) {
547 ino_p->ino_next_p = ib_p->ib_ino_lst;
548 ib_p->ib_ino_lst = ino_p;
552 ino_p->ino_ib_p = ib_p;
553 ino_p->ino_clr_reg = ib_clear_intr_reg_addr(ib_p, ino_num);
554 ino_p->ino_map_reg = ib_intr_map_reg_addr(ib_p, ino_num);
578 ib_delete_ino_pil(ib_t *ib_p, ib_ino_pil_t *ipil_p)
584 ASSERT(MUTEX_HELD(&ib_p->ib_ino_lst_mutex));
615 if (ib_p->ib_ino_lst == ino_p)
616 ib_p->ib_ino_lst = ino_p->ino_next_p;
618 ib_ino_info_t *list = ib_p->ib_ino_lst;
628 ib_free_ino_all(ib_t *ib_p)
630 ib_ino_info_t *ino_p = ib_p->ib_ino_lst;
660 ib_t *ib_p = ino_p->ino_ib_p;
661 volatile uint64_t *state_reg = IB_INO_INTR_STATE_REG(ib_p, ino);
664 ASSERT(ib_p == pci_p->pci_ib_p);
665 ASSERT(MUTEX_HELD(&ib_p->ib_ino_lst_mutex));
855 ib_t *ib_p = pci_p->pci_ib_p;
869 DEBUG0(DBG_IB, ib_p->ib_pci_p->pci_dip,
875 mutex_enter(&ib_p->ib_ino_lst_mutex);
879 mutex_exit(&ib_p->ib_ino_lst_mutex);
883 ino_p = ib_locate_ino(ib_p, IB_MONDO_TO_INO(mondo));
891 mutex_exit(&ib_p->ib_ino_lst_mutex);
904 ib_t *ib_p = pci_p->pci_ib_p;
910 imregp = ib_intr_map_reg_addr(ib_p, ino);
928 ib_t *ib_p = pci_p->pci_ib_p;
942 imregp = (uint64_t *)ib_intr_map_reg_addr(ib_p, ino);
943 idregp = IB_INO_INTR_STATE_REG(ib_p, ino);
997 ib_log_new_cpu(ib_p, old_cpu_id, cpu_id, ino);
1021 ib_t *ib_p, uint32_t ino, uint8_t *devs_ret, pcitool_intr_dev_t *devs)
1029 mutex_enter(&ib_p->ib_ino_lst_mutex);
1030 ino_p = ib_locate_ino(ib_p, ino);
1050 mutex_exit(&ib_p->ib_ino_lst_mutex);
1055 void ib_log_new_cpu(ib_t *ib_p, uint32_t old_cpu_id, uint32_t new_cpu_id,
1063 mutex_enter(&ib_p->ib_ino_lst_mutex);
1066 ino_p = ib_locate_ino(ib_p, ino);
1081 ib_cpu_ticks_to_ih_nsec(ib_p,
1087 mutex_exit(&ib_p->ib_ino_lst_mutex);