Home
last modified time | relevance | path

Searched refs:sgl (Results 1 – 25 of 311) sorted by relevance

12345678910>>...13

/linux/drivers/misc/genwqe/
H A Dcard_utils.c291 int genwqe_alloc_sync_sgl(struct genwqe_dev *cd, struct genwqe_sgl *sgl, in genwqe_alloc_sync_sgl() argument
297 sgl->fpage_offs = offset_in_page((unsigned long)user_addr); in genwqe_alloc_sync_sgl()
298 sgl->fpage_size = min_t(size_t, PAGE_SIZE-sgl->fpage_offs, user_size); in genwqe_alloc_sync_sgl()
299 sgl->nr_pages = DIV_ROUND_UP(sgl->fpage_offs + user_size, PAGE_SIZE); in genwqe_alloc_sync_sgl()
300 sgl->lpage_size = (user_size - sgl->fpage_size) % PAGE_SIZE; in genwqe_alloc_sync_sgl()
303 __func__, user_addr, user_size, sgl->nr_pages, in genwqe_alloc_sync_sgl()
304 sgl->fpage_offs, sgl->fpage_size, sgl->lpage_size); in genwqe_alloc_sync_sgl()
306 sgl->user_addr = user_addr; in genwqe_alloc_sync_sgl()
307 sgl->user_size = user_size; in genwqe_alloc_sync_sgl()
308 sgl->write = write; in genwqe_alloc_sync_sgl()
[all …]
/linux/drivers/dma-buf/
H A Ddma-buf-mapping.c9 static struct scatterlist *fill_sg_entry(struct scatterlist *sgl, size_t length, in fill_sg_entry() argument
26 sg_set_page(sgl, NULL, 0, 0); in fill_sg_entry()
27 sg_dma_address(sgl) = addr + (dma_addr_t)i * UINT_MAX; in fill_sg_entry()
28 sg_dma_len(sgl) = len; in fill_sg_entry()
29 sgl = sg_next(sgl); in fill_sg_entry()
32 return sgl; in fill_sg_entry()
100 struct scatterlist *sgl; in dma_buf_phys_vec_to_sgt() local
140 sgl = dma->sgt.sgl; in dma_buf_phys_vec_to_sgt()
165 sgl = fill_sg_entry(sgl, phys_vec[i].len, addr); in dma_buf_phys_vec_to_sgt()
174 sgl = fill_sg_entry(sgl, mapped_len, dma->state->addr); in dma_buf_phys_vec_to_sgt()
[all …]
/linux/drivers/crypto/hisilicon/
H A Dsgl.c37 struct hisi_acc_hw_sgl *sgl; member
92 block[i].sgl = dma_alloc_coherent(dev, block_size, in hisi_acc_create_sgl_pool()
95 if (!block[i].sgl) { in hisi_acc_create_sgl_pool()
104 block[i].sgl = dma_alloc_coherent(dev, remain_sgl * sgl_size, in hisi_acc_create_sgl_pool()
107 if (!block[i].sgl) { in hisi_acc_create_sgl_pool()
125 dma_free_coherent(dev, block_size, block[j].sgl, in hisi_acc_create_sgl_pool()
151 dma_free_coherent(dev, block[i].size, block[i].sgl, in hisi_acc_free_sgl_pool()
169 return (void *)block[block_index].sgl + pool->sgl_size * offset; in acc_get_sgl()
172 static void sg_map_to_hw_sg(struct scatterlist *sgl, in sg_map_to_hw_sg() argument
175 hw_sge->buf = sg_dma_address(sgl); in sg_map_to_hw_sg()
[all …]
/linux/lib/
H A Dscatterlist.c82 int sg_nents_for_dma(struct scatterlist *sgl, unsigned int sglen, size_t len) in sg_nents_for_dma() argument
87 for_each_sg(sgl, sg, sglen, i) in sg_nents_for_dma()
107 struct scatterlist *sg_last(struct scatterlist *sgl, unsigned int nents) in sg_last() argument
112 for_each_sg(sgl, sg, nents, i) in sg_last()
130 void sg_init_table(struct scatterlist *sgl, unsigned int nents) in sg_init_table() argument
132 memset(sgl, 0, sizeof(*sgl) * nents); in sg_init_table()
133 sg_init_marker(sgl, nents); in sg_init_table()
202 struct scatterlist *sgl, *next; in __sg_free_table() local
205 if (unlikely(!table->sgl)) in __sg_free_table()
208 sgl = table->sgl; in __sg_free_table()
[all …]
/linux/drivers/gpu/drm/nouveau/nvkm/core/
H A Dfirmware.c121 case NVKM_FIRMWARE_IMG_DMA: return &fw->mem.sgl; in nvkm_firmware_mem_sgl()
122 case NVKM_FIRMWARE_IMG_SGT: return fw->mem.sgt.sgl; in nvkm_firmware_mem_sgl()
139 .sgl = nvkm_firmware_mem_sgl(memory), in nvkm_firmware_mem_map()
142 if (!map.sgl) in nvkm_firmware_mem_map()
151 struct scatterlist *sgl = nvkm_firmware_mem_sgl(memory); in nvkm_firmware_mem_size() local
153 return sgl ? sg_dma_len(sgl) : 0; in nvkm_firmware_mem_size()
208 dma_free_noncoherent(fw->device->dev, sg_dma_len(&fw->mem.sgl), in nvkm_firmware_dtor()
251 sg_init_one(&fw->mem.sgl, fw->img, len); in nvkm_firmware_ctor()
252 sg_dma_address(&fw->mem.sgl) = fw->phys; in nvkm_firmware_ctor()
253 sg_dma_len(&fw->mem.sgl) = len; in nvkm_firmware_ctor()
[all …]
/linux/drivers/target/iscsi/cxgbit/
H A Dcxgbit_ddp.c133 struct scatterlist *sg = ttinfo->sgl; in cxgbit_ddp_set_map()
176 struct scatterlist *sgl = ttinfo->sgl; in cxgbit_ddp_reserve() local
178 unsigned int sg_offset = sgl->offset; in cxgbit_ddp_reserve()
188 if (cxgbit_ddp_sgl_check(sgl, sgcnt) < 0) in cxgbit_ddp_reserve()
191 ttinfo->nr_pages = (xferlen + sgl->offset + in cxgbit_ddp_reserve()
203 sgl->offset = 0; in cxgbit_ddp_reserve()
204 ret = dma_map_sg(&ppm->pdev->dev, sgl, sgcnt, DMA_FROM_DEVICE); in cxgbit_ddp_reserve()
205 sgl->offset = sg_offset; in cxgbit_ddp_reserve()
212 cxgbi_ppm_make_ppod_hdr(ppm, ttinfo->tag, csk->tid, sgl->offset, in cxgbit_ddp_reserve()
218 dma_unmap_sg(&ppm->pdev->dev, sgl, sgcnt, DMA_FROM_DEVICE); in cxgbit_ddp_reserve()
[all …]
/linux/kernel/dma/
H A Ddirect.h24 int dma_direct_map_sg(struct device *dev, struct scatterlist *sgl, int nents,
31 void dma_direct_sync_sg_for_device(struct device *dev, struct scatterlist *sgl,
35 struct scatterlist *sgl, int nents, enum dma_data_direction dir) in dma_direct_sync_sg_for_device() argument
43 void dma_direct_unmap_sg(struct device *dev, struct scatterlist *sgl,
46 struct scatterlist *sgl, int nents, enum dma_data_direction dir);
49 struct scatterlist *sgl, int nents, enum dma_data_direction dir, in dma_direct_unmap_sg() argument
54 struct scatterlist *sgl, int nents, enum dma_data_direction dir) in dma_direct_sync_sg_for_cpu() argument
/linux/tools/virtio/linux/
H A Dscatterlist.h92 struct scatterlist *sgl) in sg_chain() argument
104 prv[prv_nents - 1].page_link = ((unsigned long) sgl | 0x01) & ~0x02; in sg_chain()
150 static inline void sg_init_table(struct scatterlist *sgl, unsigned int nents) in sg_init_table() argument
152 memset(sgl, 0, sizeof(*sgl) * nents); in sg_init_table()
153 sg_mark_end(&sgl[nents - 1]); in sg_init_table()
/linux/include/trace/events/
H A Ddma.h185 for_each_sg(sgt->sgl, sg, sgt->orig_nents, i)
187 __entry->dma_addr = sg_dma_address(sgt->sgl);
265 for_each_sg(sgt->sgl, sg, sgt->orig_nents, i)
267 __entry->dma_addr = sg_dma_address(sgt->sgl);
285 TP_PROTO(struct device *dev, struct scatterlist *sgl, int nents,
287 TP_ARGS(dev, sgl, nents, ents, dir, attrs),
311 for_each_sg(sgl, sg, traced_nents, i)
313 for_each_sg(sgl, sg, traced_ents, i) {
342 TP_PROTO(struct device *dev, struct scatterlist *sgl, int nents,
344 TP_ARGS(dev, sgl, nents, err, dir, attrs),
[all …]
/linux/drivers/vfio/pci/pds/
H A Dcmds.c206 struct pds_lm_sg_elem *sgl, *sge; in pds_vfio_dma_map_lm_file() local
225 sgl = kzalloc(sgl_size, GFP_KERNEL); in pds_vfio_dma_map_lm_file()
226 if (!sgl) { in pds_vfio_dma_map_lm_file()
232 sge = sgl; in pds_vfio_dma_map_lm_file()
240 sgl_addr = dma_map_single(dev, sgl, sgl_size, DMA_TO_DEVICE); in pds_vfio_dma_map_lm_file()
246 lm_file->sgl = sgl; in pds_vfio_dma_map_lm_file()
252 kfree(sgl); in pds_vfio_dma_map_lm_file()
267 if (lm_file->sgl) { in pds_vfio_dma_unmap_lm_file()
269 lm_file->num_sge * sizeof(*lm_file->sgl), in pds_vfio_dma_unmap_lm_file()
271 kfree(lm_file->sgl); in pds_vfio_dma_unmap_lm_file()
[all …]
H A Ddirty.c119 kfree(region->sgl); in __pds_vfio_dirty_free_sgl()
122 region->sgl = NULL; in __pds_vfio_dirty_free_sgl()
136 if (region->sgl) in pds_vfio_dirty_free_sgl()
147 struct pds_lm_sg_elem *sgl; in pds_vfio_dirty_alloc_sgl() local
155 sgl = kzalloc(sgl_size, GFP_KERNEL); in pds_vfio_dirty_alloc_sgl()
156 if (!sgl) in pds_vfio_dirty_alloc_sgl()
159 sgl_addr = dma_map_single(pdsc_dev, sgl, sgl_size, DMA_BIDIRECTIONAL); in pds_vfio_dirty_alloc_sgl()
161 kfree(sgl); in pds_vfio_dirty_alloc_sgl()
165 region->sgl = sgl; in pds_vfio_dirty_alloc_sgl()
425 struct pds_lm_sg_elem *sg_elem = &region->sgl[i]; in pds_vfio_dirty_seq_ack()
/linux/drivers/media/platform/
H A Dm2m-deinterlace.c241 ctx->xt->sgl[0].size = s_width; in deinterlace_issue_dma()
242 ctx->xt->sgl[0].icg = s_width; in deinterlace_issue_dma()
248 ctx->xt->sgl[0].size = s_width; in deinterlace_issue_dma()
249 ctx->xt->sgl[0].icg = s_width; in deinterlace_issue_dma()
255 ctx->xt->sgl[0].size = s_width / 2; in deinterlace_issue_dma()
256 ctx->xt->sgl[0].icg = s_width / 2; in deinterlace_issue_dma()
262 ctx->xt->sgl[0].size = s_width / 2; in deinterlace_issue_dma()
263 ctx->xt->sgl[0].icg = s_width / 2; in deinterlace_issue_dma()
269 ctx->xt->sgl[0].size = s_width / 2; in deinterlace_issue_dma()
270 ctx->xt->sgl[0].icg = s_width / 2; in deinterlace_issue_dma()
[all …]
/linux/drivers/xen/
H A Dswiotlb-xen.c354 xen_swiotlb_unmap_sg(struct device *hwdev, struct scatterlist *sgl, int nelems, in xen_swiotlb_unmap_sg() argument
362 for_each_sg(sgl, sg, nelems, i) in xen_swiotlb_unmap_sg()
369 xen_swiotlb_map_sg(struct device *dev, struct scatterlist *sgl, int nelems, in xen_swiotlb_map_sg() argument
377 for_each_sg(sgl, sg, nelems, i) { in xen_swiotlb_map_sg()
387 xen_swiotlb_unmap_sg(dev, sgl, i, dir, attrs | DMA_ATTR_SKIP_CPU_SYNC); in xen_swiotlb_map_sg()
388 sg_dma_len(sgl) = 0; in xen_swiotlb_map_sg()
393 xen_swiotlb_sync_sg_for_cpu(struct device *dev, struct scatterlist *sgl, in xen_swiotlb_sync_sg_for_cpu() argument
399 for_each_sg(sgl, sg, nelems, i) { in xen_swiotlb_sync_sg_for_cpu()
406 xen_swiotlb_sync_sg_for_device(struct device *dev, struct scatterlist *sgl, in xen_swiotlb_sync_sg_for_device() argument
412 for_each_sg(sgl, sg, nelems, i) { in xen_swiotlb_sync_sg_for_device()
/linux/drivers/mtd/nand/
H A Dqpic_common.c152 struct scatterlist *sgl; in qcom_prepare_bam_async_desc() local
164 sgl = &bam_txn->cmd_sgl[bam_txn->cmd_sgl_start]; in qcom_prepare_bam_async_desc()
170 sgl = &bam_txn->data_sgl[bam_txn->tx_sgl_start]; in qcom_prepare_bam_async_desc()
176 sgl = &bam_txn->data_sgl[bam_txn->rx_sgl_start]; in qcom_prepare_bam_async_desc()
183 sg_mark_end(sgl + sgl_cnt - 1); in qcom_prepare_bam_async_desc()
184 ret = dma_map_sg(nandc->dev, sgl, sgl_cnt, desc->dir); in qcom_prepare_bam_async_desc()
192 desc->bam_sgl = sgl; in qcom_prepare_bam_async_desc()
194 dma_desc = dmaengine_prep_slave_sg(chan, sgl, sgl_cnt, dir_eng, in qcom_prepare_bam_async_desc()
199 dma_unmap_sg(nandc->dev, sgl, sgl_cnt, desc->dir); in qcom_prepare_bam_async_desc()
364 struct scatterlist *sgl; in qcom_prep_adm_dma_desc() local
[all …]
/linux/drivers/net/ethernet/intel/ixgbe/
H A Dixgbe_fcoe.c29 ddp->sgl = NULL; in ixgbe_fcoe_clear_ddp()
110 if (ddp->sgl) in ixgbe_fcoe_ddp_put()
111 dma_unmap_sg(&adapter->pdev->dev, ddp->sgl, ddp->sgc, in ixgbe_fcoe_ddp_put()
134 struct scatterlist *sgl, unsigned int sgc, in ixgbe_fcoe_ddp_setup() argument
153 if (!netdev || !sgl) in ixgbe_fcoe_ddp_setup()
169 if (ddp->sgl) { in ixgbe_fcoe_ddp_setup()
171 xid, ddp->sgl, ddp->sgc); in ixgbe_fcoe_ddp_setup()
189 dmacount = dma_map_sg(&adapter->pdev->dev, sgl, sgc, DMA_FROM_DEVICE); in ixgbe_fcoe_ddp_setup()
202 ddp->sgl = sgl; in ixgbe_fcoe_ddp_setup()
206 for_each_sg(sgl, sg, dmacount, i) { in ixgbe_fcoe_ddp_setup()
[all …]
/linux/fs/smb/smbdirect/
H A Dmr.c51 mr->sgt.sgl = kzalloc_objs(struct scatterlist, sp->max_frmr_depth); in smbdirect_connection_create_mr_list()
52 if (!mr->sgt.sgl) { in smbdirect_connection_create_mr_list()
90 ib_dma_unmap_sg(sc->ib.dev, mr->sgt.sgl, mr->sgt.nents, mr->dir); in smbdirect_mr_io_disable_locked()
91 kfree(mr->sgt.sgl); in smbdirect_mr_io_disable_locked()
94 mr->sgt.sgl = NULL; in smbdirect_mr_io_disable_locked()
247 memset(sgt->sgl, 0, max_sg * sizeof(struct scatterlist)); in smbdirect_iter_to_sgt()
252 sg_mark_end(&sgt->sgl[sgt->nents - 1]); in smbdirect_iter_to_sgt()
303 num_mapped = ib_dma_map_sg(sc->ib.dev, mr->sgt.sgl, mr->sgt.nents, mr->dir); in smbdirect_connection_register_mr_io()
312 ret = ib_map_mr_sg(mr->mr, mr->sgt.sgl, num_mapped, NULL, PAGE_SIZE); in smbdirect_connection_register_mr_io()
357 ib_dma_unmap_sg(sc->ib.dev, mr->sgt.sgl, mr->sgt.nents, mr->dir); in smbdirect_connection_register_mr_io()
[all …]
/linux/drivers/iio/buffer/
H A Dindustrialio-buffer-dmaengine.c66 struct scatterlist *sgl; in iio_dmaengine_buffer_submit_block() local
83 sgl = block->sg_table->sgl; in iio_dmaengine_buffer_submit_block()
84 nents = sg_nents_for_len(sgl, block->bytes_used); in iio_dmaengine_buffer_submit_block()
95 vecs[i].addr = sg_dma_address(sgl); in iio_dmaengine_buffer_submit_block()
96 vecs[i].len = min(sg_dma_len(sgl), len_total); in iio_dmaengine_buffer_submit_block()
99 sgl = sg_next(sgl); in iio_dmaengine_buffer_submit_block()
/linux/drivers/scsi/esas2r/
H A Desas2r_io.c224 struct esas2r_mem_desc *sgl; in esas2r_build_sg_list_sge() local
231 sgl = esas2r_alloc_sgl(a); in esas2r_build_sg_list_sge()
233 if (unlikely(sgl == NULL)) in esas2r_build_sg_list_sge()
244 memcpy(sgl->virt_addr, sgc->sge.a64.last, sgelen); in esas2r_build_sg_list_sge()
248 (struct atto_vda_sge *)((u8 *)sgl->virt_addr + in esas2r_build_sg_list_sge()
253 (struct atto_vda_sge *)((u8 *)sgl->virt_addr in esas2r_build_sg_list_sge()
260 cpu_to_le64(sgl->phys_addr); in esas2r_build_sg_list_sge()
302 list_add(&sgl->next_desc, &rq->sg_table_head); in esas2r_build_sg_list_sge()
376 struct esas2r_mem_desc *sgl; in esas2r_build_prd_iblk() local
449 sgl = esas2r_alloc_sgl(a); in esas2r_build_prd_iblk()
[all …]
/linux/drivers/gpu/drm/i915/
H A Di915_scatterlist.h31 } __sgt_iter(struct scatterlist *sgl, bool dma) { in __sgt_iter() argument
32 struct sgt_iter s = { .sgp = sgl }; in __sgt_iter()
90 for ((__iter) = __sgt_iter((__sgt)->sgl, true); \
112 for ((__iter) = __sgt_iter((__sgt)->sgl, false); \
225 rsgt->table.sgl = NULL; in __i915_refct_sgt_init()
/linux/drivers/scsi/qedf/
H A Ddrv_scsi_fw_funcs.c34 val = cpu_to_le32(sgl_task_params->sgl[sge_index].sge_addr.lo); in init_scsi_sgl_context()
36 val = cpu_to_le32(sgl_task_params->sgl[sge_index].sge_addr.hi); in init_scsi_sgl_context()
38 val = cpu_to_le32(sgl_task_params->sgl[sge_index].sge_len); in init_scsi_sgl_context()
/linux/drivers/tty/serial/8250/
H A D8250_dma.c93 struct scatterlist sgl[2]; in serial8250_tx_dma() local
115 sg_init_table(sgl, ARRAY_SIZE(sgl)); in serial8250_tx_dma()
117 ret = kfifo_dma_out_prepare_mapped(&tport->xmit_fifo, sgl, ARRAY_SIZE(sgl), in serial8250_tx_dma()
122 for_each_sg(sgl, sg, ret, i) in serial8250_tx_dma()
125 desc = dmaengine_prep_slave_sg(dma->txchan, sgl, ret, in serial8250_tx_dma()
/linux/drivers/dma/
H A Dmilbeaut-hdmac.c61 struct scatterlist *sgl; member
122 sg = &md->sgl[md->sg_cur]; in milbeaut_chan_start()
256 milbeaut_hdmac_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl, in milbeaut_hdmac_prep_slave_sg() argument
272 md->sgl = kzalloc_objs(*sgl, sg_len, GFP_NOWAIT); in milbeaut_hdmac_prep_slave_sg()
273 if (!md->sgl) { in milbeaut_hdmac_prep_slave_sg()
279 md->sgl[i] = sgl[i]; in milbeaut_hdmac_prep_slave_sg()
350 sg = &md->sgl[md->sg_cur]; in milbeaut_hdmac_tx_status()
372 txstate->residue += sg_dma_len(&md->sgl[i]); in milbeaut_hdmac_tx_status()
398 kfree(md->sgl); in milbeaut_hdmac_desc_free()
/linux/drivers/dma/sh/
H A Dshdma-base.c574 struct scatterlist *sgl, unsigned int sg_len, dma_addr_t *addr, in shdma_prep_sg() argument
584 chunks = sg_nents_for_dma(sgl, sg_len, schan->max_xfer_len); in shdma_prep_sg()
600 for_each_sg(sgl, sg, sg_len, i) { in shdma_prep_sg()
674 struct dma_chan *chan, struct scatterlist *sgl, unsigned int sg_len, in shdma_prep_slave_sg() argument
697 return shdma_prep_sg(schan, sgl, sg_len, &slave_addr, in shdma_prep_slave_sg()
715 struct scatterlist *sgl; in shdma_prep_dma_cyclic() local
743 sgl = kmalloc_objs(*sgl, sg_len); in shdma_prep_dma_cyclic()
744 if (!sgl) in shdma_prep_dma_cyclic()
747 sg_init_table(sgl, sg_len); in shdma_prep_dma_cyclic()
752 sg_set_page(&sgl[i], pfn_to_page(PFN_DOWN(src)), period_len, in shdma_prep_dma_cyclic()
[all …]
/linux/arch/sparc/mm/
H A Diommu.c251 static int __sbus_iommu_map_sg(struct device *dev, struct scatterlist *sgl, in __sbus_iommu_map_sg() argument
258 for_each_sg(sgl, sg, nents, j) { in __sbus_iommu_map_sg()
269 static int sbus_iommu_map_sg_gflush(struct device *dev, struct scatterlist *sgl, in sbus_iommu_map_sg_gflush() argument
273 return __sbus_iommu_map_sg(dev, sgl, nents, dir, attrs, false); in sbus_iommu_map_sg_gflush()
276 static int sbus_iommu_map_sg_pflush(struct device *dev, struct scatterlist *sgl, in sbus_iommu_map_sg_pflush() argument
279 return __sbus_iommu_map_sg(dev, sgl, nents, dir, attrs, true); in sbus_iommu_map_sg_pflush()
301 static void sbus_iommu_unmap_sg(struct device *dev, struct scatterlist *sgl, in sbus_iommu_unmap_sg() argument
307 for_each_sg(sgl, sg, nents, i) { in sbus_iommu_unmap_sg()
/linux/drivers/scsi/elx/efct/
H A Defct_scsi.c202 struct efct_scsi_sgl *sgl, u32 sgl_count, in efct_scsi_build_sgls() argument
218 rc = efct_hw_io_add_sge(hw, hio, sgl[i].addr, sgl[i].len); in efct_scsi_build_sgls()
240 n_sge = (hio->sgl == &hio->def_sgl) ? hio->n_sge : hio->def_sgl_count; in efc_log_sgl()
303 io->sgl, io->sgl_count, io->hio_type); in efct_scsi_io_dispatch_hw_io()
619 struct efct_scsi_sgl *sgl, u32 sgl_count, u64 xwire_len, in efct_scsi_xfer_data() argument
672 struct efct_scsi_sgl *sgl_ptr = &io->sgl[sgl_count - 1]; in efct_scsi_xfer_data()
712 struct efct_scsi_sgl *sgl, u32 sgl_count, u64 len, in efct_scsi_send_rd_data() argument
715 return efct_scsi_xfer_data(io, flags, sgl, sgl_count, in efct_scsi_send_rd_data()
722 struct efct_scsi_sgl *sgl, u32 sgl_count, u64 len, in efct_scsi_recv_wr_data() argument
725 return efct_scsi_xfer_data(io, flags, sgl, sgl_count, len, in efct_scsi_recv_wr_data()
[all …]

12345678910>>...13