Lines Matching defs:lldev

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