Lines Matching refs:hmc_info

22 static void irdma_find_sd_index_limit(struct irdma_hmc_info *hmc_info, u32 type,  in irdma_find_sd_index_limit()  argument
28 fpm_addr = hmc_info->hmc_obj[(type)].base + in irdma_find_sd_index_limit()
29 hmc_info->hmc_obj[type].size * idx; in irdma_find_sd_index_limit()
30 fpm_limit = fpm_addr + hmc_info->hmc_obj[type].size * cnt; in irdma_find_sd_index_limit()
49 static void irdma_find_pd_index_limit(struct irdma_hmc_info *hmc_info, u32 type, in irdma_find_pd_index_limit() argument
55 fpm_adr = hmc_info->hmc_obj[type].base + in irdma_find_pd_index_limit()
56 hmc_info->hmc_obj[type].size * idx; in irdma_find_pd_index_limit()
57 fpm_limit = fpm_adr + (hmc_info)->hmc_obj[(type)].size * (cnt); in irdma_find_pd_index_limit()
146 struct irdma_hmc_info *hmc_info, u32 sd_index, in irdma_hmc_sd_grp() argument
155 sdinfo.hmc_fn_id = hmc_info->hmc_fn_id; in irdma_hmc_sd_grp()
157 sd_entry = &hmc_info->sd_table.sd_entry[i]; in irdma_hmc_sd_grp()
198 if (info->start_idx >= info->hmc_info->hmc_obj[info->rsrc_type].cnt) in irdma_hmc_finish_add_sd_reg()
202 info->hmc_info->hmc_obj[info->rsrc_type].cnt) in irdma_hmc_finish_add_sd_reg()
207 return irdma_hmc_sd_grp(dev, info->hmc_info, in irdma_hmc_finish_add_sd_reg()
208 info->hmc_info->sd_indexes[0], info->add_sd_cnt, in irdma_hmc_finish_add_sd_reg()
231 if (info->start_idx >= info->hmc_info->hmc_obj[info->rsrc_type].cnt) in irdma_sc_create_hmc_obj()
235 info->hmc_info->hmc_obj[info->rsrc_type].cnt) { in irdma_sc_create_hmc_obj()
239 info->hmc_info->hmc_obj[info->rsrc_type].cnt); in irdma_sc_create_hmc_obj()
243 irdma_find_sd_index_limit(info->hmc_info, info->rsrc_type, in irdma_sc_create_hmc_obj()
246 if (sd_idx >= info->hmc_info->sd_table.sd_cnt || in irdma_sc_create_hmc_obj()
247 sd_lmt > info->hmc_info->sd_table.sd_cnt) { in irdma_sc_create_hmc_obj()
251 irdma_find_pd_index_limit(info->hmc_info, info->rsrc_type, in irdma_sc_create_hmc_obj()
256 ret_code = irdma_add_sd_table_entry(dev->hw, info->hmc_info, j, in irdma_sc_create_hmc_obj()
262 sd_entry = &info->hmc_info->sd_table.sd_entry[j]; in irdma_sc_create_hmc_obj()
264 (dev->hmc_info == info->hmc_info && in irdma_sc_create_hmc_obj()
271 info->hmc_info, in irdma_sc_create_hmc_obj()
280 irdma_remove_pd_bp(dev, info->hmc_info, in irdma_sc_create_hmc_obj()
289 info->hmc_info->sd_indexes[info->add_sd_cnt] = (u16)j; in irdma_sc_create_hmc_obj()
297 sd_entry = &info->hmc_info->sd_table.sd_entry[j - 1]; in irdma_sc_create_hmc_obj()
303 irdma_prep_remove_pd_page(info->hmc_info, i); in irdma_sc_create_hmc_obj()
306 irdma_prep_remove_pd_page(info->hmc_info, (j - 1)); in irdma_sc_create_hmc_obj()
334 ret_code = irdma_hmc_sd_grp(dev, info->hmc_info, in irdma_finish_del_sd_reg()
335 info->hmc_info->sd_indexes[0], in irdma_finish_del_sd_reg()
341 sd_idx = info->hmc_info->sd_indexes[i]; in irdma_finish_del_sd_reg()
342 sd_entry = &info->hmc_info->sd_table.sd_entry[sd_idx]; in irdma_finish_del_sd_reg()
379 if (info->start_idx >= info->hmc_info->hmc_obj[info->rsrc_type].cnt) { in irdma_sc_del_hmc_obj()
383 info->hmc_info->hmc_obj[info->rsrc_type].cnt); in irdma_sc_del_hmc_obj()
388 info->hmc_info->hmc_obj[info->rsrc_type].cnt) { in irdma_sc_del_hmc_obj()
392 info->hmc_info->hmc_obj[info->rsrc_type].cnt); in irdma_sc_del_hmc_obj()
396 irdma_find_pd_index_limit(info->hmc_info, info->rsrc_type, in irdma_sc_del_hmc_obj()
403 if (!info->hmc_info->sd_table.sd_entry[sd_idx].valid) in irdma_sc_del_hmc_obj()
406 if (info->hmc_info->sd_table.sd_entry[sd_idx].entry_type != in irdma_sc_del_hmc_obj()
411 pd_table = &info->hmc_info->sd_table.sd_entry[sd_idx].u.pd_table; in irdma_sc_del_hmc_obj()
414 ret_code = irdma_remove_pd_bp(dev, info->hmc_info, j); in irdma_sc_del_hmc_obj()
423 irdma_find_sd_index_limit(info->hmc_info, info->rsrc_type, in irdma_sc_del_hmc_obj()
426 if (sd_idx >= info->hmc_info->sd_table.sd_cnt || in irdma_sc_del_hmc_obj()
427 sd_lmt > info->hmc_info->sd_table.sd_cnt) { in irdma_sc_del_hmc_obj()
433 pd_table = &info->hmc_info->sd_table.sd_entry[i].u.pd_table; in irdma_sc_del_hmc_obj()
434 if (!info->hmc_info->sd_table.sd_entry[i].valid) in irdma_sc_del_hmc_obj()
436 switch (info->hmc_info->sd_table.sd_entry[i].entry_type) { in irdma_sc_del_hmc_obj()
438 ret_code = irdma_prep_remove_sd_bp(info->hmc_info, i); in irdma_sc_del_hmc_obj()
440 info->hmc_info->sd_indexes[info->del_sd_cnt] = in irdma_sc_del_hmc_obj()
446 ret_code = irdma_prep_remove_pd_page(info->hmc_info, i); in irdma_sc_del_hmc_obj()
449 if (dev->hmc_info != info->hmc_info && in irdma_sc_del_hmc_obj()
455 info->hmc_info->sd_indexes[info->del_sd_cnt] = (u16)i; in irdma_sc_del_hmc_obj()
474 struct irdma_hmc_info *hmc_info, u32 sd_index, in irdma_add_sd_table_entry() argument
481 sd_entry = &hmc_info->sd_table.sd_entry[sd_index]; in irdma_add_sd_table_entry()
517 hmc_info->sd_table.sd_entry[sd_index].entry_type = type; in irdma_add_sd_table_entry()
518 hmc_info->sd_table.use_cnt++; in irdma_add_sd_table_entry()
544 struct irdma_hmc_info *hmc_info, u32 pd_index, in irdma_add_pd_table_entry() argument
555 if (pd_index / IRDMA_HMC_PD_CNT_IN_SD >= hmc_info->sd_table.sd_cnt) in irdma_add_pd_table_entry()
559 if (hmc_info->sd_table.sd_entry[sd_idx].entry_type != in irdma_add_pd_table_entry()
564 pd_table = &hmc_info->sd_table.sd_entry[sd_idx].u.pd_table; in irdma_add_pd_table_entry()
615 struct irdma_hmc_info *hmc_info, u32 idx) in irdma_remove_pd_bp() argument
626 if (sd_idx >= hmc_info->sd_table.sd_cnt) in irdma_remove_pd_bp()
629 sd_entry = &hmc_info->sd_table.sd_entry[sd_idx]; in irdma_remove_pd_bp()
633 pd_table = &hmc_info->sd_table.sd_entry[sd_idx].u.pd_table; in irdma_remove_pd_bp()
665 int irdma_prep_remove_sd_bp(struct irdma_hmc_info *hmc_info, u32 idx) in irdma_prep_remove_sd_bp() argument
669 sd_entry = &hmc_info->sd_table.sd_entry[idx]; in irdma_prep_remove_sd_bp()
673 hmc_info->sd_table.use_cnt--; in irdma_prep_remove_sd_bp()
684 int irdma_prep_remove_pd_page(struct irdma_hmc_info *hmc_info, u32 idx) in irdma_prep_remove_pd_page() argument
688 sd_entry = &hmc_info->sd_table.sd_entry[idx]; in irdma_prep_remove_pd_page()
694 hmc_info->sd_table.use_cnt--; in irdma_prep_remove_pd_page()