From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============5654065247163769403==" MIME-Version: 1.0 From: kernel test robot To: kbuild-all@lists.01.org Subject: Re: [PATCH v18 2/4] dmaengine: tegra: Add tegra gpcdma driver Date: Thu, 03 Feb 2022 08:18:19 +0800 Message-ID: <202202030717.azJOwFpH-lkp@intel.com> In-Reply-To: <1643729199-19161-3-git-send-email-akhilrajeev@nvidia.com> List-Id: --===============5654065247163769403== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Akhil, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on vkoul-dmaengine/next] [also build test WARNING on robh/for-next arm64/for-next/core v5.17-rc2 nex= t-20220202] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Akhil-R/Add-NVIDIA-Tegra-G= PC-DMA-driver/20220201-232959 base: https://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine.git= next config: nds32-allyesconfig (https://download.01.org/0day-ci/archive/2022020= 3/202202030717.azJOwFpH-lkp(a)intel.com/config) compiler: nds32le-linux-gcc (GCC) 11.2.0 reproduce (this is a W=3D1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/= make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/0day-ci/linux/commit/fb896830918f8dc1c138094bb= 4c5cc5e19d149c9 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Akhil-R/Add-NVIDIA-Tegra-GPC-DMA-d= river/20220201-232959 git checkout fb896830918f8dc1c138094bb4c5cc5e19d149c9 # save the config file to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=3D$HOME/0day COMPILER=3Dgcc-11.2.0 make.cross= O=3Dbuild_dir ARCH=3Dnds32 SHELL=3D/bin/bash drivers/dma/ drivers/iommu/ d= rivers/mfd/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All warnings (new ones prefixed by >>): In file included from : drivers/dma/tegra186-gpc-dma.c: In function 'tegra_dma_prep_dma_memset': >> drivers/dma/tegra186-gpc-dma.c:896:74: warning: right shift count >=3D w= idth of type [-Wshift-count-overflow] 896 | FIELD_PREP(TEGRA_GPCDMA_HIGH_ADDR_DST_PT= R, (dest >> 32)); | = ^~ include/linux/compiler_types.h:315:23: note: in definition of macro '__c= ompiletime_assert' 315 | if (!(condition)) = \ | ^~~~~~~~~ include/linux/compiler_types.h:335:9: note: in expansion of macro '_comp= iletime_assert' 335 | _compiletime_assert(condition, msg, __compiletime_assert= _, __COUNTER__) | ^~~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletim= e_assert' 39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), = msg) | ^~~~~~~~~~~~~~~~~~ include/linux/bitfield.h:49:17: note: in expansion of macro 'BUILD_BUG_O= N_MSG' 49 | BUILD_BUG_ON_MSG(__builtin_constant_p(_val) ? = \ | ^~~~~~~~~~~~~~~~ include/linux/bitfield.h:94:17: note: in expansion of macro '__BF_FIELD_= CHECK' 94 | __BF_FIELD_CHECK(_mask, 0ULL, _val, "FIELD_PREP:= "); \ | ^~~~~~~~~~~~~~~~ drivers/dma/tegra186-gpc-dma.c:896:25: note: in expansion of macro 'FIEL= D_PREP' 896 | FIELD_PREP(TEGRA_GPCDMA_HIGH_ADDR_DST_PT= R, (dest >> 32)); | ^~~~~~~~~~ >> drivers/dma/tegra186-gpc-dma.c:896:74: warning: right shift count >=3D w= idth of type [-Wshift-count-overflow] 896 | FIELD_PREP(TEGRA_GPCDMA_HIGH_ADDR_DST_PT= R, (dest >> 32)); | = ^~ include/linux/compiler_types.h:315:23: note: in definition of macro '__c= ompiletime_assert' 315 | if (!(condition)) = \ | ^~~~~~~~~ include/linux/compiler_types.h:335:9: note: in expansion of macro '_comp= iletime_assert' 335 | _compiletime_assert(condition, msg, __compiletime_assert= _, __COUNTER__) | ^~~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletim= e_assert' 39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), = msg) | ^~~~~~~~~~~~~~~~~~ include/linux/bitfield.h:49:17: note: in expansion of macro 'BUILD_BUG_O= N_MSG' 49 | BUILD_BUG_ON_MSG(__builtin_constant_p(_val) ? = \ | ^~~~~~~~~~~~~~~~ include/linux/bitfield.h:94:17: note: in expansion of macro '__BF_FIELD_= CHECK' 94 | __BF_FIELD_CHECK(_mask, 0ULL, _val, "FIELD_PREP:= "); \ | ^~~~~~~~~~~~~~~~ drivers/dma/tegra186-gpc-dma.c:896:25: note: in expansion of macro 'FIEL= D_PREP' 896 | FIELD_PREP(TEGRA_GPCDMA_HIGH_ADDR_DST_PT= R, (dest >> 32)); | ^~~~~~~~~~ In file included from drivers/dma/tegra186-gpc-dma.c:8: >> drivers/dma/tegra186-gpc-dma.c:896:74: warning: right shift count >=3D w= idth of type [-Wshift-count-overflow] 896 | FIELD_PREP(TEGRA_GPCDMA_HIGH_ADDR_DST_PT= R, (dest >> 32)); | = ^~ include/linux/bitfield.h:95:34: note: in definition of macro 'FIELD_PREP' 95 | ((typeof(_mask))(_val) << __bf_shf(_mask)) & (_m= ask); \ | ^~~~ In file included from : drivers/dma/tegra186-gpc-dma.c: In function 'tegra_dma_prep_dma_memcpy': drivers/dma/tegra186-gpc-dma.c:964:65: warning: right shift count >=3D w= idth of type [-Wshift-count-overflow] 964 | FIELD_PREP(TEGRA_GPCDMA_HIGH_ADDR_SRC_PTR, (src = >> 32)); | = ^~ include/linux/compiler_types.h:315:23: note: in definition of macro '__c= ompiletime_assert' 315 | if (!(condition)) = \ | ^~~~~~~~~ include/linux/compiler_types.h:335:9: note: in expansion of macro '_comp= iletime_assert' 335 | _compiletime_assert(condition, msg, __compiletime_assert= _, __COUNTER__) | ^~~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletim= e_assert' 39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), = msg) | ^~~~~~~~~~~~~~~~~~ include/linux/bitfield.h:49:17: note: in expansion of macro 'BUILD_BUG_O= N_MSG' 49 | BUILD_BUG_ON_MSG(__builtin_constant_p(_val) ? = \ | ^~~~~~~~~~~~~~~~ include/linux/bitfield.h:94:17: note: in expansion of macro '__BF_FIELD_= CHECK' 94 | __BF_FIELD_CHECK(_mask, 0ULL, _val, "FIELD_PREP:= "); \ | ^~~~~~~~~~~~~~~~ drivers/dma/tegra186-gpc-dma.c:964:17: note: in expansion of macro 'FIEL= D_PREP' 964 | FIELD_PREP(TEGRA_GPCDMA_HIGH_ADDR_SRC_PTR, (src = >> 32)); | ^~~~~~~~~~ drivers/dma/tegra186-gpc-dma.c:964:65: warning: right shift count >=3D w= idth of type [-Wshift-count-overflow] 964 | FIELD_PREP(TEGRA_GPCDMA_HIGH_ADDR_SRC_PTR, (src = >> 32)); | = ^~ include/linux/compiler_types.h:315:23: note: in definition of macro '__c= ompiletime_assert' 315 | if (!(condition)) = \ | ^~~~~~~~~ include/linux/compiler_types.h:335:9: note: in expansion of macro '_comp= iletime_assert' 335 | _compiletime_assert(condition, msg, __compiletime_assert= _, __COUNTER__) | ^~~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletim= e_assert' 39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), = msg) | ^~~~~~~~~~~~~~~~~~ include/linux/bitfield.h:49:17: note: in expansion of macro 'BUILD_BUG_O= N_MSG' 49 | BUILD_BUG_ON_MSG(__builtin_constant_p(_val) ? = \ | ^~~~~~~~~~~~~~~~ include/linux/bitfield.h:94:17: note: in expansion of macro '__BF_FIELD_= CHECK' 94 | __BF_FIELD_CHECK(_mask, 0ULL, _val, "FIELD_PREP:= "); \ | ^~~~~~~~~~~~~~~~ drivers/dma/tegra186-gpc-dma.c:964:17: note: in expansion of macro 'FIEL= D_PREP' 964 | FIELD_PREP(TEGRA_GPCDMA_HIGH_ADDR_SRC_PTR, (src = >> 32)); | ^~~~~~~~~~ In file included from drivers/dma/tegra186-gpc-dma.c:8: drivers/dma/tegra186-gpc-dma.c:964:65: warning: right shift count >=3D w= idth of type [-Wshift-count-overflow] 964 | FIELD_PREP(TEGRA_GPCDMA_HIGH_ADDR_SRC_PTR, (src = >> 32)); | = ^~ include/linux/bitfield.h:95:34: note: in definition of macro 'FIELD_PREP' 95 | ((typeof(_mask))(_val) << __bf_shf(_mask)) & (_m= ask); \ | ^~~~ In file included from : drivers/dma/tegra186-gpc-dma.c:966:66: warning: right shift count >=3D w= idth of type [-Wshift-count-overflow] 966 | FIELD_PREP(TEGRA_GPCDMA_HIGH_ADDR_DST_PTR, (dest= >> 32)); | = ^~ include/linux/compiler_types.h:315:23: note: in definition of macro '__c= ompiletime_assert' 315 | if (!(condition)) = \ | ^~~~~~~~~ include/linux/compiler_types.h:335:9: note: in expansion of macro '_comp= iletime_assert' 335 | _compiletime_assert(condition, msg, __compiletime_assert= _, __COUNTER__) | ^~~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletim= e_assert' 39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), = msg) | ^~~~~~~~~~~~~~~~~~ include/linux/bitfield.h:49:17: note: in expansion of macro 'BUILD_BUG_O= N_MSG' 49 | BUILD_BUG_ON_MSG(__builtin_constant_p(_val) ? = \ | ^~~~~~~~~~~~~~~~ include/linux/bitfield.h:94:17: note: in expansion of macro '__BF_FIELD_= CHECK' 94 | __BF_FIELD_CHECK(_mask, 0ULL, _val, "FIELD_PREP:= "); \ | ^~~~~~~~~~~~~~~~ drivers/dma/tegra186-gpc-dma.c:966:17: note: in expansion of macro 'FIEL= D_PREP' 966 | FIELD_PREP(TEGRA_GPCDMA_HIGH_ADDR_DST_PTR, (dest= >> 32)); | ^~~~~~~~~~ drivers/dma/tegra186-gpc-dma.c:966:66: warning: right shift count >=3D w= idth of type [-Wshift-count-overflow] 966 | FIELD_PREP(TEGRA_GPCDMA_HIGH_ADDR_DST_PTR, (dest= >> 32)); | = ^~ include/linux/compiler_types.h:315:23: note: in definition of macro '__c= ompiletime_assert' 315 | if (!(condition)) = \ | ^~~~~~~~~ include/linux/compiler_types.h:335:9: note: in expansion of macro '_comp= iletime_assert' 335 | _compiletime_assert(condition, msg, __compiletime_assert= _, __COUNTER__) | ^~~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletim= e_assert' 39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), = msg) | ^~~~~~~~~~~~~~~~~~ include/linux/bitfield.h:49:17: note: in expansion of macro 'BUILD_BUG_O= N_MSG' 49 | BUILD_BUG_ON_MSG(__builtin_constant_p(_val) ? = \ | ^~~~~~~~~~~~~~~~ include/linux/bitfield.h:94:17: note: in expansion of macro '__BF_FIELD_= CHECK' 94 | __BF_FIELD_CHECK(_mask, 0ULL, _val, "FIELD_PREP:= "); \ | ^~~~~~~~~~~~~~~~ drivers/dma/tegra186-gpc-dma.c:966:17: note: in expansion of macro 'FIEL= D_PREP' 966 | FIELD_PREP(TEGRA_GPCDMA_HIGH_ADDR_DST_PTR, (dest= >> 32)); | ^~~~~~~~~~ In file included from drivers/dma/tegra186-gpc-dma.c:8: vim +896 drivers/dma/tegra186-gpc-dma.c 841 = 842 static struct dma_async_tx_descriptor * 843 tegra_dma_prep_dma_memset(struct dma_chan *dc, dma_addr_t dest, int = value, 844 size_t len, unsigned long flags) 845 { 846 struct tegra_dma_channel *tdc =3D to_tegra_dma_chan(dc); 847 unsigned int max_dma_count =3D tdc->tdma->chip_data->max_dma_count; 848 struct tegra_dma_sg_req *sg_req; 849 struct tegra_dma_desc *dma_desc; 850 unsigned long csr, mc_seq; 851 = 852 if ((len & 3) || (dest & 3) || len > max_dma_count) { 853 dev_err(tdc2dev(tdc), 854 "DMA length/memory address is not supported\n"); 855 return NULL; 856 } 857 = 858 /* Set dma mode to fixed pattern */ 859 csr =3D TEGRA_GPCDMA_CSR_DMA_FIXED_PAT; 860 /* Enable once or continuous mode */ 861 csr |=3D TEGRA_GPCDMA_CSR_ONCE; 862 /* Enable IRQ mask */ 863 csr |=3D TEGRA_GPCDMA_CSR_IRQ_MASK; 864 /* Enable the dma interrupt */ 865 if (flags & DMA_PREP_INTERRUPT) 866 csr |=3D TEGRA_GPCDMA_CSR_IE_EOC; 867 /* Configure default priority weight for the channel */ 868 csr |=3D FIELD_PREP(TEGRA_GPCDMA_CSR_WEIGHT, 1); 869 = 870 mc_seq =3D tdc_read(tdc, TEGRA_GPCDMA_CHAN_MCSEQ); 871 /* retain stream-id and clean rest */ 872 mc_seq &=3D TEGRA_GPCDMA_MCSEQ_STREAM_ID0_MASK; 873 = 874 /* Set the address wrapping */ 875 mc_seq |=3D FIELD_PREP(TEGRA_GPCDMA_MCSEQ_WRAP0, 876 TEGRA_GPCDMA_MCSEQ_WRAP_NONE); 877 mc_seq |=3D FIELD_PREP(TEGRA_GPCDMA_MCSEQ_WRAP1, 878 TEGRA_GPCDMA_MCSEQ_WRAP_NONE); 879 = 880 /* Program outstanding MC requests */ 881 mc_seq |=3D FIELD_PREP(TEGRA_GPCDMA_MCSEQ_REQ_COUNT, 1); 882 /* Set burst size */ 883 mc_seq |=3D TEGRA_GPCDMA_MCSEQ_BURST_16; 884 = 885 dma_desc =3D kzalloc(struct_size(dma_desc, sg_req, 1), GFP_NOWAIT); 886 if (!dma_desc) 887 return NULL; 888 = 889 dma_desc->bytes_req =3D len; 890 dma_desc->sg_count =3D 1; 891 sg_req =3D dma_desc->sg_req; 892 = 893 sg_req[0].ch_regs.src_ptr =3D 0; 894 sg_req[0].ch_regs.dst_ptr =3D dest; 895 sg_req[0].ch_regs.high_addr_ptr =3D > 896 FIELD_PREP(TEGRA_GPCDMA_HIGH_ADDR_DST_PTR, (dest >> 32)); 897 sg_req[0].ch_regs.fixed_pattern =3D value; 898 /* Word count reg takes value as (N +1) words */ 899 sg_req[0].ch_regs.wcount =3D ((len - 4) >> 2); 900 sg_req[0].ch_regs.csr =3D csr; 901 sg_req[0].ch_regs.mmio_seq =3D 0; 902 sg_req[0].ch_regs.mc_seq =3D mc_seq; 903 sg_req[0].len =3D len; 904 = 905 dma_desc->cyclic =3D false; 906 return vchan_tx_prep(&tdc->vc, &dma_desc->vd, flags); 907 } 908 = --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org --===============5654065247163769403==--