CC: [email protected]
In-Reply-To: <[email protected]>
References: <[email protected]>
TO: Akhil R <[email protected]>

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.16 
next-20220117]
[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-GPC-DMA-driver/20220111-000734
base:   https://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine.git next
:::::: branch date: 7 days ago
:::::: commit date: 7 days ago
config: microblaze-randconfig-s031-20220118 
(https://download.01.org/0day-ci/archive/20220118/[email protected]/config)
compiler: microblaze-linux-gcc (GCC) 11.2.0
reproduce:
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # apt-get install sparse
        # sparse version: v0.6.4-dirty
        # 
https://github.com/0day-ci/linux/commit/c8498ed60baaec5b689dbe5d3882342c88981eb3
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review 
Akhil-R/Add-NVIDIA-Tegra-GPC-DMA-driver/20220111-000734
        git checkout c8498ed60baaec5b689dbe5d3882342c88981eb3
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 
CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=microblaze 
SHELL=/bin/bash drivers/dma/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


sparse warnings: (new ones prefixed by >>)
   drivers/dma/tegra186-gpc-dma.c: note: in included file (through 
arch/microblaze/include/asm/io.h, include/linux/scatterlist.h, 
include/linux/dmaengine.h):
   include/asm-generic/io.h:267:16: sparse: sparse: cast to restricted __le32
   include/asm-generic/io.h:267:16: sparse: sparse: cast to restricted __le32
   include/asm-generic/io.h:267:16: sparse: sparse: cast to restricted __le32
   include/asm-generic/io.h:267:16: sparse: sparse: cast to restricted __le32
   include/asm-generic/io.h:267:16: sparse: sparse: cast to restricted __le32
   include/asm-generic/io.h:267:16: sparse: sparse: cast to restricted __le32
   include/asm-generic/io.h:267:16: sparse: sparse: cast to restricted __le32
   include/asm-generic/io.h:267:16: sparse: sparse: cast to restricted __le32
   include/asm-generic/io.h:267:16: sparse: sparse: cast to restricted __le32
   include/asm-generic/io.h:267:16: sparse: sparse: cast to restricted __le32
   include/asm-generic/io.h:267:16: sparse: sparse: cast to restricted __le32
   include/asm-generic/io.h:267:16: sparse: sparse: cast to restricted __le32
   include/asm-generic/io.h:299:22: sparse: sparse: incorrect type in argument 
1 (different base types) @@     expected unsigned int [usertype] value @@     
got restricted __le32 [usertype] @@
   include/asm-generic/io.h:299:22: sparse:     expected unsigned int 
[usertype] value
   include/asm-generic/io.h:299:22: sparse:     got restricted __le32 [usertype]
   include/asm-generic/io.h:267:16: sparse: sparse: cast to restricted __le32
   include/asm-generic/io.h:267:16: sparse: sparse: cast to restricted __le32
   include/asm-generic/io.h:267:16: sparse: sparse: cast to restricted __le32
   include/asm-generic/io.h:267:16: sparse: sparse: cast to restricted __le32
   include/asm-generic/io.h:299:22: sparse: sparse: incorrect type in argument 
1 (different base types) @@     expected unsigned int [usertype] value @@     
got restricted __le32 [usertype] @@
   include/asm-generic/io.h:299:22: sparse:     expected unsigned int 
[usertype] value
   include/asm-generic/io.h:299:22: sparse:     got restricted __le32 [usertype]
   include/asm-generic/io.h:267:16: sparse: sparse: cast to restricted __le32
   include/asm-generic/io.h:299:22: sparse: sparse: incorrect type in argument 
1 (different base types) @@     expected unsigned int [usertype] value @@     
got restricted __le32 [usertype] @@
   include/asm-generic/io.h:299:22: sparse:     expected unsigned int 
[usertype] value
   include/asm-generic/io.h:299:22: sparse:     got restricted __le32 [usertype]
   include/asm-generic/io.h:267:16: sparse: sparse: cast to restricted __le32
   include/asm-generic/io.h:299:22: sparse: sparse: incorrect type in argument 
1 (different base types) @@     expected unsigned int [usertype] value @@     
got restricted __le32 [usertype] @@
   include/asm-generic/io.h:299:22: sparse:     expected unsigned int 
[usertype] value
   include/asm-generic/io.h:299:22: sparse:     got restricted __le32 [usertype]
   include/asm-generic/io.h:299:22: sparse: sparse: incorrect type in argument 
1 (different base types) @@     expected unsigned int [usertype] value @@     
got restricted __le32 [usertype] @@
   include/asm-generic/io.h:299:22: sparse:     expected unsigned int 
[usertype] value
   include/asm-generic/io.h:299:22: sparse:     got restricted __le32 [usertype]
   include/asm-generic/io.h:299:22: sparse: sparse: incorrect type in argument 
1 (different base types) @@     expected unsigned int [usertype] value @@     
got restricted __le32 [usertype] @@
   include/asm-generic/io.h:299:22: sparse:     expected unsigned int 
[usertype] value
   include/asm-generic/io.h:299:22: sparse:     got restricted __le32 [usertype]
   include/asm-generic/io.h:299:22: sparse: sparse: incorrect type in argument 
1 (different base types) @@     expected unsigned int [usertype] value @@     
got restricted __le32 [usertype] @@
   include/asm-generic/io.h:299:22: sparse:     expected unsigned int 
[usertype] value
   include/asm-generic/io.h:299:22: sparse:     got restricted __le32 [usertype]
   include/asm-generic/io.h:299:22: sparse: sparse: incorrect type in argument 
1 (different base types) @@     expected unsigned int [usertype] value @@     
got restricted __le32 [usertype] @@
   include/asm-generic/io.h:299:22: sparse:     expected unsigned int 
[usertype] value
   include/asm-generic/io.h:299:22: sparse:     got restricted __le32 [usertype]
   include/asm-generic/io.h:299:22: sparse: sparse: incorrect type in argument 
1 (different base types) @@     expected unsigned int [usertype] value @@     
got restricted __le32 [usertype] @@
   include/asm-generic/io.h:299:22: sparse:     expected unsigned int 
[usertype] value
   include/asm-generic/io.h:299:22: sparse:     got restricted __le32 [usertype]
   include/asm-generic/io.h:299:22: sparse: sparse: incorrect type in argument 
1 (different base types) @@     expected unsigned int [usertype] value @@     
got restricted __le32 [usertype] @@
   include/asm-generic/io.h:299:22: sparse:     expected unsigned int 
[usertype] value
   include/asm-generic/io.h:299:22: sparse:     got restricted __le32 [usertype]
   include/asm-generic/io.h:299:22: sparse: sparse: incorrect type in argument 
1 (different base types) @@     expected unsigned int [usertype] value @@     
got restricted __le32 [usertype] @@
   include/asm-generic/io.h:299:22: sparse:     expected unsigned int 
[usertype] value
   include/asm-generic/io.h:299:22: sparse:     got restricted __le32 [usertype]
   include/asm-generic/io.h:299:22: sparse: sparse: incorrect type in argument 
1 (different base types) @@     expected unsigned int [usertype] value @@     
got restricted __le32 [usertype] @@
   include/asm-generic/io.h:299:22: sparse:     expected unsigned int 
[usertype] value
   include/asm-generic/io.h:299:22: sparse:     got restricted __le32 [usertype]
   include/asm-generic/io.h:299:22: sparse: sparse: incorrect type in argument 
1 (different base types) @@     expected unsigned int [usertype] value @@     
got restricted __le32 [usertype] @@
   include/asm-generic/io.h:299:22: sparse:     expected unsigned int 
[usertype] value
   include/asm-generic/io.h:299:22: sparse:     got restricted __le32 [usertype]
   include/asm-generic/io.h:299:22: sparse: sparse: incorrect type in argument 
1 (different base types) @@     expected unsigned int [usertype] value @@     
got restricted __le32 [usertype] @@
   include/asm-generic/io.h:299:22: sparse:     expected unsigned int 
[usertype] value
   include/asm-generic/io.h:299:22: sparse:     got restricted __le32 [usertype]
   include/asm-generic/io.h:299:22: sparse: sparse: incorrect type in argument 
1 (different base types) @@     expected unsigned int [usertype] value @@     
got restricted __le32 [usertype] @@
   include/asm-generic/io.h:299:22: sparse:     expected unsigned int 
[usertype] value
   include/asm-generic/io.h:299:22: sparse:     got restricted __le32 [usertype]
   include/asm-generic/io.h:299:22: sparse: sparse: incorrect type in argument 
1 (different base types) @@     expected unsigned int [usertype] value @@     
got restricted __le32 [usertype] @@
   include/asm-generic/io.h:299:22: sparse:     expected unsigned int 
[usertype] value
   include/asm-generic/io.h:299:22: sparse:     got restricted __le32 [usertype]
   include/asm-generic/io.h:299:22: sparse: sparse: incorrect type in argument 
1 (different base types) @@     expected unsigned int [usertype] value @@     
got restricted __le32 [usertype] @@
   include/asm-generic/io.h:299:22: sparse:     expected unsigned int 
[usertype] value
   include/asm-generic/io.h:299:22: sparse:     got restricted __le32 [usertype]
   include/asm-generic/io.h:299:22: sparse: sparse: incorrect type in argument 
1 (different base types) @@     expected unsigned int [usertype] value @@     
got restricted __le32 [usertype] @@
   include/asm-generic/io.h:299:22: sparse:     expected unsigned int 
[usertype] value
   include/asm-generic/io.h:299:22: sparse:     got restricted __le32 [usertype]
   include/asm-generic/io.h:267:16: sparse: sparse: cast to restricted __le32
   include/asm-generic/io.h:299:22: sparse: sparse: incorrect type in argument 
1 (different base types) @@     expected unsigned int [usertype] value @@     
got restricted __le32 [usertype] @@
   include/asm-generic/io.h:299:22: sparse:     expected unsigned int 
[usertype] value
   include/asm-generic/io.h:299:22: sparse:     got restricted __le32 [usertype]
   include/asm-generic/io.h:299:22: sparse: sparse: incorrect type in argument 
1 (different base types) @@     expected unsigned int [usertype] value @@     
got restricted __le32 [usertype] @@
   include/asm-generic/io.h:299:22: sparse:     expected unsigned int 
[usertype] value
   include/asm-generic/io.h:299:22: sparse:     got restricted __le32 [usertype]
   include/asm-generic/io.h:267:16: sparse: sparse: cast to restricted __le32
   include/asm-generic/io.h:299:22: sparse: sparse: incorrect type in argument 
1 (different base types) @@     expected unsigned int [usertype] value @@     
got restricted __le32 [usertype] @@
   include/asm-generic/io.h:299:22: sparse:     expected unsigned int 
[usertype] value
   include/asm-generic/io.h:299:22: sparse:     got restricted __le32 [usertype]
   include/asm-generic/io.h:267:16: sparse: sparse: cast to restricted __le32
   include/asm-generic/io.h:299:22: sparse: sparse: incorrect type in argument 
1 (different base types) @@     expected unsigned int [usertype] value @@     
got restricted __le32 [usertype] @@
   include/asm-generic/io.h:299:22: sparse:     expected unsigned int 
[usertype] value
   include/asm-generic/io.h:299:22: sparse:     got restricted __le32 [usertype]
   include/asm-generic/io.h:267:16: sparse: sparse: cast to restricted __le32
   include/asm-generic/io.h:267:16: sparse: sparse: cast to restricted __le32
   include/asm-generic/io.h:267:16: sparse: sparse: cast to restricted __le32
   include/asm-generic/io.h:299:22: sparse: sparse: incorrect type in argument 
1 (different base types) @@     expected unsigned int [usertype] value @@     
got restricted __le32 [usertype] @@
   include/asm-generic/io.h:299:22: sparse:     expected unsigned int 
[usertype] value
   include/asm-generic/io.h:299:22: sparse:     got restricted __le32 [usertype]
   include/asm-generic/io.h:267:16: sparse: sparse: cast to restricted __le32
   include/asm-generic/io.h:267:16: sparse: sparse: cast to restricted __le32
   include/asm-generic/io.h:267:16: sparse: sparse: cast to restricted __le32
   include/asm-generic/io.h:267:16: sparse: sparse: cast to restricted __le32
>> drivers/dma/tegra186-gpc-dma.c:861:25: sparse: sparse: shift too big (32) 
>> for type unsigned int
   include/asm-generic/io.h:267:16: sparse: sparse: cast to restricted __le32
   drivers/dma/tegra186-gpc-dma.c:929:17: sparse: sparse: shift too big (32) 
for type unsigned int
   drivers/dma/tegra186-gpc-dma.c:931:17: sparse: sparse: shift too big (32) 
for type unsigned int
   include/asm-generic/io.h:267:16: sparse: sparse: cast to restricted __le32
   drivers/dma/tegra186-gpc-dma.c:1040:33: sparse: sparse: shift too big (32) 
for type unsigned int
   drivers/dma/tegra186-gpc-dma.c:1045:33: sparse: sparse: shift too big (32) 
for type unsigned int
   include/asm-generic/io.h:267:16: sparse: sparse: cast to restricted __le32
   drivers/dma/tegra186-gpc-dma.c:1162:33: sparse: sparse: shift too big (32) 
for type unsigned int
   drivers/dma/tegra186-gpc-dma.c:1167:33: sparse: sparse: shift too big (32) 
for type unsigned int
   include/asm-generic/io.h:267:16: sparse: sparse: cast to restricted __le32
   include/asm-generic/io.h:299:22: sparse: sparse: incorrect type in argument 
1 (different base types) @@     expected unsigned int [usertype] value @@     
got restricted __le32 [usertype] @@
   include/asm-generic/io.h:299:22: sparse:     expected unsigned int 
[usertype] value
   include/asm-generic/io.h:299:22: sparse:     got restricted __le32 [usertype]

vim +861 drivers/dma/tegra186-gpc-dma.c

c8498ed60baaec5 Akhil R 2022-01-10  806  
c8498ed60baaec5 Akhil R 2022-01-10  807  static struct dma_async_tx_descriptor *
c8498ed60baaec5 Akhil R 2022-01-10  808  tegra_dma_prep_dma_memset(struct 
dma_chan *dc, dma_addr_t dest, int value,
c8498ed60baaec5 Akhil R 2022-01-10  809                           size_t len, 
unsigned long flags)
c8498ed60baaec5 Akhil R 2022-01-10  810  {
c8498ed60baaec5 Akhil R 2022-01-10  811         struct tegra_dma_channel *tdc = 
to_tegra_dma_chan(dc);
c8498ed60baaec5 Akhil R 2022-01-10  812         unsigned int max_dma_count = 
tdc->tdma->chip_data->max_dma_count;
c8498ed60baaec5 Akhil R 2022-01-10  813         struct tegra_dma_sg_req *sg_req;
c8498ed60baaec5 Akhil R 2022-01-10  814         struct tegra_dma_desc *dma_desc;
c8498ed60baaec5 Akhil R 2022-01-10  815         unsigned long csr, mc_seq;
c8498ed60baaec5 Akhil R 2022-01-10  816  
c8498ed60baaec5 Akhil R 2022-01-10  817         if ((len & 3) || (dest & 3) || 
len > max_dma_count) {
c8498ed60baaec5 Akhil R 2022-01-10  818                 dev_err(tdc2dev(tdc),
c8498ed60baaec5 Akhil R 2022-01-10  819                         "DMA 
length/memory address is not supported\n");
c8498ed60baaec5 Akhil R 2022-01-10  820                 return NULL;
c8498ed60baaec5 Akhil R 2022-01-10  821         }
c8498ed60baaec5 Akhil R 2022-01-10  822  
c8498ed60baaec5 Akhil R 2022-01-10  823         /* Set dma mode to fixed 
pattern */
c8498ed60baaec5 Akhil R 2022-01-10  824         csr = 
TEGRA_GPCDMA_CSR_DMA_FIXED_PAT;
c8498ed60baaec5 Akhil R 2022-01-10  825         /* Enable once or continuous 
mode */
c8498ed60baaec5 Akhil R 2022-01-10  826         csr |= TEGRA_GPCDMA_CSR_ONCE;
c8498ed60baaec5 Akhil R 2022-01-10  827         /* Enable IRQ mask */
c8498ed60baaec5 Akhil R 2022-01-10  828         csr |= 
TEGRA_GPCDMA_CSR_IRQ_MASK;
c8498ed60baaec5 Akhil R 2022-01-10  829         /* Enable the dma interrupt */
c8498ed60baaec5 Akhil R 2022-01-10  830         if (flags & DMA_PREP_INTERRUPT)
c8498ed60baaec5 Akhil R 2022-01-10  831                 csr |= 
TEGRA_GPCDMA_CSR_IE_EOC;
c8498ed60baaec5 Akhil R 2022-01-10  832         /* Configure default priority 
weight for the channel */
c8498ed60baaec5 Akhil R 2022-01-10  833         csr |= 
FIELD_PREP(TEGRA_GPCDMA_CSR_WEIGHT, 1);
c8498ed60baaec5 Akhil R 2022-01-10  834  
c8498ed60baaec5 Akhil R 2022-01-10  835         mc_seq =  tdc_read(tdc, 
TEGRA_GPCDMA_CHAN_MCSEQ);
c8498ed60baaec5 Akhil R 2022-01-10  836         /* retain stream-id and clean 
rest */
c8498ed60baaec5 Akhil R 2022-01-10  837         mc_seq &= 
TEGRA_GPCDMA_MCSEQ_STREAM_ID0_MASK;
c8498ed60baaec5 Akhil R 2022-01-10  838  
c8498ed60baaec5 Akhil R 2022-01-10  839         /* Set the address wrapping */
c8498ed60baaec5 Akhil R 2022-01-10  840         mc_seq |= 
FIELD_PREP(TEGRA_GPCDMA_MCSEQ_WRAP0,
c8498ed60baaec5 Akhil R 2022-01-10  841                                         
        TEGRA_GPCDMA_MCSEQ_WRAP_NONE);
c8498ed60baaec5 Akhil R 2022-01-10  842         mc_seq |= 
FIELD_PREP(TEGRA_GPCDMA_MCSEQ_WRAP1,
c8498ed60baaec5 Akhil R 2022-01-10  843                                         
        TEGRA_GPCDMA_MCSEQ_WRAP_NONE);
c8498ed60baaec5 Akhil R 2022-01-10  844  
c8498ed60baaec5 Akhil R 2022-01-10  845         /* Program outstanding MC 
requests */
c8498ed60baaec5 Akhil R 2022-01-10  846         mc_seq |= 
FIELD_PREP(TEGRA_GPCDMA_MCSEQ_REQ_COUNT, 1);
c8498ed60baaec5 Akhil R 2022-01-10  847         /* Set burst size */
c8498ed60baaec5 Akhil R 2022-01-10  848         mc_seq |= 
TEGRA_GPCDMA_MCSEQ_BURST_16;
c8498ed60baaec5 Akhil R 2022-01-10  849  
c8498ed60baaec5 Akhil R 2022-01-10  850         dma_desc = 
kzalloc(struct_size(dma_desc, sg_req, 1), GFP_NOWAIT);
c8498ed60baaec5 Akhil R 2022-01-10  851         if (!dma_desc)
c8498ed60baaec5 Akhil R 2022-01-10  852                 return NULL;
c8498ed60baaec5 Akhil R 2022-01-10  853  
c8498ed60baaec5 Akhil R 2022-01-10  854         dma_desc->bytes_requested = len;
c8498ed60baaec5 Akhil R 2022-01-10  855         dma_desc->sg_count = 1;
c8498ed60baaec5 Akhil R 2022-01-10  856         sg_req = dma_desc->sg_req;
c8498ed60baaec5 Akhil R 2022-01-10  857  
c8498ed60baaec5 Akhil R 2022-01-10  858         sg_req[0].ch_regs.src_ptr = 0;
c8498ed60baaec5 Akhil R 2022-01-10  859         sg_req[0].ch_regs.dst_ptr = 
dest;
c8498ed60baaec5 Akhil R 2022-01-10  860         sg_req[0].ch_regs.high_addr_ptr 
=
c8498ed60baaec5 Akhil R 2022-01-10 @861                         
FIELD_PREP(TEGRA_GPCDMA_HIGH_ADDR_DST_PTR, (dest >> 32));
c8498ed60baaec5 Akhil R 2022-01-10  862         sg_req[0].ch_regs.fixed_pattern 
= value;
c8498ed60baaec5 Akhil R 2022-01-10  863         /* Word count reg takes value 
as (N +1) words */
c8498ed60baaec5 Akhil R 2022-01-10  864         sg_req[0].ch_regs.wcount = 
((len - 4) >> 2);
c8498ed60baaec5 Akhil R 2022-01-10  865         sg_req[0].ch_regs.csr = csr;
c8498ed60baaec5 Akhil R 2022-01-10  866         sg_req[0].ch_regs.mmio_seq = 0;
c8498ed60baaec5 Akhil R 2022-01-10  867         sg_req[0].ch_regs.mc_seq = 
mc_seq;
c8498ed60baaec5 Akhil R 2022-01-10  868         sg_req[0].len = len;
c8498ed60baaec5 Akhil R 2022-01-10  869  
c8498ed60baaec5 Akhil R 2022-01-10  870         dma_desc->cyclic = false;
c8498ed60baaec5 Akhil R 2022-01-10  871         return vchan_tx_prep(&tdc->vc, 
&dma_desc->vd, flags);
c8498ed60baaec5 Akhil R 2022-01-10  872  }
c8498ed60baaec5 Akhil R 2022-01-10  873  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to