Lines Matching refs:hdlp

160 pci_get_priority(dev_info_t *dip, ddi_intr_handle_impl_t *hdlp, int *pri)  in pci_get_priority()  argument
165 (void *)dip, (void *)hdlp)); in pci_get_priority()
168 hdlp->ih_inum)) == NULL) { in pci_get_priority()
169 if (DDI_INTR_IS_MSI_OR_MSIX(hdlp->ih_type)) { in pci_get_priority()
171 pci_common_set_parent_private_data(hdlp->ih_dip); in pci_get_priority()
173 hdlp->ih_inum); in pci_get_priority()
192 ddi_intr_handle_impl_t *hdlp, void *result) in pci_common_intr_ops() argument
217 (void *)pdip, (void *)rdip, intr_op, (void *)hdlp)); in pci_common_intr_ops()
300 if (DDI_INTR_IS_MSI_OR_MSIX(hdlp->ih_type)) { in pci_common_intr_ops()
301 if (pci_msi_get_nintrs(hdlp->ih_dip, hdlp->ih_type, in pci_common_intr_ops()
305 *(int *)result = i_ddi_get_intx_nintrs(hdlp->ih_dip); in pci_common_intr_ops()
315 if (hdlp->ih_type == DDI_INTR_TYPE_FIXED) in pci_common_intr_ops()
316 return (pci_alloc_intr_fixed(pdip, rdip, hdlp, result)); in pci_common_intr_ops()
320 if (DDI_INTR_IS_MSI_OR_MSIX(hdlp->ih_type) && in pci_common_intr_ops()
322 (pci_get_priority(rdip, hdlp, &priority) == DDI_SUCCESS)) { in pci_common_intr_ops()
329 hdlp->ih_pri = in pci_common_intr_ops()
333 hdlp->ih_pri = priority; in pci_common_intr_ops()
334 behavior = (int)(uintptr_t)hdlp->ih_scratch2; in pci_common_intr_ops()
348 if (hdlp->ih_type == DDI_INTR_TYPE_MSI) in pci_common_intr_ops()
350 else if (hdlp->ih_type == DDI_INTR_TYPE_MSIX) in pci_common_intr_ops()
373 (void) (*psm_intr_ops)(rdip, hdlp, in pci_common_intr_ops()
381 (*(int *)result < hdlp->ih_scratch1)) { in pci_common_intr_ops()
385 hdlp->ih_scratch1 = *(int *)result; in pci_common_intr_ops()
386 (void) (*psm_intr_ops)(rdip, hdlp, in pci_common_intr_ops()
391 if (hdlp->ih_type == DDI_INTR_TYPE_MSIX) { in pci_common_intr_ops()
392 if (!(msix_p = i_ddi_get_msix(hdlp->ih_dip))) { in pci_common_intr_ops()
393 msix_p = pci_msix_init(hdlp->ih_dip); in pci_common_intr_ops()
395 i_ddi_set_msix(hdlp->ih_dip, in pci_common_intr_ops()
403 hdlp->ih_inum)); in pci_common_intr_ops()
406 hdlp, in pci_common_intr_ops()
418 (int)hdlp->ih_inum); in pci_common_intr_ops()
421 ispec->intrspec_pri = hdlp->ih_pri; in pci_common_intr_ops()
429 if (DDI_INTR_IS_MSI_OR_MSIX(hdlp->ih_type) && in pci_common_intr_ops()
431 if (i_ddi_intr_get_current_nintrs(hdlp->ih_dip) - 1 == in pci_common_intr_ops()
442 (void) (*psm_intr_ops)(rdip, hdlp, in pci_common_intr_ops()
445 if (hdlp->ih_type == DDI_INTR_TYPE_MSIX) { in pci_common_intr_ops()
446 msix_p = i_ddi_get_msix(hdlp->ih_dip); in pci_common_intr_ops()
449 hdlp->ih_dip) - 1) == 0) { in pci_common_intr_ops()
451 i_ddi_set_msix(hdlp->ih_dip, NULL); in pci_common_intr_ops()
454 } else if (hdlp->ih_type == DDI_INTR_TYPE_FIXED) { in pci_common_intr_ops()
455 return (pci_free_intr_fixed(pdip, rdip, hdlp)); in pci_common_intr_ops()
461 if (pci_get_priority(rdip, hdlp, &priority) != DDI_SUCCESS) in pci_common_intr_ops()
476 isp = pci_intx_get_ispec(pdip, rdip, (int)hdlp->ih_inum); in pci_common_intr_ops()
482 if (hdlp->ih_type == DDI_INTR_TYPE_FIXED) { in pci_common_intr_ops()
484 ((ihdl_plat_t *)hdlp->ih_private)->ip_ispecp = ispec; in pci_common_intr_ops()
485 psm_rval = (*psm_intr_ops)(rdip, hdlp, in pci_common_intr_ops()
504 if ((*psm_intr_ops)(rdip, hdlp, PSM_INTR_OP_SET_PRI, result) == in pci_common_intr_ops()
513 isp = pci_intx_get_ispec(pdip, rdip, (int)hdlp->ih_inum); in pci_common_intr_ops()
516 ispec->intrspec_func = hdlp->ih_cb_func; in pci_common_intr_ops()
517 ihdl_plat_datap = (ihdl_plat_t *)hdlp->ih_private; in pci_common_intr_ops()
518 pci_kstat_create(&ihdl_plat_datap->ip_ksp, pdip, hdlp); in pci_common_intr_ops()
523 isp = pci_intx_get_ispec(pdip, rdip, (int)hdlp->ih_inum); in pci_common_intr_ops()
527 ihdl_plat_datap = (ihdl_plat_t *)hdlp->ih_private; in pci_common_intr_ops()
538 if (DDI_INTR_IS_MSI_OR_MSIX(hdlp->ih_type)) in pci_common_intr_ops()
539 pci_rval = pci_msi_get_cap(rdip, hdlp->ih_type, in pci_common_intr_ops()
541 else if (hdlp->ih_type == DDI_INTR_TYPE_FIXED) in pci_common_intr_ops()
546 psm_rval = (*psm_intr_ops)(rdip, hdlp, in pci_common_intr_ops()
573 if ((*psm_intr_ops)(rdip, hdlp, PSM_INTR_OP_SET_CAP, result)) { in pci_common_intr_ops()
584 if (pci_enable_intr(pdip, rdip, hdlp, hdlp->ih_inum) != in pci_common_intr_ops()
589 "vector=0x%x\n", hdlp->ih_vector)); in pci_common_intr_ops()
596 pci_disable_intr(pdip, rdip, hdlp, hdlp->ih_inum); in pci_common_intr_ops()
598 "vector = %x\n", hdlp->ih_vector)); in pci_common_intr_ops()
603 if (hdlp->ih_type != DDI_INTR_TYPE_MSI) { in pci_common_intr_ops()
612 count = hdlp->ih_scratch1; in pci_common_intr_ops()
613 h_array = (ddi_intr_handle_t *)hdlp->ih_scratch2; in pci_common_intr_ops()
615 hdlp = (ddi_intr_handle_impl_t *)h_array[i]; in pci_common_intr_ops()
616 if (pci_enable_intr(pdip, rdip, hdlp, in pci_common_intr_ops()
617 hdlp->ih_inum) != DDI_SUCCESS) { in pci_common_intr_ops()
621 hdlp = (ddi_intr_handle_impl_t *) in pci_common_intr_ops()
623 pci_disable_intr(pdip, rdip, hdlp, in pci_common_intr_ops()
624 hdlp->ih_inum); in pci_common_intr_ops()
629 "BLOCKENABLE inum %x done\n", hdlp->ih_inum)); in pci_common_intr_ops()
635 if (hdlp->ih_type != DDI_INTR_TYPE_MSI) { in pci_common_intr_ops()
644 count = hdlp->ih_scratch1; in pci_common_intr_ops()
645 h_array = (ddi_intr_handle_t *)hdlp->ih_scratch2; in pci_common_intr_ops()
647 hdlp = (ddi_intr_handle_impl_t *)h_array[i]; in pci_common_intr_ops()
648 pci_disable_intr(pdip, rdip, hdlp, hdlp->ih_inum); in pci_common_intr_ops()
650 "BLOCKDISABLE inum %x done\n", hdlp->ih_inum)); in pci_common_intr_ops()
659 if (DDI_INTR_IS_MSI_OR_MSIX(hdlp->ih_type)) in pci_common_intr_ops()
661 hdlp->ih_type, hdlp->ih_inum); in pci_common_intr_ops()
662 else if (hdlp->ih_type == DDI_INTR_TYPE_FIXED) in pci_common_intr_ops()
665 if (DDI_INTR_IS_MSI_OR_MSIX(hdlp->ih_type)) in pci_common_intr_ops()
667 hdlp->ih_type, hdlp->ih_inum); in pci_common_intr_ops()
668 else if (hdlp->ih_type == DDI_INTR_TYPE_FIXED) in pci_common_intr_ops()
673 if (hdlp->ih_type != DDI_INTR_TYPE_FIXED) in pci_common_intr_ops()
677 if (hdlp->ih_type == DDI_INTR_TYPE_FIXED && in pci_common_intr_ops()
684 psm_rval = (*psm_intr_ops)(rdip, hdlp, in pci_common_intr_ops()
692 psm_rval = (*psm_intr_ops)(rdip, hdlp, in pci_common_intr_ops()
695 psm_rval = (*psm_intr_ops)(rdip, hdlp, in pci_common_intr_ops()
705 if (DDI_INTR_IS_MSI_OR_MSIX(hdlp->ih_type)) in pci_common_intr_ops()
706 pci_rval = pci_msi_get_pending(rdip, hdlp->ih_type, in pci_common_intr_ops()
707 hdlp->ih_inum, &pci_status); in pci_common_intr_ops()
708 else if (hdlp->ih_type == DDI_INTR_TYPE_FIXED) in pci_common_intr_ops()
713 psm_rval = (*psm_intr_ops)(rdip, hdlp, in pci_common_intr_ops()
735 bcopy(hdlp, &tmp_hdl, sizeof (ddi_intr_handle_impl_t)); in pci_common_intr_ops()
746 "vector = 0x%x, cpu = 0x%x\n", hdlp->ih_vector, in pci_common_intr_ops()
752 bcopy(hdlp, &tmp_hdl, sizeof (ddi_intr_handle_impl_t)); in pci_common_intr_ops()
760 hdlp->ih_vector = tmp_hdl.ih_vector; in pci_common_intr_ops()
762 "vector = 0x%x\n", hdlp->ih_vector)); in pci_common_intr_ops()
768 if (apix_irm_pool_p && DDI_INTR_IS_MSI_OR_MSIX(hdlp->ih_type)) { in pci_common_intr_ops()
774 return (i_ddi_intr_ops(pdip, rdip, intr_op, hdlp, result)); in pci_common_intr_ops()
785 ddi_intr_handle_impl_t *hdlp, void *result) in pci_alloc_intr_fixed() argument
801 hdlp->ih_cap |= pci_status; in pci_alloc_intr_fixed()
812 (int)hdlp->ih_inum); in pci_alloc_intr_fixed()
815 if (hdlp->ih_private == NULL) { /* allocate phdl structure */ in pci_alloc_intr_fixed()
817 i_ddi_alloc_intr_phdl(hdlp); in pci_alloc_intr_fixed()
819 ((ihdl_plat_t *)hdlp->ih_private)->ip_ispecp = ispec; in pci_alloc_intr_fixed()
820 ret = (*psm_intr_ops)(rdip, hdlp, in pci_alloc_intr_fixed()
824 i_ddi_free_intr_phdl(hdlp); in pci_alloc_intr_fixed()
825 hdlp->ih_private = NULL; in pci_alloc_intr_fixed()
844 ddi_intr_handle_impl_t *hdlp) in pci_free_intr_fixed() argument
863 (int)hdlp->ih_inum); in pci_free_intr_fixed()
866 ((ihdl_plat_t *)hdlp->ih_private)->ip_ispecp = ispec; in pci_free_intr_fixed()
867 ret = (*psm_intr_ops)(rdip, hdlp, in pci_free_intr_fixed()
924 ddi_intr_handle_impl_t *hdlp, uint32_t inum) in pci_enable_intr() argument
928 ihdl_plat_t *ihdl_plat_datap = (ihdl_plat_t *)hdlp->ih_private; in pci_enable_intr()
931 (void *)hdlp, inum)); in pci_enable_intr()
937 if (DDI_INTR_IS_MSI_OR_MSIX(hdlp->ih_type)) { in pci_enable_intr()
939 ispec->intrspec_pri = hdlp->ih_pri; in pci_enable_intr()
944 if ((*psm_intr_ops)(rdip, hdlp, PSM_INTR_OP_XLATE_VECTOR, &irq) == in pci_enable_intr()
948 hdlp->ih_pri, irq)); in pci_enable_intr()
951 if (!add_avintr((void *)hdlp, hdlp->ih_pri, hdlp->ih_cb_func, in pci_enable_intr()
952 DEVI(rdip)->devi_name, irq, hdlp->ih_cb_arg1, in pci_enable_intr()
953 hdlp->ih_cb_arg2, &ihdl_plat_datap->ip_ticks, rdip)) in pci_enable_intr()
956 hdlp->ih_vector = irq; in pci_enable_intr()
964 ddi_intr_handle_impl_t *hdlp, uint32_t inum) in pci_disable_intr() argument
968 ihdl_plat_t *ihdl_plat_datap = (ihdl_plat_t *)hdlp->ih_private; in pci_disable_intr()
974 if (DDI_INTR_IS_MSI_OR_MSIX(hdlp->ih_type)) { in pci_disable_intr()
976 ispec->intrspec_pri = hdlp->ih_pri; in pci_disable_intr()
981 (void) (*psm_intr_ops)(rdip, hdlp, PSM_INTR_OP_XLATE_VECTOR, &irq); in pci_disable_intr()
984 rem_avintr((void *)hdlp, hdlp->ih_pri, hdlp->ih_cb_func, irq); in pci_disable_intr()
1135 ddi_acc_hdl_t *hdlp = (ddi_acc_hdl_t *)in_args->handle; in pci_common_ctlops_poke() local
1174 if (hdlp->ah_acc.devacc_attr_endian_flags == in pci_common_ctlops_poke()
1233 if (hdlp->ah_acc.devacc_attr_endian_flags == in pci_common_ctlops_poke()
1353 ddi_acc_hdl_t *hdlp = (ddi_acc_hdl_t *)in_args->handle; in pci_common_ctlops_peek() local
1389 if (hdlp->ah_acc.devacc_attr_endian_flags == in pci_common_ctlops_peek()
1448 if (hdlp->ah_acc.devacc_attr_endian_flags == in pci_common_ctlops_peek()
1528 pci_config_rd8(ddi_acc_impl_t *hdlp, uint8_t *addr) in pci_config_rd8() argument
1538 cfp = (pci_acc_cfblk_t *)&hdlp->ahi_common.ah_bus_private; in pci_config_rd8()
1547 pci_config_rep_rd8(ddi_acc_impl_t *hdlp, uint8_t *host_addr, in pci_config_rep_rd8() argument
1557 *h++ = pci_config_rd8(hdlp, d++); in pci_config_rep_rd8()
1560 *h++ = pci_config_rd8(hdlp, d); in pci_config_rep_rd8()
1564 pci_config_rd16(ddi_acc_impl_t *hdlp, uint16_t *addr) in pci_config_rd16() argument
1574 cfp = (pci_acc_cfblk_t *)&hdlp->ahi_common.ah_bus_private; in pci_config_rd16()
1583 pci_config_rep_rd16(ddi_acc_impl_t *hdlp, uint16_t *host_addr, in pci_config_rep_rd16() argument
1593 *h++ = pci_config_rd16(hdlp, d++); in pci_config_rep_rd16()
1596 *h++ = pci_config_rd16(hdlp, d); in pci_config_rep_rd16()
1600 pci_config_rd32(ddi_acc_impl_t *hdlp, uint32_t *addr) in pci_config_rd32() argument
1610 cfp = (pci_acc_cfblk_t *)&hdlp->ahi_common.ah_bus_private; in pci_config_rd32()
1619 pci_config_rep_rd32(ddi_acc_impl_t *hdlp, uint32_t *host_addr, in pci_config_rep_rd32() argument
1629 *h++ = pci_config_rd32(hdlp, d++); in pci_config_rep_rd32()
1632 *h++ = pci_config_rd32(hdlp, d); in pci_config_rep_rd32()
1637 pci_config_wr8(ddi_acc_impl_t *hdlp, uint8_t *addr, uint8_t value) in pci_config_wr8() argument
1646 cfp = (pci_acc_cfblk_t *)&hdlp->ahi_common.ah_bus_private; in pci_config_wr8()
1653 pci_config_rep_wr8(ddi_acc_impl_t *hdlp, uint8_t *host_addr, in pci_config_rep_wr8() argument
1663 pci_config_wr8(hdlp, d++, *h++); in pci_config_rep_wr8()
1666 pci_config_wr8(hdlp, d, *h++); in pci_config_rep_wr8()
1670 pci_config_wr16(ddi_acc_impl_t *hdlp, uint16_t *addr, uint16_t value) in pci_config_wr16() argument
1679 cfp = (pci_acc_cfblk_t *)&hdlp->ahi_common.ah_bus_private; in pci_config_wr16()
1686 pci_config_rep_wr16(ddi_acc_impl_t *hdlp, uint16_t *host_addr, in pci_config_rep_wr16() argument
1696 pci_config_wr16(hdlp, d++, *h++); in pci_config_rep_wr16()
1699 pci_config_wr16(hdlp, d, *h++); in pci_config_rep_wr16()
1703 pci_config_wr32(ddi_acc_impl_t *hdlp, uint32_t *addr, uint32_t value) in pci_config_wr32() argument
1712 cfp = (pci_acc_cfblk_t *)&hdlp->ahi_common.ah_bus_private; in pci_config_wr32()
1719 pci_config_rep_wr32(ddi_acc_impl_t *hdlp, uint32_t *host_addr, in pci_config_rep_wr32() argument
1729 pci_config_wr32(hdlp, d++, *h++); in pci_config_rep_wr32()
1732 pci_config_wr32(hdlp, d, *h++); in pci_config_rep_wr32()
1736 pci_config_rd64(ddi_acc_impl_t *hdlp, uint64_t *addr) in pci_config_rd64() argument
1744 lw_val = pci_config_rd32(hdlp, dp); in pci_config_rd64()
1746 hi_val = pci_config_rd32(hdlp, dp); in pci_config_rd64()
1752 pci_config_wr64(ddi_acc_impl_t *hdlp, uint64_t *addr, uint64_t value) in pci_config_wr64() argument
1761 pci_config_wr32(hdlp, dp, lw_val); in pci_config_wr64()
1763 pci_config_wr32(hdlp, dp, hi_val); in pci_config_wr64()
1767 pci_config_rep_rd64(ddi_acc_impl_t *hdlp, uint64_t *host_addr, in pci_config_rep_rd64() argument
1772 *host_addr++ = pci_config_rd64(hdlp, dev_addr++); in pci_config_rep_rd64()
1775 *host_addr++ = pci_config_rd64(hdlp, dev_addr); in pci_config_rep_rd64()
1780 pci_config_rep_wr64(ddi_acc_impl_t *hdlp, uint64_t *host_addr, in pci_config_rep_wr64() argument
1785 pci_config_wr64(hdlp, host_addr++, *dev_addr++); in pci_config_rep_wr64()
1788 pci_config_wr64(hdlp, host_addr++, *dev_addr); in pci_config_rep_wr64()