| /linux/drivers/misc/genwqe/ |
| H A D | card_utils.c | 291 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 D | dma-buf-mapping.c | 9 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/crypto/ |
| H A D | af_alg.c | 538 sg_unmark_end(sgl_prev->sgt.sgl + sgl_prev->sgt.nents - 1); in af_alg_link_sg() 539 sg_chain(sgl_prev->sgt.sgl, sgl_prev->sgt.nents + 1, sgl_new->sgt.sgl); in af_alg_link_sg() 542 void af_alg_free_sg(struct af_alg_sgl *sgl) in af_alg_free_sg() argument 546 if (sgl->sgt.sgl) { in af_alg_free_sg() 547 if (sgl->need_unpin) in af_alg_free_sg() 548 for (i = 0; i < sgl->sgt.nents; i++) in af_alg_free_sg() 549 unpin_user_page(sg_page(&sgl->sgt.sgl[i])); in af_alg_free_sg() 550 if (sgl->sgt.sgl != sgl->sgl) in af_alg_free_sg() 551 kvfree(sgl->sgt.sgl); in af_alg_free_sg() 552 sgl->sgt.sgl = NULL; in af_alg_free_sg() [all …]
|
| H A D | algif_hash.c | 20 struct af_alg_sgl sgl; member 106 ctx->sgl.sgt.sgl = ctx->sgl.sgl; in hash_sendmsg() 107 ctx->sgl.sgt.nents = 0; in hash_sendmsg() 108 ctx->sgl.sgt.orig_nents = 0; in hash_sendmsg() 115 sg_init_table(ctx->sgl.sgl, npages); in hash_sendmsg() 117 ctx->sgl.need_unpin = iov_iter_extract_will_pin(&msg->msg_iter); in hash_sendmsg() 120 &ctx->sgl.sgt, npages, 0); in hash_sendmsg() 124 sg_mark_end(ctx->sgl.sgt.sgl + ctx->sgl.sgt.nents - 1); in hash_sendmsg() 132 ahash_request_set_crypt(&ctx->req, ctx->sgl.sgt.sgl, in hash_sendmsg() 160 af_alg_free_sg(&ctx->sgl); in hash_sendmsg() [all …]
|
| /linux/drivers/crypto/hisilicon/ |
| H A D | sgl.c | 37 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/drivers/gpu/drm/nouveau/nvkm/core/ |
| H A D | firmware.c | 121 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 D | cxgbit_ddp.c | 133 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/tools/virtio/linux/ |
| H A D | scatterlist.h | 92 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/drivers/spi/ |
| H A D | spi-bcm2835.c | 497 if (bs->tx_buf && !sg_is_last(&tfr->tx_sg.sgl[0])) in bcm2835_spi_transfer_prologue() 498 bs->tx_prologue = sg_dma_len(&tfr->tx_sg.sgl[0]) & 3; in bcm2835_spi_transfer_prologue() 500 if (bs->rx_buf && !sg_is_last(&tfr->rx_sg.sgl[0])) { in bcm2835_spi_transfer_prologue() 501 bs->rx_prologue = sg_dma_len(&tfr->rx_sg.sgl[0]) & 3; in bcm2835_spi_transfer_prologue() 504 if (!bs->tx_buf || sg_is_last(&tfr->tx_sg.sgl[0])) { in bcm2835_spi_transfer_prologue() 509 !(sg_dma_len(&tfr->tx_sg.sgl[0]) & ~3); in bcm2835_spi_transfer_prologue() 531 sg_dma_address(&tfr->rx_sg.sgl[0]), in bcm2835_spi_transfer_prologue() 534 sg_dma_address(&tfr->rx_sg.sgl[0]) += bs->rx_prologue; in bcm2835_spi_transfer_prologue() 535 sg_dma_len(&tfr->rx_sg.sgl[0]) -= bs->rx_prologue; in bcm2835_spi_transfer_prologue() 557 sg_dma_address(&tfr->tx_sg.sgl[0]) += bs->tx_prologue; in bcm2835_spi_transfer_prologue() [all …]
|
| /linux/include/trace/events/ |
| H A D | dma.h | 184 for_each_sg(sgt->sgl, sg, sgt->orig_nents, i) 186 __entry->dma_addr = sg_dma_address(sgt->sgl); 264 for_each_sg(sgt->sgl, sg, sgt->orig_nents, i) 266 __entry->dma_addr = sg_dma_address(sgt->sgl); 284 TP_PROTO(struct device *dev, struct scatterlist *sgl, int nents, 286 TP_ARGS(dev, sgl, nents, ents, dir, attrs), 310 for_each_sg(sgl, sg, traced_nents, i) 312 for_each_sg(sgl, sg, traced_ents, i) { 341 TP_PROTO(struct device *dev, struct scatterlist *sgl, int nents, 343 TP_ARGS(dev, sgl, nents, err, dir, attrs), [all …]
|
| /linux/kernel/dma/ |
| H A D | direct.h | 21 int dma_direct_map_sg(struct device *dev, struct scatterlist *sgl, int nents, 28 void dma_direct_sync_sg_for_device(struct device *dev, struct scatterlist *sgl, 32 struct scatterlist *sgl, int nents, enum dma_data_direction dir) in dma_direct_sync_sg_for_device() argument 40 void dma_direct_unmap_sg(struct device *dev, struct scatterlist *sgl, 43 struct scatterlist *sgl, int nents, enum dma_data_direction dir); 46 struct scatterlist *sgl, int nents, enum dma_data_direction dir, in dma_direct_unmap_sg() argument 51 struct scatterlist *sgl, int nents, enum dma_data_direction dir) in dma_direct_sync_sg_for_cpu() argument
|
| /linux/drivers/media/platform/ |
| H A D | m2m-deinterlace.c | 241 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/vfio/pci/pds/ |
| H A D | cmds.c | 206 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 D | dirty.c | 119 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 = ®ion->sgl[i]; in pds_vfio_dirty_seq_ack()
|
| /linux/drivers/mtd/nand/ |
| H A D | qpic_common.c | 152 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 D | ixgbe_fcoe.c | 29 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 D | mr.c | 51 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 D | industrialio-buffer-dmaengine.c | 66 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 D | esas2r_io.c | 224 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 D | i915_scatterlist.h | 31 } __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/dma/ |
| H A D | milbeaut-hdmac.c | 61 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/tty/serial/8250/ |
| H A D | 8250_dma.c | 93 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/scsi/qedf/ |
| H A D | drv_scsi_fw_funcs.c | 34 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/scsi/bnx2fc/ |
| H A D | bnx2fc_hwi.c | 1496 struct fcoe_ext_mul_sges_ctx *sgl; in bnx2fc_init_seq_cleanup_task() local 1543 task->txwr_only.sgl_ctx.sgl.mul_sgl.cur_sge_addr.lo = in bnx2fc_init_seq_cleanup_task() 1545 task->txwr_only.sgl_ctx.sgl.mul_sgl.cur_sge_addr.hi = in bnx2fc_init_seq_cleanup_task() 1547 task->txwr_only.sgl_ctx.sgl.mul_sgl.sgl_size = in bnx2fc_init_seq_cleanup_task() 1549 task->txwr_only.sgl_ctx.sgl.mul_sgl.cur_sge_off = in bnx2fc_init_seq_cleanup_task() 1551 task->txwr_only.sgl_ctx.sgl.mul_sgl.cur_sge_idx = i; in bnx2fc_init_seq_cleanup_task() 1555 sgl = &task->rxwr_only.union_ctx.read_info.sgl_ctx.sgl; in bnx2fc_init_seq_cleanup_task() 1556 sgl->mul_sgl.cur_sge_addr.lo = (u32)phys_addr; in bnx2fc_init_seq_cleanup_task() 1557 sgl->mul_sgl.cur_sge_addr.hi = (u32)((u64)phys_addr >> 32); in bnx2fc_init_seq_cleanup_task() 1558 sgl->mul_sgl.sgl_size = bd_count; in bnx2fc_init_seq_cleanup_task() [all …]
|
| /linux/drivers/dma/sh/ |
| H A D | shdma-base.c | 574 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 …]
|