tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: 39676dfe52331dba909c617f213fdb21015c8d10 commit: 01e6d907656134949c4126e7fd64984d4daa4c1e [9985/10295] dmaengine: xilinx: xdma: Implement interleaved DMA transfers config: csky-buildonly-randconfig-r004-20230509 (https://download.01.org/0day-ci/archive/20231223/202312231258.L3C56jBw-lkp@xxxxxxxxx/config) compiler: csky-linux-gcc (GCC) 13.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231223/202312231258.L3C56jBw-lkp@xxxxxxxxx/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202312231258.L3C56jBw-lkp@xxxxxxxxx/ All warnings (new ones prefixed by >>): >> drivers/dma/xilinx/xdma.c:729:1: warning: no previous prototype for 'xdma_prep_interleaved_dma' [-Wmissing-prototypes] 729 | xdma_prep_interleaved_dma(struct dma_chan *chan, | ^~~~~~~~~~~~~~~~~~~~~~~~~ vim +/xdma_prep_interleaved_dma +729 drivers/dma/xilinx/xdma.c 721 722 /** 723 * xdma_prep_interleaved_dma - Prepare virtual descriptor for interleaved DMA transfers 724 * @chan: DMA channel 725 * @xt: DMA transfer template 726 * @flags: tx flags 727 */ 728 struct dma_async_tx_descriptor * > 729 xdma_prep_interleaved_dma(struct dma_chan *chan, 730 struct dma_interleaved_template *xt, 731 unsigned long flags) 732 { 733 int i; 734 u32 desc_num = 0, period_size = 0; 735 struct dma_async_tx_descriptor *tx_desc; 736 struct xdma_chan *xchan = to_xdma_chan(chan); 737 struct xdma_desc *sw_desc; 738 u64 src_addr, dst_addr; 739 740 for (i = 0; i < xt->frame_size; ++i) 741 desc_num += DIV_ROUND_UP(xt->sgl[i].size, XDMA_DESC_BLEN_MAX); 742 743 sw_desc = xdma_alloc_desc(xchan, desc_num, false); 744 if (!sw_desc) 745 return NULL; 746 sw_desc->dir = xt->dir; 747 sw_desc->interleaved_dma = true; 748 sw_desc->cyclic = flags & DMA_PREP_REPEAT; 749 sw_desc->frames_left = xt->numf; 750 sw_desc->periods = xt->numf; 751 752 desc_num = 0; 753 src_addr = xt->src_start; 754 dst_addr = xt->dst_start; 755 for (i = 0; i < xt->frame_size; ++i) { 756 desc_num += xdma_fill_descs(sw_desc, src_addr, dst_addr, xt->sgl[i].size, desc_num); 757 src_addr += dmaengine_get_src_icg(xt, &xt->sgl[i]) + xt->src_inc ? 758 xt->sgl[i].size : 0; 759 dst_addr += dmaengine_get_dst_icg(xt, &xt->sgl[i]) + xt->dst_inc ? 760 xt->sgl[i].size : 0; 761 period_size += xt->sgl[i].size; 762 } 763 sw_desc->period_size = period_size; 764 765 tx_desc = vchan_tx_prep(&xchan->vchan, &sw_desc->vdesc, flags); 766 if (tx_desc) 767 return tx_desc; 768 769 xdma_free_desc(&sw_desc->vdesc); 770 return NULL; 771 } 772 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki