Lines Matching refs:p_chain
3245 struct qed_chain *p_chain) in qed_chain_free_next_ptr() argument
3247 void *p_virt = p_chain->p_virt_addr, *p_virt_next = NULL; in qed_chain_free_next_ptr()
3248 dma_addr_t p_phys = p_chain->p_phys_addr, p_phys_next = 0; in qed_chain_free_next_ptr()
3255 size = p_chain->elem_size * p_chain->usable_per_page; in qed_chain_free_next_ptr()
3257 for (i = 0; i < p_chain->page_cnt; i++) { in qed_chain_free_next_ptr()
3274 struct qed_chain *p_chain) in qed_chain_free_single() argument
3276 if (!p_chain->p_virt_addr) in qed_chain_free_single()
3281 p_chain->p_virt_addr, p_chain->p_phys_addr); in qed_chain_free_single()
3284 static void qed_chain_free_pbl(struct qed_dev *cdev, struct qed_chain *p_chain) in qed_chain_free_pbl() argument
3286 void **pp_virt_addr_tbl = p_chain->pbl.pp_virt_addr_tbl; in qed_chain_free_pbl()
3287 u32 page_cnt = p_chain->page_cnt, i, pbl_size; in qed_chain_free_pbl()
3288 u8 *p_pbl_virt = p_chain->pbl_sp.p_virt_table; in qed_chain_free_pbl()
3310 if (!p_chain->b_external_pbl) in qed_chain_free_pbl()
3313 p_chain->pbl_sp.p_virt_table, in qed_chain_free_pbl()
3314 p_chain->pbl_sp.p_phys_table); in qed_chain_free_pbl()
3316 vfree(p_chain->pbl.pp_virt_addr_tbl); in qed_chain_free_pbl()
3317 p_chain->pbl.pp_virt_addr_tbl = NULL; in qed_chain_free_pbl()
3320 void qed_chain_free(struct qed_dev *cdev, struct qed_chain *p_chain) in qed_chain_free() argument
3322 switch (p_chain->mode) { in qed_chain_free()
3324 qed_chain_free_next_ptr(cdev, p_chain); in qed_chain_free()
3327 qed_chain_free_single(cdev, p_chain); in qed_chain_free()
3330 qed_chain_free_pbl(cdev, p_chain); in qed_chain_free()
3361 qed_chain_alloc_next_ptr(struct qed_dev *cdev, struct qed_chain *p_chain) in qed_chain_alloc_next_ptr() argument
3367 for (i = 0; i < p_chain->page_cnt; i++) { in qed_chain_alloc_next_ptr()
3375 qed_chain_init_mem(p_chain, p_virt, p_phys); in qed_chain_alloc_next_ptr()
3376 qed_chain_reset(p_chain); in qed_chain_alloc_next_ptr()
3378 qed_chain_init_next_ptr_elem(p_chain, p_virt_prev, in qed_chain_alloc_next_ptr()
3387 qed_chain_init_next_ptr_elem(p_chain, p_virt_prev, in qed_chain_alloc_next_ptr()
3388 p_chain->p_virt_addr, in qed_chain_alloc_next_ptr()
3389 p_chain->p_phys_addr); in qed_chain_alloc_next_ptr()
3395 qed_chain_alloc_single(struct qed_dev *cdev, struct qed_chain *p_chain) in qed_chain_alloc_single() argument
3405 qed_chain_init_mem(p_chain, p_virt, p_phys); in qed_chain_alloc_single()
3406 qed_chain_reset(p_chain); in qed_chain_alloc_single()
3413 struct qed_chain *p_chain, in qed_chain_alloc_pbl() argument
3416 u32 page_cnt = p_chain->page_cnt, size, i; in qed_chain_alloc_pbl()
3441 p_chain->b_external_pbl = true; in qed_chain_alloc_pbl()
3444 qed_chain_init_pbl_mem(p_chain, p_pbl_virt, p_pbl_phys, in qed_chain_alloc_pbl()
3457 qed_chain_init_mem(p_chain, p_virt, p_phys); in qed_chain_alloc_pbl()
3458 qed_chain_reset(p_chain); in qed_chain_alloc_pbl()
3464 p_chain->pbl.pp_virt_addr_tbl[i] = p_virt; in qed_chain_alloc_pbl()
3478 struct qed_chain *p_chain, in qed_chain_alloc() argument
3499 qed_chain_init_params(p_chain, page_cnt, (u8) elem_size, intended_use, in qed_chain_alloc()
3504 rc = qed_chain_alloc_next_ptr(cdev, p_chain); in qed_chain_alloc()
3507 rc = qed_chain_alloc_single(cdev, p_chain); in qed_chain_alloc()
3510 rc = qed_chain_alloc_pbl(cdev, p_chain, ext_pbl); in qed_chain_alloc()
3519 qed_chain_free(cdev, p_chain); in qed_chain_alloc()