/titanic_44/usr/src/uts/sun4u/io/pci/ |
H A D | pci_ib.c | 55 ib_t *ib_p; in ib_create() local 63 ib_p = kmem_zalloc(sizeof (ib_t), KM_SLEEP); in ib_create() 64 pci_p->pci_ib_p = ib_p; in ib_create() 65 ib_p->ib_pci_p = pci_p; in ib_create() 67 a = pci_ib_setup(ib_p); in ib_create() 73 ib_p->ib_slot_clear_intr_regs = in ib_create() 75 ib_p->ib_intr_retry_timer_reg = in ib_create() 77 ib_p->ib_slot_intr_state_diag_reg = in ib_create() 79 ib_p->ib_obio_intr_state_diag_reg = in ib_create() 83 ib_p->ib_upa_imr[0] = (volatile uint64_t *) in ib_create() [all …]
|
H A D | pci_intr.c | 410 ib_t *ib_p = ino_p->ino_ib_p; in pci_ks_update() local 411 pci_t *pci_p = ib_p->ib_pci_p; in pci_ks_update() 437 IB_INO_TO_MONDO(ib_p, ino); in pci_ks_update() 455 ib_t *ib_p = pci_p->pci_ib_p; in pci_add_intr() local 471 if (ino > ib_p->ib_max_ino) { in pci_add_intr() 478 map_reg_addr = ib_intr_map_reg_addr(ib_p, ino); in pci_add_intr() 480 mondo = pci_xlate_intr(dip, rdip, ib_p, ino); in pci_add_intr() 497 mutex_enter(&ib_p->ib_intr_lock); in pci_add_intr() 500 mutex_exit(&ib_p->ib_intr_lock); in pci_add_intr() 510 mutex_enter(&ib_p->ib_ino_lst_mutex); in pci_add_intr() [all …]
|
H A D | pci_pbm.c | 183 ib_t *ib_p = pci_p->pci_ib_p; in pbm_destroy() local 201 ib_intr_disable(ib_p, pci_p->pci_inos[CBNINTR_PBM], IB_INTR_WAIT); in pbm_destroy() 304 ib_t *ib_p = pci_p->pci_ib_p; in pbm_intr_dist() local 307 mutex_enter(&ib_p->ib_intr_lock); in pbm_intr_dist() 308 ib_intr_dist_nintr(ib_p, ino, ib_intr_map_reg_addr(ib_p, ino)); in pbm_intr_dist() 310 mutex_exit(&ib_p->ib_intr_lock); in pbm_intr_dist()
|
H A D | pcipsy.c | 419 ib_intr_map_reg_addr(ib_t *ib_p, ib_ino_t ino) in ib_intr_map_reg_addr() argument 424 addr = (uint64_t *)(ib_p->ib_obio_intr_map_regs + in ib_intr_map_reg_addr() 427 addr = (uint64_t *)(ib_p->ib_slot_intr_map_regs + in ib_intr_map_reg_addr() 433 ib_clear_intr_reg_addr(ib_t *ib_p, ib_ino_t ino) in ib_clear_intr_reg_addr() argument 438 addr = (uint64_t *)(ib_p->ib_obio_clear_intr_regs + in ib_clear_intr_reg_addr() 441 addr = (uint64_t *)(ib_p->ib_slot_clear_intr_regs + in ib_clear_intr_reg_addr() 450 ib_ino_map_reg_share(ib_t *ib_p, ib_ino_t ino, ib_ino_info_t *ino_p) in ib_ino_map_reg_share() argument 454 ib_p->ib_map_reg_counters[ino_p->ino_slot_no]++; in ib_ino_map_reg_share() 463 ib_ino_map_reg_unshare(ib_t *ib_p, ib_ino_t ino, ib_ino_info_t *ino_p) in ib_ino_map_reg_unshare() argument 470 return (--ib_p->ib_map_reg_counters[ino_p->ino_slot_no]); in ib_ino_map_reg_unshare() [all …]
|
H A D | pcisch.c | 578 ib_intr_map_reg_addr(ib_t *ib_p, ib_ino_t ino) in ib_intr_map_reg_addr() argument 584 return ((uint64_t *)(ib_p->ib_intr_map_regs) + (ino & 0x3f)); in ib_intr_map_reg_addr() 588 ib_clear_intr_reg_addr(ib_t *ib_p, ib_ino_t ino) /* XXX - needs work */ in ib_clear_intr_reg_addr() argument 594 return ((uint64_t *)(ib_p->ib_slot_clear_intr_regs) + (ino & 0x3f)); in ib_clear_intr_reg_addr() 603 ib_ino_map_reg_share(ib_t *ib_p, ib_ino_t ino, ib_ino_info_t *ino_p) in ib_ino_map_reg_share() argument 612 ib_ino_map_reg_unshare(ib_t *ib_p, ib_ino_t ino, ib_ino_info_t *ino_p) in ib_ino_map_reg_unshare() argument 621 ib_t *ib_p = pci_p->pci_ib_p; in pci_pbm_intr_dist() local 625 ib_intr_dist_nintr(ib_p, ino, ib_intr_map_reg_addr(ib_p, ino)); in pci_pbm_intr_dist() 630 pci_xlate_intr(dev_info_t *dip, dev_info_t *rdip, ib_t *ib_p, uint32_t intr) in pci_xlate_intr() argument 632 return (IB_INO_TO_MONDO(ib_p, intr)); in pci_xlate_intr() [all …]
|
H A D | pci_tools.c | 296 ib_t *ib_p = pci_p->pci_ib_p; in pcitool_get_intr() local 356 imregp = ib_intr_map_reg_addr(ib_p, ino); in pcitool_get_intr() 369 ib_p, ino, &iget->num_devs_ret, iget->dev); in pcitool_get_intr() 414 ib_t *ib_p = pci_p->pci_ib_p; in pcitool_set_intr() local 458 (ib_get_ino_devs(ib_p, iset.ino, &zero, NULL) == 0)) { in pcitool_set_intr() 464 imregp = (uint64_t *)ib_intr_map_reg_addr(ib_p, iset.ino); in pcitool_set_intr()
|
/titanic_44/usr/src/uts/sun4/io/px/ |
H A D | px_ib.c | 44 static void px_ib_cpu_ticks_to_ih_nsec(px_ib_t *ib_p, px_ih_t *ih_p, 56 px_ib_t *ib_p; in px_ib_attach() local 70 ib_p = kmem_zalloc(sizeof (px_ib_t), KM_SLEEP); in px_ib_attach() 71 px_p->px_ib_p = ib_p; in px_ib_attach() 72 ib_p->ib_px_p = px_p; in px_ib_attach() 73 ib_p->ib_ino_lst = (px_ino_t *)NULL; in px_ib_attach() 75 mutex_init(&ib_p->ib_intr_lock, NULL, MUTEX_DRIVER, NULL); in px_ib_attach() 76 mutex_init(&ib_p->ib_ino_lst_mutex, NULL, MUTEX_DRIVER, NULL); in px_ib_attach() 78 bus_func_register(BF_TYPE_RESINTR, px_ib_intr_reset, ib_p); in px_ib_attach() 80 intr_dist_add_weighted(px_ib_intr_redist, ib_p); in px_ib_attach() [all …]
|
H A D | px_msiq.c | 51 px_ib_t *ib_p = px_p->px_ib_p; in px_msiq_attach() local 52 px_msiq_state_t *msiq_state_p = &ib_p->ib_msiq_state; in px_msiq_attach() 83 mutex_enter(&ib_p->ib_ino_lst_mutex); in px_msiq_attach() 89 (void) px_ib_alloc_ino(ib_p, px_msiqid_to_devino(px_p, in px_msiq_attach() 94 mutex_exit(&ib_p->ib_ino_lst_mutex); in px_msiq_attach() 148 px_ib_t *ib_p = px_p->px_ib_p; in px_msiq_alloc() local 149 px_msiq_state_t *msiq_state_p = &ib_p->ib_msiq_state; in px_msiq_alloc() 157 ASSERT(MUTEX_HELD(&ib_p->ib_ino_lst_mutex)); in px_msiq_alloc() 228 px_ib_t *ib_p = px_p->px_ib_p; in px_msiq_alloc_based_on_cpuid() local 229 px_msiq_state_t *msiq_state_p = &ib_p->ib_msiq_state; in px_msiq_alloc_based_on_cpuid() [all …]
|
H A D | px_ib.h | 134 extern void px_ib_intr_disable(px_ib_t *ib_p, devino_t ino, int wait); 139 extern px_ino_t *px_ib_locate_ino(px_ib_t *ib_p, devino_t ino_num); 140 extern void px_ib_free_ino_all(px_ib_t *ib_p); 143 extern px_ino_t *px_ib_alloc_ino(px_ib_t *ib_p, devino_t ino_num); 144 extern px_ino_pil_t *px_ib_new_ino_pil(px_ib_t *ib_p, devino_t ino_num, 146 extern void px_ib_delete_ino_pil(px_ib_t *ib_p, px_ino_pil_t *ipil_p); 168 extern void px_ib_log_new_cpu(px_ib_t *ib_p, cpuid_t old_cpu_id,
|
H A D | px_intr.c | 945 px_ib_t *ib_p = px_p->px_ib_p; in px_add_intx_intr() local 964 mutex_enter(&ib_p->ib_ino_lst_mutex); in px_add_intx_intr() 966 ino_p = px_ib_locate_ino(ib_p, ino); in px_add_intx_intr() 1018 ipil_p = px_ib_new_ino_pil(ib_p, ino, hdlp->ih_pri, ih_p); in px_add_intx_intr() 1068 mutex_exit(&ib_p->ib_ino_lst_mutex); in px_add_intx_intr() 1075 px_ib_delete_ino_pil(ib_p, ipil_p); in px_add_intx_intr() 1080 mutex_exit(&ib_p->ib_ino_lst_mutex); in px_add_intx_intr() 1100 px_ib_t *ib_p = px_p->px_ib_p; in px_rem_intx_intr() local 1113 mutex_enter(&ib_p->ib_ino_lst_mutex); in px_rem_intx_intr() 1115 ino_p = px_ib_locate_ino(ib_p, ino); in px_rem_intx_intr() [all …]
|
/titanic_44/usr/src/uts/sun4u/sys/pci/ |
H A D | pci_ib.h | 161 #define IB2CB(ib_p) ((ib_p)->ib_pci_p->pci_cb_p) argument 167 #define IB_INO_INTR_STATE_REG(ib_p, ino) ((ino) & 0x20 ? \ argument 168 ib_p->ib_obio_intr_state_diag_reg : ib_p->ib_slot_intr_state_diag_reg) 193 #define IB_INO_TO_MONDO(ib_p, ino) IB_IGN_TO_MONDO((ib_p)->ib_ign, ino) argument 197 extern void ib_configure(ib_t *ib_p); 200 extern void ib_intr_disable(ib_t *ib_p, ib_ino_t ino, int wait); 201 extern void ib_nintr_clear(ib_t *ib_p, ib_ino_t ino); 202 extern void ib_suspend(ib_t *ib_p); 203 extern void ib_resume(ib_t *ib_p); 205 extern ib_ino_info_t *ib_locate_ino(ib_t *ib_p, ib_ino_t ino_num); [all …]
|
H A D | pci_chip.h | 58 extern uint64_t *ib_intr_map_reg_addr(ib_t *ib_p, ib_ino_t ino); 59 extern uint64_t *ib_clear_intr_reg_addr(ib_t *ib_p, ib_ino_t ino); 71 ib_t *ib_p, uint32_t intr); 72 extern uint32_t pci_intr_dist_cpuid(ib_t *ib_p, ib_ino_info_t *ino_p); 94 extern uintptr_t pci_ib_setup(ib_t *ib_p);
|
H A D | pcisch.h | 551 #define NBIGN(ib_p) ((ib_p)->ib_ign ^ 1) argument 552 #define IB_INO_TO_NBMONDO(ib_p, ino) IB_IGN_TO_MONDO(NBIGN(ib_p), ino) argument
|
/titanic_44/usr/src/uts/sun4u/io/px/ |
H A D | px_lib4u.c | 2378 px_ib_t *ib_p = px_p->px_ib_p; in px_cpr_callb() local 2417 px_ib_intr_disable(ib_p, ce_ino, IB_INTR_NOWAIT); in px_cpr_callb() 2420 px_ib_intr_disable(ib_p, nf_ino, IB_INTR_NOWAIT); in px_cpr_callb() 2423 px_ib_intr_disable(ib_p, f_ino, IB_INTR_NOWAIT); in px_cpr_callb() 2429 mutex_enter(&ib_p->ib_ino_lst_mutex); in px_cpr_callb() 2431 ce_ino_p = px_ib_locate_ino(ib_p, ce_ino); in px_cpr_callb() 2432 nf_ino_p = px_ib_locate_ino(ib_p, nf_ino); in px_cpr_callb() 2433 f_ino_p = px_ib_locate_ino(ib_p, f_ino); in px_cpr_callb() 2456 mutex_exit(&ib_p->ib_ino_lst_mutex); in px_cpr_callb()
|
/titanic_44/usr/src/uts/sun4v/io/px/ |
H A D | px_lib4v.c | 408 px_ib_t *ib_p = px_p->px_ib_p; in px_lib_intr_reset() local 413 mutex_enter(&ib_p->ib_ino_lst_mutex); in px_lib_intr_reset() 416 for (ino_p = ib_p->ib_ino_lst; ino_p; ino_p = ino_p->ino_next_p) { in px_lib_intr_reset() 422 mutex_exit(&ib_p->ib_ino_lst_mutex); in px_lib_intr_reset()
|