Lines Matching refs:lldev

217 	xgelldev_t *lldev = xge_hal_device_private(hldev);  in xge_isr()  local
219 if (!lldev->is_initialized) { in xge_isr()
238 xgelldev_t *lldev = xge_hal_device_private(channel->devh); in xge_fifo_msix_isr() local
240 if (!lldev->is_initialized) { in xge_fifo_msix_isr()
257 xgelldev_t *lldev = xge_hal_device_private(channel->devh); in xge_ring_msix_isr() local
259 if (!lldev->is_initialized) { in xge_ring_msix_isr()
764 xge_alloc_intrs(xgelldev_t *lldev) in xge_alloc_intrs() argument
766 dev_info_t *dip = lldev->dev_info; in xge_alloc_intrs()
770 if (lldev->intr_type == DDI_INTR_TYPE_MSIX) { in xge_alloc_intrs()
779 ret = ddi_intr_get_nintrs(dip, lldev->intr_type, &count); in xge_alloc_intrs()
788 ret = ddi_intr_get_navail(dip, lldev->intr_type, &avail); in xge_alloc_intrs()
796 if (avail < lldev->intr_cnt) { in xge_alloc_intrs()
798 "%d available", lldev->intr_cnt, avail); in xge_alloc_intrs()
803 lldev->intr_table_size = lldev->intr_cnt * sizeof (ddi_intr_handle_t); in xge_alloc_intrs()
804 lldev->intr_table = kmem_alloc(lldev->intr_table_size, KM_SLEEP); in xge_alloc_intrs()
807 ret = ddi_intr_alloc(dip, lldev->intr_table, lldev->intr_type, 0, in xge_alloc_intrs()
808 lldev->intr_cnt, &actual, intr_behavior); in xge_alloc_intrs()
815 lldev->intr_type == DDI_INTR_TYPE_MSIX ? "MSI-X" : in xge_alloc_intrs()
818 if (lldev->intr_cnt != actual) { in xge_alloc_intrs()
826 if ((ret = ddi_intr_get_pri(lldev->intr_table[0], &lldev->intr_pri)) != in xge_alloc_intrs()
837 (void) ddi_intr_free(lldev->intr_table[i]); in xge_alloc_intrs()
840 kmem_free(lldev->intr_table, lldev->intr_table_size); in xge_alloc_intrs()
841 lldev->intr_table = NULL; in xge_alloc_intrs()
843 if (lldev->intr_type == DDI_INTR_TYPE_MSIX) in xge_alloc_intrs()
854 xge_free_intrs(xgelldev_t *lldev) in xge_free_intrs() argument
857 dev_info_t *dip = lldev->dev_info; in xge_free_intrs()
860 for (i = 0; i < lldev->intr_cnt; i++) { in xge_free_intrs()
861 (void) ddi_intr_free(lldev->intr_table[i]); in xge_free_intrs()
863 kmem_free(lldev->intr_table, lldev->intr_table_size); in xge_free_intrs()
864 lldev->intr_table = NULL; in xge_free_intrs()
866 if (lldev->intr_type == DDI_INTR_TYPE_MSIX) in xge_free_intrs()
876 xge_add_intrs(xgelldev_t *lldev) in xge_add_intrs() argument
879 xge_hal_device_t *hldev = lldev->devh; in xge_add_intrs()
888 xge_assert(lldev->intr_table != NULL); in xge_add_intrs()
889 switch (lldev->intr_type) { in xge_add_intrs()
891 ret = ddi_intr_add_handler(lldev->intr_table[0], in xge_add_intrs()
919 for (i = 0; i < lldev->intr_cnt; i++) { in xge_add_intrs()
944 ret = ddi_intr_add_handler(lldev->intr_table[i], intr, in xge_add_intrs()
953 lldev->intr_table[j]); in xge_add_intrs()
966 ret = ddi_intr_get_cap(lldev->intr_table[0], &lldev->intr_cap); in xge_add_intrs()
969 for (i = 0; i < lldev->intr_cnt; i++) { in xge_add_intrs()
970 (void) ddi_intr_remove_handler(lldev->intr_table[i]); in xge_add_intrs()
984 xge_enable_intrs(xgelldev_t *lldev) in xge_enable_intrs() argument
988 if (lldev->intr_cap & DDI_INTR_FLAG_BLOCK) { in xge_enable_intrs()
990 if ((ret = ddi_intr_block_enable(lldev->intr_table, in xge_enable_intrs()
991 lldev->intr_cnt)) != DDI_SUCCESS) { in xge_enable_intrs()
998 for (i = 0; i < lldev->intr_cnt; i++) { in xge_enable_intrs()
999 if ((ret = ddi_intr_enable(lldev->intr_table[i])) in xge_enable_intrs()
1009 lldev->intr_table[j]); in xge_enable_intrs()
1026 xge_disable_intrs(xgelldev_t *lldev) in xge_disable_intrs() argument
1030 if (lldev->intr_cap & DDI_INTR_FLAG_BLOCK) { in xge_disable_intrs()
1032 (void) ddi_intr_block_disable(lldev->intr_table, in xge_disable_intrs()
1033 lldev->intr_cnt); in xge_disable_intrs()
1035 for (i = 0; i < lldev->intr_cnt; i++) { in xge_disable_intrs()
1036 (void) ddi_intr_disable(lldev->intr_table[i]); in xge_disable_intrs()
1047 xge_rem_intrs(xgelldev_t *lldev) in xge_rem_intrs() argument
1051 xge_assert(lldev->intr_table != NULL); in xge_rem_intrs()
1054 for (i = 0; i < lldev->intr_cnt; i++) { in xge_rem_intrs()
1055 (void) ddi_intr_remove_handler(lldev->intr_table[i]); in xge_rem_intrs()
1317 xgelldev_t *lldev = xge_hal_device_private(hldev); in xge_quiesce() local
1319 xge_hal_device_quiesce(hldev, lldev->devh); in xge_quiesce()
1340 xgelldev_t *lldev; in xge_detach() local
1346 lldev = xge_hal_device_private(hldev); in xge_detach()
1361 if (lldev->is_initialized) { in xge_detach()
1368 if (xgell_device_unregister(lldev) != DDI_SUCCESS) { in xge_detach()
1373 xge_rem_intrs(lldev); in xge_detach()
1374 xge_free_intrs(lldev); in xge_detach()
1375 xgell_device_free(lldev); in xge_detach()