Lines Matching refs:sg

116 	struct axi_dmac_sg sg[];
208 struct axi_dmac_sg *sg;
225 sg = &desc->sg[desc->num_submitted];
228 if (sg->id != AXI_DMAC_SG_UNUSED) {
229 sg->schedule_when_free = true;
245 sg->id = axi_dmac_read(dmac, AXI_DMAC_REG_TRANSFER_ID);
248 axi_dmac_write(dmac, AXI_DMAC_REG_DEST_ADDRESS, sg->dest_addr);
249 axi_dmac_write(dmac, AXI_DMAC_REG_DEST_STRIDE, sg->dest_stride);
253 axi_dmac_write(dmac, AXI_DMAC_REG_SRC_ADDRESS, sg->src_addr);
254 axi_dmac_write(dmac, AXI_DMAC_REG_SRC_STRIDE, sg->src_stride);
269 axi_dmac_write(dmac, AXI_DMAC_REG_X_LENGTH, sg->x_len - 1);
270 axi_dmac_write(dmac, AXI_DMAC_REG_Y_LENGTH, sg->y_len - 1);
282 struct axi_dmac_sg *sg)
285 return sg->x_len * sg->y_len;
287 return sg->x_len;
294 struct axi_dmac_sg *sg;
305 sg = &desc->sg[i];
306 if (sg->id == AXI_DMAC_SG_UNUSED)
308 if (sg->id == id) {
310 sg->partial_len = len;
341 struct axi_dmac_sg *sg;
352 sg = &active->sg[i];
353 total = axi_dmac_total_sg_bytes(chan, sg);
354 rslt->residue += (total - sg->partial_len);
362 struct axi_dmac_sg *sg;
374 sg = &active->sg[active->num_completed];
375 if (sg->id == AXI_DMAC_SG_UNUSED) /* Not yet submitted */
377 if (!(BIT(sg->id) & completed_transfers))
380 sg->id = AXI_DMAC_SG_UNUSED;
381 if (sg->schedule_when_free) {
382 sg->schedule_when_free = false;
386 if (sg->partial_len)
393 sg->partial_len) {
480 desc = kzalloc(struct_size(desc, sg, num_sgs), GFP_NOWAIT);
485 desc->sg[i].id = AXI_DMAC_SG_UNUSED;
495 struct axi_dmac_sg *sg)
512 sg->dest_addr = addr;
514 sg->src_addr = addr;
515 sg->x_len = segment_size;
516 sg->y_len = 1;
517 sg++;
523 sg->dest_addr = addr;
525 sg->src_addr = addr;
526 sg->x_len = len;
527 sg->y_len = 1;
528 sg++;
532 return sg;
543 struct scatterlist *sg;
551 for_each_sg(sgl, sg, sg_len, i)
552 num_sgs += DIV_ROUND_UP(sg_dma_len(sg), chan->max_length);
558 dsg = desc->sg;
560 for_each_sg(sgl, sg, sg_len, i) {
561 if (!axi_dmac_check_addr(chan, sg_dma_address(sg)) ||
562 !axi_dmac_check_len(chan, sg_dma_len(sg))) {
567 dsg = axi_dmac_fill_linear_sg(chan, direction, sg_dma_address(sg), 1,
568 sg_dma_len(sg), dsg);
603 period_len, desc->sg);
658 desc->sg[0].src_addr = xt->src_start;
659 desc->sg[0].src_stride = xt->sgl[0].size + src_icg;
663 desc->sg[0].dest_addr = xt->dst_start;
664 desc->sg[0].dest_stride = xt->sgl[0].size + dst_icg;
668 desc->sg[0].x_len = xt->sgl[0].size;
669 desc->sg[0].y_len = xt->numf;
671 desc->sg[0].x_len = xt->sgl[0].size * xt->numf;
672 desc->sg[0].y_len = 1;