Lines Matching refs:state

94 static int tavor_rsrc_mbox_init(tavor_state_t *state,
96 static void tavor_rsrc_mbox_fini(tavor_state_t *state,
99 static int tavor_rsrc_hw_entries_init(tavor_state_t *state,
101 static void tavor_rsrc_hw_entries_fini(tavor_state_t *state,
104 static int tavor_rsrc_sw_handles_init(tavor_state_t *state,
106 static void tavor_rsrc_sw_handles_fini(tavor_state_t *state,
109 static int tavor_rsrc_pd_handles_init(tavor_state_t *state,
111 static void tavor_rsrc_pd_handles_fini(tavor_state_t *state,
147 static void tavor_rsrc_pdhdl_destructor(void *pd, void *state);
149 static void tavor_rsrc_cqhdl_destructor(void *cq, void *state);
151 static void tavor_rsrc_qphdl_destructor(void *cq, void *state);
153 static void tavor_rsrc_srqhdl_destructor(void *srq, void *state);
155 static void tavor_rsrc_refcnt_destructor(void *rc, void *state);
157 static void tavor_rsrc_ahhdl_destructor(void *ah, void *state);
159 static void tavor_rsrc_mrhdl_destructor(void *mr, void *state);
166 static int tavor_rsrc_mcg_entry_get_size(tavor_state_t *state,
178 tavor_rsrc_alloc(tavor_state_t *state, tavor_rsrc_type_t rsrc, uint_t num, in tavor_rsrc_alloc() argument
185 ASSERT(state != NULL); in tavor_rsrc_alloc()
188 rsrc_pool = &state->ts_rsrc_hdl[rsrc]; in tavor_rsrc_alloc()
195 tmp_rsrc_hdl = (tavor_rsrc_t *)kmem_cache_alloc(state->ts_rsrc_cache, in tavor_rsrc_alloc()
242 state->ts_reg_ddrhdl, sleepflag, tmp_rsrc_hdl); in tavor_rsrc_alloc()
268 state->ts_reg_ddrhdl, sleepflag, tmp_rsrc_hdl); in tavor_rsrc_alloc()
278 state->ts_reg_uarhdl, sleepflag, tmp_rsrc_hdl); in tavor_rsrc_alloc()
298 TAVOR_WARNING(state, "unexpected resource type in alloc"); in tavor_rsrc_alloc()
308 kmem_cache_free(state->ts_rsrc_cache, tmp_rsrc_hdl); in tavor_rsrc_alloc()
323 tavor_rsrc_free(tavor_state_t *state, tavor_rsrc_t **hdl) in tavor_rsrc_free() argument
327 ASSERT(state != NULL); in tavor_rsrc_free()
330 rsrc_pool = &state->ts_rsrc_hdl[(*hdl)->rsrc_type]; in tavor_rsrc_free()
372 TAVOR_WARNING(state, "unexpected resource type in free"); in tavor_rsrc_free()
380 kmem_cache_free(state->ts_rsrc_cache, *hdl); in tavor_rsrc_free()
403 tavor_rsrc_init_phase1(tavor_state_t *state) in tavor_rsrc_init_phase1() argument
413 ASSERT(state != NULL); in tavor_rsrc_init_phase1()
426 state->ts_rsrc_cache = kmem_cache_create(rsrc_name, in tavor_rsrc_init_phase1()
433 state->ts_rsrc_hdl = kmem_zalloc(TAVOR_NUM_RESOURCES * in tavor_rsrc_init_phase1()
436 cfgprof = state->ts_cfg_profile; in tavor_rsrc_init_phase1()
447 rsrc_pool = &state->ts_rsrc_hdl[TAVOR_OUT_MBOX]; in tavor_rsrc_init_phase1()
454 rsrc_pool->rsrc_state = state; in tavor_rsrc_init_phase1()
460 status = tavor_rsrc_mbox_init(state, &mbox_info); in tavor_rsrc_init_phase1()
462 tavor_rsrc_fini(state, cleanup); in tavor_rsrc_init_phase1()
474 status = tavor_outmbox_list_init(state); in tavor_rsrc_init_phase1()
476 tavor_rsrc_fini(state, cleanup); in tavor_rsrc_init_phase1()
490 rsrc_pool = &state->ts_rsrc_hdl[TAVOR_INTR_OUT_MBOX]; in tavor_rsrc_init_phase1()
497 rsrc_pool->rsrc_state = state; in tavor_rsrc_init_phase1()
503 status = tavor_rsrc_mbox_init(state, &mbox_info); in tavor_rsrc_init_phase1()
505 tavor_rsrc_fini(state, cleanup); in tavor_rsrc_init_phase1()
517 status = tavor_intr_outmbox_list_init(state); in tavor_rsrc_init_phase1()
519 tavor_rsrc_fini(state, cleanup); in tavor_rsrc_init_phase1()
538 tavor_rsrc_init_phase2(tavor_state_t *state) in tavor_rsrc_init_phase2() argument
553 ASSERT(state != NULL); in tavor_rsrc_init_phase2()
564 ddr_size = state->ts_ddr.ddr_endaddr - state->ts_ddr.ddr_baseaddr + 1; in tavor_rsrc_init_phase2()
565 fw_size = state->ts_fw.fw_endaddr - state->ts_fw.fw_baseaddr + 1; in tavor_rsrc_init_phase2()
577 state->ts_ddrvmem = vmem_create(rsrc_name, in tavor_rsrc_init_phase2()
578 (void *)(uintptr_t)state->ts_ddr.ddr_baseaddr, (ddr_size - fw_size), in tavor_rsrc_init_phase2()
580 if (state->ts_ddrvmem == NULL) { in tavor_rsrc_init_phase2()
581 tavor_rsrc_fini(state, cleanup); in tavor_rsrc_init_phase2()
591 cfgprof = state->ts_cfg_profile; in tavor_rsrc_init_phase2()
601 max = ((uint64_t)1 << state->ts_devlim.log_max_mpt); in tavor_rsrc_init_phase2()
602 num_prealloc = ((uint64_t)1 << state->ts_devlim.log_rsvd_mpt); in tavor_rsrc_init_phase2()
603 rsrc_pool = &state->ts_rsrc_hdl[TAVOR_MPT]; in tavor_rsrc_init_phase2()
610 rsrc_pool->rsrc_state = state; in tavor_rsrc_init_phase2()
618 status = tavor_rsrc_hw_entries_init(state, &entry_info); in tavor_rsrc_init_phase2()
620 tavor_rsrc_fini(state, cleanup); in tavor_rsrc_init_phase2()
634 max = ((uint64_t)1 << state->ts_devlim.log_max_mttseg); in tavor_rsrc_init_phase2()
635 num_prealloc = ((uint64_t)1 << state->ts_devlim.log_rsvd_mttseg); in tavor_rsrc_init_phase2()
636 rsrc_pool = &state->ts_rsrc_hdl[TAVOR_MTT]; in tavor_rsrc_init_phase2()
643 rsrc_pool->rsrc_state = state; in tavor_rsrc_init_phase2()
651 status = tavor_rsrc_hw_entries_init(state, &entry_info); in tavor_rsrc_init_phase2()
653 tavor_rsrc_fini(state, cleanup); in tavor_rsrc_init_phase2()
666 max = ((uint64_t)1 << state->ts_devlim.log_max_qp); in tavor_rsrc_init_phase2()
667 num_prealloc = ((uint64_t)1 << state->ts_devlim.log_rsvd_qp); in tavor_rsrc_init_phase2()
668 rsrc_pool = &state->ts_rsrc_hdl[TAVOR_QPC]; in tavor_rsrc_init_phase2()
675 rsrc_pool->rsrc_state = state; in tavor_rsrc_init_phase2()
683 status = tavor_rsrc_hw_entries_init(state, &entry_info); in tavor_rsrc_init_phase2()
685 tavor_rsrc_fini(state, cleanup); in tavor_rsrc_init_phase2()
697 max = ((uint64_t)1 << state->ts_devlim.log_max_ra_glob); in tavor_rsrc_init_phase2()
699 rsrc_pool = &state->ts_rsrc_hdl[TAVOR_RDB]; in tavor_rsrc_init_phase2()
706 rsrc_pool->rsrc_state = state; in tavor_rsrc_init_phase2()
714 status = tavor_rsrc_hw_entries_init(state, &entry_info); in tavor_rsrc_init_phase2()
716 tavor_rsrc_fini(state, cleanup); in tavor_rsrc_init_phase2()
729 max = ((uint64_t)1 << state->ts_devlim.log_max_cq); in tavor_rsrc_init_phase2()
730 num_prealloc = ((uint64_t)1 << state->ts_devlim.log_rsvd_cq); in tavor_rsrc_init_phase2()
731 rsrc_pool = &state->ts_rsrc_hdl[TAVOR_CQC]; in tavor_rsrc_init_phase2()
738 rsrc_pool->rsrc_state = state; in tavor_rsrc_init_phase2()
746 status = tavor_rsrc_hw_entries_init(state, &entry_info); in tavor_rsrc_init_phase2()
748 tavor_rsrc_fini(state, cleanup); in tavor_rsrc_init_phase2()
765 max = ((uint64_t)1 << state->ts_devlim.log_max_qp); in tavor_rsrc_init_phase2()
767 rsrc_pool = &state->ts_rsrc_hdl[TAVOR_EQPC]; in tavor_rsrc_init_phase2()
774 rsrc_pool->rsrc_state = state; in tavor_rsrc_init_phase2()
782 status = tavor_rsrc_hw_entries_init(state, &entry_info); in tavor_rsrc_init_phase2()
784 tavor_rsrc_fini(state, cleanup); in tavor_rsrc_init_phase2()
796 max = ((uint64_t)1 << state->ts_devlim.log_max_av); in tavor_rsrc_init_phase2()
798 rsrc_pool = &state->ts_rsrc_hdl[TAVOR_UDAV]; in tavor_rsrc_init_phase2()
805 rsrc_pool->rsrc_state = state; in tavor_rsrc_init_phase2()
813 status = tavor_rsrc_hw_entries_init(state, &entry_info); in tavor_rsrc_init_phase2()
815 tavor_rsrc_fini(state, cleanup); in tavor_rsrc_init_phase2()
831 uarscr_size = state->ts_devlim.uarscr_entry_sz; in tavor_rsrc_init_phase2()
833 max = ((uint64_t)1 << (state->ts_devlim.log_max_uar_sz + 20 - in tavor_rsrc_init_phase2()
836 rsrc_pool = &state->ts_rsrc_hdl[TAVOR_UAR_SCR]; in tavor_rsrc_init_phase2()
843 rsrc_pool->rsrc_state = state; in tavor_rsrc_init_phase2()
851 status = tavor_rsrc_hw_entries_init(state, &entry_info); in tavor_rsrc_init_phase2()
853 tavor_rsrc_fini(state, cleanup); in tavor_rsrc_init_phase2()
869 max = ((uint64_t)1 << state->ts_devlim.log_max_srq); in tavor_rsrc_init_phase2()
870 num_prealloc = ((uint64_t)1 << state->ts_devlim.log_rsvd_srq); in tavor_rsrc_init_phase2()
872 rsrc_pool = &state->ts_rsrc_hdl[TAVOR_SRQC]; in tavor_rsrc_init_phase2()
879 rsrc_pool->rsrc_state = state; in tavor_rsrc_init_phase2()
893 if (state->ts_cfg_profile->cp_srq_enable != 0) { in tavor_rsrc_init_phase2()
894 status = tavor_rsrc_hw_entries_init(state, &entry_info); in tavor_rsrc_init_phase2()
896 tavor_rsrc_fini(state, cleanup); in tavor_rsrc_init_phase2()
911 rsrc_pool = &state->ts_rsrc_hdl[TAVOR_IN_MBOX]; in tavor_rsrc_init_phase2()
918 rsrc_pool->rsrc_state = state; in tavor_rsrc_init_phase2()
924 status = tavor_rsrc_mbox_init(state, &mbox_info); in tavor_rsrc_init_phase2()
926 tavor_rsrc_fini(state, cleanup); in tavor_rsrc_init_phase2()
938 status = tavor_inmbox_list_init(state); in tavor_rsrc_init_phase2()
940 tavor_rsrc_fini(state, cleanup); in tavor_rsrc_init_phase2()
954 rsrc_pool = &state->ts_rsrc_hdl[TAVOR_INTR_IN_MBOX]; in tavor_rsrc_init_phase2()
961 rsrc_pool->rsrc_state = state; in tavor_rsrc_init_phase2()
967 status = tavor_rsrc_mbox_init(state, &mbox_info); in tavor_rsrc_init_phase2()
969 tavor_rsrc_fini(state, cleanup); in tavor_rsrc_init_phase2()
981 status = tavor_intr_inmbox_list_init(state); in tavor_rsrc_init_phase2()
983 tavor_rsrc_fini(state, cleanup); in tavor_rsrc_init_phase2()
993 status = tavor_outstanding_cmdlist_init(state); in tavor_rsrc_init_phase2()
995 tavor_rsrc_fini(state, cleanup); in tavor_rsrc_init_phase2()
1003 status = tavor_rsrc_mcg_entry_get_size(state, &mcg_size_shift); in tavor_rsrc_init_phase2()
1005 tavor_rsrc_fini(state, cleanup); in tavor_rsrc_init_phase2()
1008 mcg_size = TAVOR_MCGMEM_SZ(state); in tavor_rsrc_init_phase2()
1020 max = ((uint64_t)1 << state->ts_devlim.log_max_mcg); in tavor_rsrc_init_phase2()
1022 rsrc_pool = &state->ts_rsrc_hdl[TAVOR_MCG]; in tavor_rsrc_init_phase2()
1029 rsrc_pool->rsrc_state = state; in tavor_rsrc_init_phase2()
1037 status = tavor_rsrc_hw_entries_init(state, &entry_info); in tavor_rsrc_init_phase2()
1039 tavor_rsrc_fini(state, cleanup); in tavor_rsrc_init_phase2()
1051 max = ((uint64_t)1 << state->ts_devlim.log_max_eq); in tavor_rsrc_init_phase2()
1053 rsrc_pool = &state->ts_rsrc_hdl[TAVOR_EQC]; in tavor_rsrc_init_phase2()
1060 rsrc_pool->rsrc_state = state; in tavor_rsrc_init_phase2()
1068 status = tavor_rsrc_hw_entries_init(state, &entry_info); in tavor_rsrc_init_phase2()
1070 tavor_rsrc_fini(state, cleanup); in tavor_rsrc_init_phase2()
1089 rsrc_pool = &state->ts_rsrc_hdl[TAVOR_PDHDL]; in tavor_rsrc_init_phase2()
1093 rsrc_pool->rsrc_state = state; in tavor_rsrc_init_phase2()
1096 hdl_info.swi_max = ((uint64_t)1 << state->ts_devlim.log_max_pd); in tavor_rsrc_init_phase2()
1102 status = tavor_rsrc_pd_handles_init(state, &hdl_info); in tavor_rsrc_init_phase2()
1104 tavor_rsrc_fini(state, cleanup); in tavor_rsrc_init_phase2()
1115 rsrc_pool = &state->ts_rsrc_hdl[TAVOR_MRHDL]; in tavor_rsrc_init_phase2()
1119 rsrc_pool->rsrc_state = state; in tavor_rsrc_init_phase2()
1122 hdl_info.swi_max = ((uint64_t)1 << state->ts_devlim.log_max_mpt); in tavor_rsrc_init_phase2()
1128 status = tavor_rsrc_sw_handles_init(state, &hdl_info); in tavor_rsrc_init_phase2()
1130 tavor_rsrc_fini(state, cleanup); in tavor_rsrc_init_phase2()
1141 rsrc_pool = &state->ts_rsrc_hdl[TAVOR_EQHDL]; in tavor_rsrc_init_phase2()
1145 rsrc_pool->rsrc_state = state; in tavor_rsrc_init_phase2()
1148 hdl_info.swi_max = ((uint64_t)1 << state->ts_devlim.log_max_eq); in tavor_rsrc_init_phase2()
1154 status = tavor_rsrc_sw_handles_init(state, &hdl_info); in tavor_rsrc_init_phase2()
1156 tavor_rsrc_fini(state, cleanup); in tavor_rsrc_init_phase2()
1168 rsrc_pool = &state->ts_rsrc_hdl[TAVOR_CQHDL]; in tavor_rsrc_init_phase2()
1172 rsrc_pool->rsrc_state = state; in tavor_rsrc_init_phase2()
1175 hdl_info.swi_max = ((uint64_t)1 << state->ts_devlim.log_max_cq); in tavor_rsrc_init_phase2()
1183 status = tavor_rsrc_sw_handles_init(state, &hdl_info); in tavor_rsrc_init_phase2()
1185 tavor_rsrc_fini(state, cleanup); in tavor_rsrc_init_phase2()
1197 state->ts_cqhdl = hdl_info.swi_table_ptr; in tavor_rsrc_init_phase2()
1210 rsrc_pool = &state->ts_rsrc_hdl[TAVOR_SRQHDL]; in tavor_rsrc_init_phase2()
1214 rsrc_pool->rsrc_state = state; in tavor_rsrc_init_phase2()
1217 hdl_info.swi_max = ((uint64_t)1 << state->ts_devlim.log_max_srq); in tavor_rsrc_init_phase2()
1231 if (state->ts_cfg_profile->cp_srq_enable != 0) { in tavor_rsrc_init_phase2()
1232 status = tavor_rsrc_sw_handles_init(state, &hdl_info); in tavor_rsrc_init_phase2()
1234 tavor_rsrc_fini(state, cleanup); in tavor_rsrc_init_phase2()
1246 state->ts_srqhdl = hdl_info.swi_table_ptr; in tavor_rsrc_init_phase2()
1256 rsrc_pool = &state->ts_rsrc_hdl[TAVOR_AHHDL]; in tavor_rsrc_init_phase2()
1260 rsrc_pool->rsrc_state = state; in tavor_rsrc_init_phase2()
1263 hdl_info.swi_max = ((uint64_t)1 << state->ts_devlim.log_max_av); in tavor_rsrc_init_phase2()
1269 status = tavor_rsrc_sw_handles_init(state, &hdl_info); in tavor_rsrc_init_phase2()
1271 tavor_rsrc_fini(state, cleanup); in tavor_rsrc_init_phase2()
1283 rsrc_pool = &state->ts_rsrc_hdl[TAVOR_QPHDL]; in tavor_rsrc_init_phase2()
1287 rsrc_pool->rsrc_state = state; in tavor_rsrc_init_phase2()
1290 hdl_info.swi_max = ((uint64_t)1 << state->ts_devlim.log_max_qp); in tavor_rsrc_init_phase2()
1298 status = tavor_rsrc_sw_handles_init(state, &hdl_info); in tavor_rsrc_init_phase2()
1300 tavor_rsrc_fini(state, cleanup); in tavor_rsrc_init_phase2()
1312 state->ts_qphdl = hdl_info.swi_table_ptr; in tavor_rsrc_init_phase2()
1322 rsrc_pool = &state->ts_rsrc_hdl[TAVOR_REFCNT]; in tavor_rsrc_init_phase2()
1326 rsrc_pool->rsrc_state = state; in tavor_rsrc_init_phase2()
1329 hdl_info.swi_max = ((uint64_t)1 << state->ts_devlim.log_max_mpt); in tavor_rsrc_init_phase2()
1335 status = tavor_rsrc_sw_handles_init(state, &hdl_info); in tavor_rsrc_init_phase2()
1337 tavor_rsrc_fini(state, cleanup); in tavor_rsrc_init_phase2()
1349 hdl_info.swi_max = ((uint64_t)1 << state->ts_devlim.log_max_mcg); in tavor_rsrc_init_phase2()
1352 status = tavor_rsrc_sw_handles_init(state, &hdl_info); in tavor_rsrc_init_phase2()
1354 tavor_rsrc_fini(state, cleanup); in tavor_rsrc_init_phase2()
1357 state->ts_mcghdl = hdl_info.swi_table_ptr; in tavor_rsrc_init_phase2()
1377 max = ((uint64_t)1 << (state->ts_devlim.log_max_uar_sz + 20 - in tavor_rsrc_init_phase2()
1380 rsrc_pool = &state->ts_rsrc_hdl[TAVOR_UARPG]; in tavor_rsrc_init_phase2()
1387 rsrc_pool->rsrc_state = state; in tavor_rsrc_init_phase2()
1388 rsrc_pool->rsrc_start = (void *)state->ts_reg_uar_baseaddr; in tavor_rsrc_init_phase2()
1395 status = tavor_rsrc_hw_entries_init(state, &entry_info); in tavor_rsrc_init_phase2()
1397 tavor_rsrc_fini(state, cleanup); in tavor_rsrc_init_phase2()
1416 tavor_rsrc_fini(tavor_state_t *state, tavor_rsrc_cleanup_level_t clean) in tavor_rsrc_fini() argument
1423 ASSERT(state != NULL); in tavor_rsrc_fini()
1425 cfgprof = state->ts_cfg_profile; in tavor_rsrc_fini()
1435 entry_info.hwi_rsrcpool = &state->ts_rsrc_hdl[TAVOR_UARPG]; in tavor_rsrc_fini()
1436 tavor_rsrc_hw_entries_fini(state, &entry_info); in tavor_rsrc_fini()
1442 hdl_info.swi_table_ptr = state->ts_mcghdl; in tavor_rsrc_fini()
1446 tavor_rsrc_sw_handles_fini(state, &hdl_info); in tavor_rsrc_fini()
1451 hdl_info.swi_rsrcpool = &state->ts_rsrc_hdl[TAVOR_REFCNT]; in tavor_rsrc_fini()
1453 tavor_rsrc_sw_handles_fini(state, &hdl_info); in tavor_rsrc_fini()
1458 hdl_info.swi_rsrcpool = &state->ts_rsrc_hdl[TAVOR_QPHDL]; in tavor_rsrc_fini()
1459 hdl_info.swi_table_ptr = state->ts_qphdl; in tavor_rsrc_fini()
1463 tavor_rsrc_sw_handles_fini(state, &hdl_info); in tavor_rsrc_fini()
1468 hdl_info.swi_rsrcpool = &state->ts_rsrc_hdl[TAVOR_AHHDL]; in tavor_rsrc_fini()
1470 tavor_rsrc_sw_handles_fini(state, &hdl_info); in tavor_rsrc_fini()
1480 if (state->ts_cfg_profile->cp_srq_enable != 0) { in tavor_rsrc_fini()
1482 &state->ts_rsrc_hdl[TAVOR_SRQHDL]; in tavor_rsrc_fini()
1483 hdl_info.swi_table_ptr = state->ts_srqhdl; in tavor_rsrc_fini()
1487 tavor_rsrc_sw_handles_fini(state, &hdl_info); in tavor_rsrc_fini()
1493 hdl_info.swi_rsrcpool = &state->ts_rsrc_hdl[TAVOR_CQHDL]; in tavor_rsrc_fini()
1494 hdl_info.swi_table_ptr = state->ts_cqhdl; in tavor_rsrc_fini()
1498 tavor_rsrc_sw_handles_fini(state, &hdl_info); in tavor_rsrc_fini()
1503 hdl_info.swi_rsrcpool = &state->ts_rsrc_hdl[TAVOR_EQHDL]; in tavor_rsrc_fini()
1505 tavor_rsrc_sw_handles_fini(state, &hdl_info); in tavor_rsrc_fini()
1510 hdl_info.swi_rsrcpool = &state->ts_rsrc_hdl[TAVOR_MRHDL]; in tavor_rsrc_fini()
1512 tavor_rsrc_sw_handles_fini(state, &hdl_info); in tavor_rsrc_fini()
1517 hdl_info.swi_rsrcpool = &state->ts_rsrc_hdl[TAVOR_PDHDL]; in tavor_rsrc_fini()
1519 tavor_rsrc_pd_handles_fini(state, &hdl_info); in tavor_rsrc_fini()
1524 entry_info.hwi_rsrcpool = &state->ts_rsrc_hdl[TAVOR_EQC]; in tavor_rsrc_fini()
1525 tavor_rsrc_hw_entries_fini(state, &entry_info); in tavor_rsrc_fini()
1530 entry_info.hwi_rsrcpool = &state->ts_rsrc_hdl[TAVOR_MCG]; in tavor_rsrc_fini()
1531 tavor_rsrc_hw_entries_fini(state, &entry_info); in tavor_rsrc_fini()
1536 tavor_outstanding_cmdlist_fini(state); in tavor_rsrc_fini()
1541 tavor_intr_inmbox_list_fini(state); in tavor_rsrc_fini()
1546 mbox_info.mbi_rsrcpool = &state->ts_rsrc_hdl[ in tavor_rsrc_fini()
1548 tavor_rsrc_mbox_fini(state, &mbox_info); in tavor_rsrc_fini()
1553 tavor_inmbox_list_fini(state); in tavor_rsrc_fini()
1558 mbox_info.mbi_rsrcpool = &state->ts_rsrc_hdl[TAVOR_IN_MBOX]; in tavor_rsrc_fini()
1559 tavor_rsrc_mbox_fini(state, &mbox_info); in tavor_rsrc_fini()
1569 if (state->ts_cfg_profile->cp_srq_enable != 0) { in tavor_rsrc_fini()
1571 &state->ts_rsrc_hdl[TAVOR_SRQC]; in tavor_rsrc_fini()
1572 tavor_rsrc_hw_entries_fini(state, &entry_info); in tavor_rsrc_fini()
1578 entry_info.hwi_rsrcpool = &state->ts_rsrc_hdl[TAVOR_UAR_SCR]; in tavor_rsrc_fini()
1579 tavor_rsrc_hw_entries_fini(state, &entry_info); in tavor_rsrc_fini()
1584 entry_info.hwi_rsrcpool = &state->ts_rsrc_hdl[TAVOR_UDAV]; in tavor_rsrc_fini()
1585 tavor_rsrc_hw_entries_fini(state, &entry_info); in tavor_rsrc_fini()
1590 entry_info.hwi_rsrcpool = &state->ts_rsrc_hdl[TAVOR_EQPC]; in tavor_rsrc_fini()
1591 tavor_rsrc_hw_entries_fini(state, &entry_info); in tavor_rsrc_fini()
1596 entry_info.hwi_rsrcpool = &state->ts_rsrc_hdl[TAVOR_CQC]; in tavor_rsrc_fini()
1597 tavor_rsrc_hw_entries_fini(state, &entry_info); in tavor_rsrc_fini()
1602 entry_info.hwi_rsrcpool = &state->ts_rsrc_hdl[TAVOR_RDB]; in tavor_rsrc_fini()
1603 tavor_rsrc_hw_entries_fini(state, &entry_info); in tavor_rsrc_fini()
1608 entry_info.hwi_rsrcpool = &state->ts_rsrc_hdl[TAVOR_QPC]; in tavor_rsrc_fini()
1609 tavor_rsrc_hw_entries_fini(state, &entry_info); in tavor_rsrc_fini()
1614 entry_info.hwi_rsrcpool = &state->ts_rsrc_hdl[TAVOR_MTT]; in tavor_rsrc_fini()
1615 tavor_rsrc_hw_entries_fini(state, &entry_info); in tavor_rsrc_fini()
1620 entry_info.hwi_rsrcpool = &state->ts_rsrc_hdl[TAVOR_MPT]; in tavor_rsrc_fini()
1621 tavor_rsrc_hw_entries_fini(state, &entry_info); in tavor_rsrc_fini()
1626 vmem_destroy(state->ts_ddrvmem); in tavor_rsrc_fini()
1635 tavor_intr_outmbox_list_fini(state); in tavor_rsrc_fini()
1640 mbox_info.mbi_rsrcpool = &state->ts_rsrc_hdl[ in tavor_rsrc_fini()
1642 tavor_rsrc_mbox_fini(state, &mbox_info); in tavor_rsrc_fini()
1647 tavor_outmbox_list_fini(state); in tavor_rsrc_fini()
1652 mbox_info.mbi_rsrcpool = &state->ts_rsrc_hdl[TAVOR_OUT_MBOX]; in tavor_rsrc_fini()
1653 tavor_rsrc_mbox_fini(state, &mbox_info); in tavor_rsrc_fini()
1658 kmem_free(state->ts_rsrc_hdl, TAVOR_NUM_RESOURCES * in tavor_rsrc_fini()
1660 kmem_cache_destroy(state->ts_rsrc_cache); in tavor_rsrc_fini()
1664 TAVOR_WARNING(state, "unexpected resource cleanup level"); in tavor_rsrc_fini()
1674 tavor_rsrc_mbox_init(tavor_state_t *state, tavor_rsrc_mbox_info_t *info) in tavor_rsrc_mbox_init() argument
1682 ASSERT(state != NULL); in tavor_rsrc_mbox_init()
1688 dma_xfer_mode = state->ts_cfg_profile->cp_streaming_consistent; in tavor_rsrc_mbox_init()
1692 priv->pmb_dip = state->ts_dip; in tavor_rsrc_mbox_init()
1693 priv->pmb_acchdl = state->ts_reg_ddrhdl; in tavor_rsrc_mbox_init()
1694 priv->pmb_devaccattr = state->ts_reg_accattr; in tavor_rsrc_mbox_init()
1709 rsrc_pool->rsrc_ddr_offset = vmem_xalloc(state->ts_ddrvmem, in tavor_rsrc_mbox_init()
1720 state->ts_ddr.ddr_baseaddr); in tavor_rsrc_mbox_init()
1722 (void *)(uintptr_t)((uintptr_t)state->ts_reg_ddr_baseaddr + in tavor_rsrc_mbox_init()
1731 vmem_xfree(state->ts_ddrvmem, in tavor_rsrc_mbox_init()
1753 tavor_rsrc_mbox_fini(tavor_state_t *state, tavor_rsrc_mbox_info_t *info) in tavor_rsrc_mbox_fini() argument
1757 ASSERT(state != NULL); in tavor_rsrc_mbox_fini()
1770 vmem_xfree(state->ts_ddrvmem, rsrc_pool->rsrc_ddr_offset, in tavor_rsrc_mbox_fini()
1784 tavor_rsrc_hw_entries_init(tavor_state_t *state, in tavor_rsrc_hw_entries_init() argument
1794 ASSERT(state != NULL); in tavor_rsrc_hw_entries_init()
1815 rsrc_pool->rsrc_ddr_offset = vmem_xalloc(state->ts_ddrvmem, in tavor_rsrc_hw_entries_init()
1825 state->ts_ddr.ddr_baseaddr); in tavor_rsrc_hw_entries_init()
1827 (void *)(uintptr_t)((uintptr_t)state->ts_reg_ddr_baseaddr + in tavor_rsrc_hw_entries_init()
1849 vmem_xfree(state->ts_ddrvmem, in tavor_rsrc_hw_entries_init()
1862 status = tavor_rsrc_alloc(state, rsrc_pool->rsrc_type, in tavor_rsrc_hw_entries_init()
1871 vmem_xfree(state->ts_ddrvmem, in tavor_rsrc_hw_entries_init()
1889 tavor_rsrc_hw_entries_fini(tavor_state_t *state, in tavor_rsrc_hw_entries_fini() argument
1895 ASSERT(state != NULL); in tavor_rsrc_hw_entries_fini()
1904 tavor_rsrc_free(state, &rsvd_rsrc); in tavor_rsrc_hw_entries_fini()
1920 vmem_xfree(state->ts_ddrvmem, rsrc_pool->rsrc_ddr_offset, in tavor_rsrc_hw_entries_fini()
1932 tavor_rsrc_sw_handles_init(tavor_state_t *state, tavor_rsrc_sw_hdl_info_t *info) in tavor_rsrc_sw_handles_init() argument
1937 ASSERT(state != NULL); in tavor_rsrc_sw_handles_init()
1979 tavor_rsrc_sw_handles_fini(tavor_state_t *state, tavor_rsrc_sw_hdl_info_t *info) in tavor_rsrc_sw_handles_fini() argument
1984 ASSERT(state != NULL); in tavor_rsrc_sw_handles_fini()
2011 tavor_rsrc_pd_handles_init(tavor_state_t *state, tavor_rsrc_sw_hdl_info_t *info) in tavor_rsrc_pd_handles_init() argument
2018 ASSERT(state != NULL); in tavor_rsrc_pd_handles_init()
2025 status = tavor_rsrc_sw_handles_init(state, info); in tavor_rsrc_pd_handles_init()
2039 tavor_rsrc_sw_handles_fini(state, info); in tavor_rsrc_pd_handles_init()
2053 tavor_rsrc_pd_handles_fini(tavor_state_t *state, tavor_rsrc_sw_hdl_info_t *info) in tavor_rsrc_pd_handles_fini() argument
2057 ASSERT(state != NULL); in tavor_rsrc_pd_handles_fini()
2066 tavor_rsrc_sw_handles_fini(state, info); in tavor_rsrc_pd_handles_fini()
2367 tavor_state_t *state; in tavor_rsrc_pdhdl_constructor() local
2370 state = (tavor_state_t *)priv; in tavor_rsrc_pdhdl_constructor()
2373 DDI_INTR_PRI(state->ts_intrmsi_pri)); in tavor_rsrc_pdhdl_constructor()
2404 tavor_state_t *state; in tavor_rsrc_cqhdl_constructor() local
2407 state = (tavor_state_t *)priv; in tavor_rsrc_cqhdl_constructor()
2410 DDI_INTR_PRI(state->ts_intrmsi_pri)); in tavor_rsrc_cqhdl_constructor()
2412 DDI_INTR_PRI(state->ts_intrmsi_pri)); in tavor_rsrc_cqhdl_constructor()
2444 tavor_state_t *state; in tavor_rsrc_qphdl_constructor() local
2447 state = (tavor_state_t *)priv; in tavor_rsrc_qphdl_constructor()
2450 DDI_INTR_PRI(state->ts_intrmsi_pri)); in tavor_rsrc_qphdl_constructor()
2481 tavor_state_t *state; in tavor_rsrc_srqhdl_constructor() local
2484 state = (tavor_state_t *)priv; in tavor_rsrc_srqhdl_constructor()
2487 DDI_INTR_PRI(state->ts_intrmsi_pri)); in tavor_rsrc_srqhdl_constructor()
2518 tavor_state_t *state; in tavor_rsrc_refcnt_constructor() local
2521 state = (tavor_state_t *)priv; in tavor_rsrc_refcnt_constructor()
2524 DDI_INTR_PRI(state->ts_intrmsi_pri)); in tavor_rsrc_refcnt_constructor()
2555 tavor_state_t *state; in tavor_rsrc_ahhdl_constructor() local
2558 state = (tavor_state_t *)priv; in tavor_rsrc_ahhdl_constructor()
2561 DDI_INTR_PRI(state->ts_intrmsi_pri)); in tavor_rsrc_ahhdl_constructor()
2592 tavor_state_t *state; in tavor_rsrc_mrhdl_constructor() local
2595 state = (tavor_state_t *)priv; in tavor_rsrc_mrhdl_constructor()
2598 DDI_INTR_PRI(state->ts_intrmsi_pri)); in tavor_rsrc_mrhdl_constructor()
2624 tavor_rsrc_mcg_entry_get_size(tavor_state_t *state, uint_t *mcg_size_shift) in tavor_rsrc_mcg_entry_get_size() argument
2632 num_qp_per_mcg = state->ts_cfg_profile->cp_num_qp_per_mcg + 8; in tavor_rsrc_mcg_entry_get_size()
2637 state->ts_cfg_profile->cp_num_qp_per_mcg = (1 << log2) - 8; in tavor_rsrc_mcg_entry_get_size()
2640 num_qp_per_mcg = state->ts_cfg_profile->cp_num_qp_per_mcg; in tavor_rsrc_mcg_entry_get_size()
2641 max_qp_per_mcg = (1 << state->ts_devlim.log_max_qp_mcg); in tavor_rsrc_mcg_entry_get_size()