Lines Matching refs:p_chain
4610 struct qed_chain *p_chain) in qed_chain_free_next_ptr() argument
4612 void *p_virt = p_chain->p_virt_addr, *p_virt_next = NULL; in qed_chain_free_next_ptr()
4613 dma_addr_t p_phys = p_chain->p_phys_addr, p_phys_next = 0; in qed_chain_free_next_ptr()
4620 size = p_chain->elem_size * p_chain->usable_per_page; in qed_chain_free_next_ptr()
4622 for (i = 0; i < p_chain->page_cnt; i++) { in qed_chain_free_next_ptr()
4639 struct qed_chain *p_chain) in qed_chain_free_single() argument
4641 if (!p_chain->p_virt_addr) in qed_chain_free_single()
4646 p_chain->p_virt_addr, p_chain->p_phys_addr); in qed_chain_free_single()
4649 static void qed_chain_free_pbl(struct qed_dev *cdev, struct qed_chain *p_chain) in qed_chain_free_pbl() argument
4651 void **pp_virt_addr_tbl = p_chain->pbl.pp_virt_addr_tbl; in qed_chain_free_pbl()
4652 u32 page_cnt = p_chain->page_cnt, i, pbl_size; in qed_chain_free_pbl()
4653 u8 *p_pbl_virt = p_chain->pbl_sp.p_virt_table; in qed_chain_free_pbl()
4675 if (!p_chain->b_external_pbl) in qed_chain_free_pbl()
4678 p_chain->pbl_sp.p_virt_table, in qed_chain_free_pbl()
4679 p_chain->pbl_sp.p_phys_table); in qed_chain_free_pbl()
4681 vfree(p_chain->pbl.pp_virt_addr_tbl); in qed_chain_free_pbl()
4682 p_chain->pbl.pp_virt_addr_tbl = NULL; in qed_chain_free_pbl()
4685 void qed_chain_free(struct qed_dev *cdev, struct qed_chain *p_chain) in qed_chain_free() argument
4687 switch (p_chain->mode) { in qed_chain_free()
4689 qed_chain_free_next_ptr(cdev, p_chain); in qed_chain_free()
4692 qed_chain_free_single(cdev, p_chain); in qed_chain_free()
4695 qed_chain_free_pbl(cdev, p_chain); in qed_chain_free()
4726 qed_chain_alloc_next_ptr(struct qed_dev *cdev, struct qed_chain *p_chain) in qed_chain_alloc_next_ptr() argument
4732 for (i = 0; i < p_chain->page_cnt; i++) { in qed_chain_alloc_next_ptr()
4740 qed_chain_init_mem(p_chain, p_virt, p_phys); in qed_chain_alloc_next_ptr()
4741 qed_chain_reset(p_chain); in qed_chain_alloc_next_ptr()
4743 qed_chain_init_next_ptr_elem(p_chain, p_virt_prev, in qed_chain_alloc_next_ptr()
4752 qed_chain_init_next_ptr_elem(p_chain, p_virt_prev, in qed_chain_alloc_next_ptr()
4753 p_chain->p_virt_addr, in qed_chain_alloc_next_ptr()
4754 p_chain->p_phys_addr); in qed_chain_alloc_next_ptr()
4760 qed_chain_alloc_single(struct qed_dev *cdev, struct qed_chain *p_chain) in qed_chain_alloc_single() argument
4770 qed_chain_init_mem(p_chain, p_virt, p_phys); in qed_chain_alloc_single()
4771 qed_chain_reset(p_chain); in qed_chain_alloc_single()
4778 struct qed_chain *p_chain, in qed_chain_alloc_pbl() argument
4781 u32 page_cnt = p_chain->page_cnt, size, i; in qed_chain_alloc_pbl()
4806 p_chain->b_external_pbl = true; in qed_chain_alloc_pbl()
4809 qed_chain_init_pbl_mem(p_chain, p_pbl_virt, p_pbl_phys, in qed_chain_alloc_pbl()
4822 qed_chain_init_mem(p_chain, p_virt, p_phys); in qed_chain_alloc_pbl()
4823 qed_chain_reset(p_chain); in qed_chain_alloc_pbl()
4829 p_chain->pbl.pp_virt_addr_tbl[i] = p_virt; in qed_chain_alloc_pbl()
4843 struct qed_chain *p_chain, in qed_chain_alloc() argument
4864 qed_chain_init_params(p_chain, page_cnt, (u8) elem_size, intended_use, in qed_chain_alloc()
4869 rc = qed_chain_alloc_next_ptr(cdev, p_chain); in qed_chain_alloc()
4872 rc = qed_chain_alloc_single(cdev, p_chain); in qed_chain_alloc()
4875 rc = qed_chain_alloc_pbl(cdev, p_chain, ext_pbl); in qed_chain_alloc()
4884 qed_chain_free(cdev, p_chain); in qed_chain_alloc()