Lines Matching refs:rdev
55 return (is_t4(dev->rdev.lldi.adapter_type) || in mr_exceeds_hw_limits()
56 is_t5(dev->rdev.lldi.adapter_type)) && in mr_exceeds_hw_limits()
60 static int _c4iw_write_mem_dma_aligned(struct c4iw_rdev *rdev, u32 addr, in _c4iw_write_mem_dma_aligned() argument
100 ret = c4iw_ofld_send(rdev, skb); in _c4iw_write_mem_dma_aligned()
104 ret = c4iw_wait_for_reply(rdev, &wr_wait, 0, 0, __func__); in _c4iw_write_mem_dma_aligned()
108 static int _c4iw_write_mem_inline(struct c4iw_rdev *rdev, u32 addr, u32 len, in _c4iw_write_mem_inline() argument
119 if (is_t4(rdev->lldi.adapter_type)) in _c4iw_write_mem_inline()
173 ret = c4iw_ofld_send(rdev, skb); in _c4iw_write_mem_inline()
179 ret = c4iw_wait_for_reply(rdev, &wr_wait, 0, 0, __func__); in _c4iw_write_mem_inline()
183 static int _c4iw_write_mem_dma(struct c4iw_rdev *rdev, u32 addr, u32 len, void *data) in _c4iw_write_mem_dma() argument
191 daddr = dma_map_single(&rdev->lldi.pdev->dev, data, len, DMA_TO_DEVICE); in _c4iw_write_mem_dma()
192 if (dma_mapping_error(&rdev->lldi.pdev->dev, daddr)) in _c4iw_write_mem_dma()
205 ret = _c4iw_write_mem_dma_aligned(rdev, addr, dmalen, daddr, in _c4iw_write_mem_dma()
214 ret = _c4iw_write_mem_inline(rdev, addr, remain, data); in _c4iw_write_mem_dma()
216 dma_unmap_single(&rdev->lldi.pdev->dev, save, len, DMA_TO_DEVICE); in _c4iw_write_mem_dma()
224 static int write_adapter_mem(struct c4iw_rdev *rdev, u32 addr, u32 len, in write_adapter_mem() argument
227 if (is_t5(rdev->lldi.adapter_type) && use_dsgl) { in write_adapter_mem()
229 if (_c4iw_write_mem_dma(rdev, addr, len, data)) { in write_adapter_mem()
233 pci_name(rdev->lldi.pdev)); in write_adapter_mem()
234 return _c4iw_write_mem_inline(rdev, addr, len, in write_adapter_mem()
239 return _c4iw_write_mem_inline(rdev, addr, len, data); in write_adapter_mem()
241 return _c4iw_write_mem_inline(rdev, addr, len, data); in write_adapter_mem()
250 static int write_tpt_entry(struct c4iw_rdev *rdev, u32 reset_tpt_entry, in write_tpt_entry() argument
261 if (c4iw_fatal_error(rdev)) in write_tpt_entry()
268 stag_idx = c4iw_get_resource(&rdev->resource.tpt_table); in write_tpt_entry()
270 mutex_lock(&rdev->stats.lock); in write_tpt_entry()
271 rdev->stats.stag.fail++; in write_tpt_entry()
272 mutex_unlock(&rdev->stats.lock); in write_tpt_entry()
275 mutex_lock(&rdev->stats.lock); in write_tpt_entry()
276 rdev->stats.stag.cur += 32; in write_tpt_entry()
277 if (rdev->stats.stag.cur > rdev->stats.stag.max) in write_tpt_entry()
278 rdev->stats.stag.max = rdev->stats.stag.cur; in write_tpt_entry()
279 mutex_unlock(&rdev->stats.lock); in write_tpt_entry()
299 FW_RI_TPTE_PBLADDR_V(PBL_OFF(rdev, pbl_addr)>>3)); in write_tpt_entry()
306 err = write_adapter_mem(rdev, stag_idx + in write_tpt_entry()
307 (rdev->lldi.vr->stag.start >> 5), in write_tpt_entry()
311 c4iw_put_resource(&rdev->resource.tpt_table, stag_idx); in write_tpt_entry()
312 mutex_lock(&rdev->stats.lock); in write_tpt_entry()
313 rdev->stats.stag.cur -= 32; in write_tpt_entry()
314 mutex_unlock(&rdev->stats.lock); in write_tpt_entry()
319 static int write_pbl(struct c4iw_rdev *rdev, __be64 *pbl, in write_pbl() argument
325 __func__, pbl_addr, rdev->lldi.vr->pbl.start, in write_pbl()
328 err = write_adapter_mem(rdev, pbl_addr >> 5, pbl_size << 3, pbl); in write_pbl()
332 static int dereg_mem(struct c4iw_rdev *rdev, u32 stag, u32 pbl_size, in dereg_mem() argument
335 return write_tpt_entry(rdev, 1, &stag, 0, 0, 0, 0, 0, 0, 0UL, 0, 0, in dereg_mem()
339 static int allocate_window(struct c4iw_rdev *rdev, u32 * stag, u32 pdid) in allocate_window() argument
342 return write_tpt_entry(rdev, 0, stag, 0, pdid, FW_RI_STAG_MW, 0, 0, 0, in allocate_window()
346 static int deallocate_window(struct c4iw_rdev *rdev, u32 stag) in deallocate_window() argument
348 return write_tpt_entry(rdev, 1, &stag, 0, 0, 0, 0, 0, 0, 0UL, 0, 0, 0, in deallocate_window()
352 static int allocate_stag(struct c4iw_rdev *rdev, u32 *stag, u32 pdid, in allocate_stag() argument
356 return write_tpt_entry(rdev, 0, stag, 0, pdid, FW_RI_STAG_NSMR, 0, 0, 0, in allocate_stag()
378 ret = write_tpt_entry(&rhp->rdev, 0, &stag, 1, mhp->attr.pdid, in register_mem()
390 dereg_mem(&rhp->rdev, mhp->attr.stag, mhp->attr.pbl_size, in register_mem()
405 ret = write_tpt_entry(&rhp->rdev, 0, &stag, 1, mhp->attr.pdid, in reregister_mem()
415 dereg_mem(&rhp->rdev, mhp->attr.stag, mhp->attr.pbl_size, in reregister_mem()
423 mhp->attr.pbl_addr = c4iw_pblpool_alloc(&mhp->rhp->rdev, in alloc_pbl()
625 ret = write_pbl(&mhp->rhp->rdev, page_list, mhp->attr.pbl_addr, in c4iw_register_phys_mem()
647 c4iw_pblpool_free(&mhp->rhp->rdev, mhp->attr.pbl_addr, in c4iw_register_phys_mem()
682 ret = write_tpt_entry(&rhp->rdev, 0, &stag, 1, php->pdid, in c4iw_get_dma_mr()
693 dereg_mem(&rhp->rdev, mhp->attr.stag, mhp->attr.pbl_size, in c4iw_get_dma_mr()
760 err = write_pbl(&mhp->rhp->rdev, in c4iw_reg_user_mr()
772 err = write_pbl(&mhp->rhp->rdev, pages, in c4iw_reg_user_mr()
794 c4iw_pblpool_free(&mhp->rhp->rdev, mhp->attr.pbl_addr, in c4iw_reg_user_mr()
820 ret = allocate_window(&rhp->rdev, &stag, php->pdid); in c4iw_alloc_mw()
832 deallocate_window(&rhp->rdev, mhp->attr.stag); in c4iw_alloc_mw()
850 deallocate_window(&rhp->rdev, mhp->attr.stag); in c4iw_dealloc_mw()
880 mhp->mpl = dma_alloc_coherent(&rhp->rdev.lldi.pdev->dev, in c4iw_alloc_mr()
893 ret = allocate_stag(&rhp->rdev, &stag, php->pdid, in c4iw_alloc_mr()
911 dereg_mem(&rhp->rdev, stag, mhp->attr.pbl_size, in c4iw_alloc_mr()
914 c4iw_pblpool_free(&mhp->rhp->rdev, mhp->attr.pbl_addr, in c4iw_alloc_mr()
917 dma_free_coherent(&mhp->rhp->rdev.lldi.pdev->dev, in c4iw_alloc_mr()
964 dma_free_coherent(&mhp->rhp->rdev.lldi.pdev->dev, in c4iw_dereg_mr()
966 dereg_mem(&rhp->rdev, mhp->attr.stag, mhp->attr.pbl_size, in c4iw_dereg_mr()
969 c4iw_pblpool_free(&mhp->rhp->rdev, mhp->attr.pbl_addr, in c4iw_dereg_mr()