Lines Matching refs:mhop

93 			   struct hns_roce_hem_mhop *mhop)  in hns_roce_calc_hem_mhop()  argument
103 mhop->buf_chunk_size = 1 << (hr_dev->caps.qpc_buf_pg_sz in hns_roce_calc_hem_mhop()
105 mhop->bt_chunk_size = 1 << (hr_dev->caps.qpc_ba_pg_sz in hns_roce_calc_hem_mhop()
107 mhop->ba_l0_num = hr_dev->caps.qpc_bt_num; in hns_roce_calc_hem_mhop()
108 mhop->hop_num = hr_dev->caps.qpc_hop_num; in hns_roce_calc_hem_mhop()
111 mhop->buf_chunk_size = 1 << (hr_dev->caps.mpt_buf_pg_sz in hns_roce_calc_hem_mhop()
113 mhop->bt_chunk_size = 1 << (hr_dev->caps.mpt_ba_pg_sz in hns_roce_calc_hem_mhop()
115 mhop->ba_l0_num = hr_dev->caps.mpt_bt_num; in hns_roce_calc_hem_mhop()
116 mhop->hop_num = hr_dev->caps.mpt_hop_num; in hns_roce_calc_hem_mhop()
119 mhop->buf_chunk_size = 1 << (hr_dev->caps.cqc_buf_pg_sz in hns_roce_calc_hem_mhop()
121 mhop->bt_chunk_size = 1 << (hr_dev->caps.cqc_ba_pg_sz in hns_roce_calc_hem_mhop()
123 mhop->ba_l0_num = hr_dev->caps.cqc_bt_num; in hns_roce_calc_hem_mhop()
124 mhop->hop_num = hr_dev->caps.cqc_hop_num; in hns_roce_calc_hem_mhop()
127 mhop->buf_chunk_size = 1 << (hr_dev->caps.srqc_buf_pg_sz in hns_roce_calc_hem_mhop()
129 mhop->bt_chunk_size = 1 << (hr_dev->caps.srqc_ba_pg_sz in hns_roce_calc_hem_mhop()
131 mhop->ba_l0_num = hr_dev->caps.srqc_bt_num; in hns_roce_calc_hem_mhop()
132 mhop->hop_num = hr_dev->caps.srqc_hop_num; in hns_roce_calc_hem_mhop()
135 mhop->buf_chunk_size = 1 << (hr_dev->caps.mtt_buf_pg_sz in hns_roce_calc_hem_mhop()
137 mhop->bt_chunk_size = 1 << (hr_dev->caps.mtt_ba_pg_sz in hns_roce_calc_hem_mhop()
139 mhop->ba_l0_num = mhop->bt_chunk_size / 8; in hns_roce_calc_hem_mhop()
140 mhop->hop_num = hr_dev->caps.mtt_hop_num; in hns_roce_calc_hem_mhop()
143 mhop->buf_chunk_size = 1 << (hr_dev->caps.cqe_buf_pg_sz in hns_roce_calc_hem_mhop()
145 mhop->bt_chunk_size = 1 << (hr_dev->caps.cqe_ba_pg_sz in hns_roce_calc_hem_mhop()
147 mhop->ba_l0_num = mhop->bt_chunk_size / 8; in hns_roce_calc_hem_mhop()
148 mhop->hop_num = hr_dev->caps.cqe_hop_num; in hns_roce_calc_hem_mhop()
163 bt_num = hns_roce_get_bt_num(table->type, mhop->hop_num); in hns_roce_calc_hem_mhop()
164 chunk_ba_num = mhop->bt_chunk_size / 8; in hns_roce_calc_hem_mhop()
165 chunk_size = table->type < HEM_TYPE_MTT ? mhop->buf_chunk_size : in hns_roce_calc_hem_mhop()
166 mhop->bt_chunk_size; in hns_roce_calc_hem_mhop()
171 mhop->l2_idx = table_idx & (chunk_ba_num - 1); in hns_roce_calc_hem_mhop()
172 mhop->l1_idx = table_idx / chunk_ba_num & (chunk_ba_num - 1); in hns_roce_calc_hem_mhop()
173 mhop->l0_idx = (table_idx / chunk_ba_num) / chunk_ba_num; in hns_roce_calc_hem_mhop()
176 mhop->l1_idx = table_idx & (chunk_ba_num - 1); in hns_roce_calc_hem_mhop()
177 mhop->l0_idx = table_idx / chunk_ba_num; in hns_roce_calc_hem_mhop()
180 mhop->l0_idx = table_idx; in hns_roce_calc_hem_mhop()
184 table->type, mhop->hop_num); in hns_roce_calc_hem_mhop()
187 if (mhop->l0_idx >= mhop->ba_l0_num) in hns_roce_calc_hem_mhop()
188 mhop->l0_idx %= mhop->ba_l0_num; in hns_roce_calc_hem_mhop()
368 struct hns_roce_hem_mhop mhop; in hns_roce_table_mhop_get() local
386 ret = hns_roce_calc_hem_mhop(hr_dev, table, &mhop_obj, &mhop); in hns_roce_table_mhop_get()
390 buf_chunk_size = mhop.buf_chunk_size; in hns_roce_table_mhop_get()
391 bt_chunk_size = mhop.bt_chunk_size; in hns_roce_table_mhop_get()
392 hop_num = mhop.hop_num; in hns_roce_table_mhop_get()
398 hem_idx = mhop.l0_idx * chunk_ba_num * chunk_ba_num + in hns_roce_table_mhop_get()
399 mhop.l1_idx * chunk_ba_num + mhop.l2_idx; in hns_roce_table_mhop_get()
400 bt_l1_idx = mhop.l0_idx * chunk_ba_num + mhop.l1_idx; in hns_roce_table_mhop_get()
401 bt_l0_idx = mhop.l0_idx; in hns_roce_table_mhop_get()
404 hem_idx = mhop.l0_idx * chunk_ba_num + mhop.l1_idx; in hns_roce_table_mhop_get()
405 bt_l0_idx = mhop.l0_idx; in hns_roce_table_mhop_get()
408 hem_idx = mhop.l0_idx; in hns_roce_table_mhop_get()
458 *(table->bt_l0[bt_l0_idx] + mhop.l1_idx) = in hns_roce_table_mhop_get()
490 *(table->bt_l1[bt_l1_idx] + mhop.l2_idx) = bt_ba; in hns_roce_table_mhop_get()
493 *(table->bt_l0[bt_l0_idx] + mhop.l1_idx) = bt_ba; in hns_roce_table_mhop_get()
509 *(table->bt_l0[bt_l0_idx] + mhop.l1_idx) = bt_ba; in hns_roce_table_mhop_get()
585 struct hns_roce_hem_mhop mhop; in hns_roce_table_mhop_put() local
596 ret = hns_roce_calc_hem_mhop(hr_dev, table, &mhop_obj, &mhop); in hns_roce_table_mhop_put()
600 bt_chunk_size = mhop.bt_chunk_size; in hns_roce_table_mhop_put()
601 hop_num = mhop.hop_num; in hns_roce_table_mhop_put()
607 hem_idx = mhop.l0_idx * chunk_ba_num * chunk_ba_num + in hns_roce_table_mhop_put()
608 mhop.l1_idx * chunk_ba_num + mhop.l2_idx; in hns_roce_table_mhop_put()
609 bt_l1_idx = mhop.l0_idx * chunk_ba_num + mhop.l1_idx; in hns_roce_table_mhop_put()
612 hem_idx = mhop.l0_idx * chunk_ba_num + mhop.l1_idx; in hns_roce_table_mhop_put()
615 hem_idx = mhop.l0_idx; in hns_roce_table_mhop_put()
650 start_idx = mhop.l0_idx * chunk_ba_num; in hns_roce_table_mhop_put()
658 table->bt_l0[mhop.l0_idx], in hns_roce_table_mhop_put()
659 table->bt_l0_dma_addr[mhop.l0_idx]); in hns_roce_table_mhop_put()
660 table->bt_l0[mhop.l0_idx] = NULL; in hns_roce_table_mhop_put()
663 start_idx = mhop.l0_idx * chunk_ba_num * chunk_ba_num + in hns_roce_table_mhop_put()
664 mhop.l1_idx * chunk_ba_num; in hns_roce_table_mhop_put()
675 start_idx = mhop.l0_idx * chunk_ba_num; in hns_roce_table_mhop_put()
683 table->bt_l0[mhop.l0_idx], in hns_roce_table_mhop_put()
684 table->bt_l0_dma_addr[mhop.l0_idx]); in hns_roce_table_mhop_put()
685 table->bt_l0[mhop.l0_idx] = NULL; in hns_roce_table_mhop_put()
726 struct hns_roce_hem_mhop mhop; in hns_roce_table_find() local
748 hns_roce_calc_hem_mhop(hr_dev, table, &mhop_obj, &mhop); in hns_roce_table_find()
750 i = mhop.l0_idx; in hns_roce_table_find()
751 j = mhop.l1_idx; in hns_roce_table_find()
752 if (mhop.hop_num == 2) in hns_roce_table_find()
753 hem_idx = i * (mhop.bt_chunk_size / 8) + j; in hns_roce_table_find()
754 else if (mhop.hop_num == 1 || in hns_roce_table_find()
755 mhop.hop_num == HNS_ROCE_HOP_NUM_0) in hns_roce_table_find()
760 table->obj_size % mhop.bt_chunk_size; in hns_roce_table_find()
761 if (mhop.hop_num == 2) in hns_roce_table_find()
796 struct hns_roce_hem_mhop mhop; in hns_roce_table_get_range() local
802 hns_roce_calc_hem_mhop(hr_dev, table, NULL, &mhop); in hns_roce_table_get_range()
803 inc = mhop.bt_chunk_size / table->obj_size; in hns_roce_table_get_range()
827 struct hns_roce_hem_mhop mhop; in hns_roce_table_put_range() local
832 hns_roce_calc_hem_mhop(hr_dev, table, NULL, &mhop); in hns_roce_table_put_range()
833 inc = mhop.bt_chunk_size / table->obj_size; in hns_roce_table_put_range()
992 struct hns_roce_hem_mhop mhop; in hns_roce_cleanup_mhop_hem_table() local
997 hns_roce_calc_hem_mhop(hr_dev, table, NULL, &mhop); in hns_roce_cleanup_mhop_hem_table()
998 buf_chunk_size = table->type < HEM_TYPE_MTT ? mhop.buf_chunk_size : in hns_roce_cleanup_mhop_hem_table()
999 mhop.bt_chunk_size; in hns_roce_cleanup_mhop_hem_table()