• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/sys/dev/qlnx/qlnxe/

Lines Matching refs:p_ooo_info

47 ecore_ooo_seek_archipelago(struct ecore_ooo_info *p_ooo_info, u32 cid)
49 u32 idx = (cid & 0xffff) - p_ooo_info->cid_base;
52 if (idx >= p_ooo_info->max_num_archipelagos)
55 p_archipelago = &p_ooo_info->p_archipelagos_mem[idx];
64 struct ecore_ooo_info *p_ooo_info,
71 p_archipelago = ecore_ooo_seek_archipelago(p_ooo_info, cid);
89 void ecore_ooo_save_history_entry(struct ecore_ooo_info *p_ooo_info,
92 struct ecore_ooo_history *p_history = &p_ooo_info->ooo_history;
105 struct ecore_ooo_info *p_ooo_info;
139 p_ooo_info = OSAL_ZALLOC(p_hwfn->p_dev, GFP_KERNEL,
140 sizeof(*p_ooo_info));
141 if (!p_ooo_info) {
145 p_ooo_info->cid_base = cid_base; /* We look only at the icid */
146 p_ooo_info->max_num_archipelagos = max_num_archipelagos;
148 OSAL_LIST_INIT(&p_ooo_info->free_buffers_list);
149 OSAL_LIST_INIT(&p_ooo_info->ready_buffers_list);
150 OSAL_LIST_INIT(&p_ooo_info->free_isles_list);
152 p_ooo_info->p_isles_mem =
156 if (!p_ooo_info->p_isles_mem) {
163 OSAL_LIST_INIT(&p_ooo_info->p_isles_mem[i].buffers_list);
164 OSAL_LIST_PUSH_TAIL(&p_ooo_info->p_isles_mem[i].list_entry,
165 &p_ooo_info->free_isles_list);
168 p_ooo_info->p_archipelagos_mem =
172 if (!p_ooo_info->p_archipelagos_mem) {
179 OSAL_LIST_INIT(&p_ooo_info->p_archipelagos_mem[i].isles_list);
182 p_ooo_info->ooo_history.p_cqes =
186 if (!p_ooo_info->ooo_history.p_cqes) {
191 p_ooo_info->ooo_history.num_of_cqes =
194 p_hwfn->p_ooo_info = p_ooo_info;
198 OSAL_FREE(p_hwfn->p_dev, p_ooo_info->p_archipelagos_mem);
200 OSAL_FREE(p_hwfn->p_dev, p_ooo_info->p_isles_mem);
202 OSAL_FREE(p_hwfn->p_dev, p_ooo_info);
207 void ecore_ooo_release_connection_isles(struct ecore_ooo_info *p_ooo_info,
214 p_archipelago = ecore_ooo_seek_archipelago(p_ooo_info, cid);
243 &p_ooo_info->free_buffers_list);
246 &p_ooo_info->free_isles_list);
251 void ecore_ooo_release_all_isles(struct ecore_ooo_info *p_ooo_info)
258 for (i = 0; i < p_ooo_info->max_num_archipelagos; i++) {
259 p_archipelago = &(p_ooo_info->p_archipelagos_mem[i]);
289 &p_ooo_info->free_buffers_list);
292 &p_ooo_info->free_isles_list);
295 if (!OSAL_LIST_IS_EMPTY(&p_ooo_info->ready_buffers_list)) {
296 OSAL_LIST_SPLICE_TAIL_INIT(&p_ooo_info->ready_buffers_list,
297 &p_ooo_info->free_buffers_list);
305 ecore_ooo_release_all_isles(p_hwfn->p_ooo_info);
306 OSAL_MEM_ZERO(p_hwfn->p_ooo_info->ooo_history.p_cqes,
307 p_hwfn->p_ooo_info->ooo_history.num_of_cqes *
309 p_hwfn->p_ooo_info->ooo_history.head_idx = 0;
314 struct ecore_ooo_info *p_ooo_info = p_hwfn->p_ooo_info;
317 if (!p_ooo_info)
320 ecore_ooo_release_all_isles(p_ooo_info);
321 while (!OSAL_LIST_IS_EMPTY(&p_ooo_info->free_buffers_list)) {
322 p_buffer = OSAL_LIST_FIRST_ENTRY(&p_ooo_info->
332 &p_ooo_info->free_buffers_list);
340 OSAL_FREE(p_hwfn->p_dev, p_ooo_info->p_isles_mem);
341 OSAL_FREE(p_hwfn->p_dev, p_ooo_info->p_archipelagos_mem);
342 OSAL_FREE(p_hwfn->p_dev, p_ooo_info->ooo_history.p_cqes);
343 OSAL_FREE(p_hwfn->p_dev, p_ooo_info);
344 p_hwfn->p_ooo_info = OSAL_NULL;
348 void ecore_ooo_put_free_buffer(struct ecore_ooo_info *p_ooo_info,
352 &p_ooo_info->free_buffers_list);
356 ecore_ooo_get_free_buffer(struct ecore_ooo_info *p_ooo_info)
360 if (!OSAL_LIST_IS_EMPTY(&p_ooo_info->free_buffers_list)) {
363 &p_ooo_info->free_buffers_list,
367 &p_ooo_info->free_buffers_list);
373 void ecore_ooo_put_ready_buffer(struct ecore_ooo_info *p_ooo_info,
378 &p_ooo_info->ready_buffers_list);
381 &p_ooo_info->ready_buffers_list);
386 ecore_ooo_get_ready_buffer(struct ecore_ooo_info *p_ooo_info)
390 if (!OSAL_LIST_IS_EMPTY(&p_ooo_info->ready_buffers_list)) {
393 &p_ooo_info->ready_buffers_list,
397 &p_ooo_info->ready_buffers_list);
404 struct ecore_ooo_info *p_ooo_info,
413 p_archipelago = ecore_ooo_seek_archipelago(p_ooo_info, cid);
415 p_isle = ecore_ooo_seek_isle(p_hwfn, p_ooo_info,
429 &p_ooo_info->free_buffers_list);
436 p_ooo_info->cur_isles_number--;
438 &p_ooo_info->free_isles_list);
443 struct ecore_ooo_info *p_ooo_info,
452 p_prev_isle = ecore_ooo_seek_isle(p_hwfn, p_ooo_info, cid, ooo_isle - 1);
460 p_archipelago = ecore_ooo_seek_archipelago(p_ooo_info, cid);
467 if (!OSAL_LIST_IS_EMPTY(&p_ooo_info->free_isles_list)) {
470 &p_ooo_info->free_isles_list,
474 &p_ooo_info->free_isles_list);
485 u32 idx = (cid & 0xffff) - p_ooo_info->cid_base;
487 p_archipelago = &p_ooo_info->p_archipelagos_mem[idx];
490 p_ooo_info->cur_isles_number++;
491 p_ooo_info->gen_isles_number++;
492 if (p_ooo_info->cur_isles_number > p_ooo_info->max_isles_number)
493 p_ooo_info->max_isles_number = p_ooo_info->cur_isles_number;
504 struct ecore_ooo_info *p_ooo_info,
511 p_isle = ecore_ooo_seek_isle(p_hwfn, p_ooo_info, cid, ooo_isle);
528 struct ecore_ooo_info *p_ooo_info,
535 p_right_isle = ecore_ooo_seek_isle(p_hwfn, p_ooo_info, cid,
543 p_archipelago = ecore_ooo_seek_archipelago(p_ooo_info, cid);
546 p_ooo_info->cur_isles_number--;
548 p_left_isle = ecore_ooo_seek_isle(p_hwfn, p_ooo_info, cid,
560 &p_ooo_info->ready_buffers_list);
563 &p_ooo_info->free_isles_list);