Re: [PATCH v1 11/12] dmaengine: fsl-edma: integrate v3 support

From: kernel test robot
Date: Sat May 27 2023 - 14:07:22 EST


Hi Frank,

kernel test robot noticed the following build warnings:

[auto build test WARNING on vkoul-dmaengine/next]
[also build test WARNING on robh/for-next linus/master v6.4-rc3 next-20230525]
[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#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Frank-Li/dmaengine-fsl-edma-clean-up-EXPORT_SYMBOL_GPL-in-fsl-edma-common-c/20230526-224442
base: https://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine.git next
patch link: https://lore.kernel.org/r/20230526143639.1037099-12-Frank.Li%40nxp.com
patch subject: [PATCH v1 11/12] dmaengine: fsl-edma: integrate v3 support
config: i386-randconfig-s003-20230526 (https://download.01.org/0day-ci/archive/20230528/202305280115.V6ATKDcU-lkp@xxxxxxxxx/config)
compiler: gcc-11 (Debian 11.3.0-12) 11.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.4-39-gce1a6720-dirty
# https://github.com/intel-lab-lkp/linux/commit/1f79fc46f07a6ea3dbd002b3b46dbc3019bc1aa6
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Frank-Li/dmaengine-fsl-edma-clean-up-EXPORT_SYMBOL_GPL-in-fsl-edma-common-c/20230526-224442
git checkout 1f79fc46f07a6ea3dbd002b3b46dbc3019bc1aa6
# save the config file
mkdir build_dir && cp config build_dir/.config
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=i386 olddefconfig
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=i386 SHELL=/bin/bash drivers/dma/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202305280115.V6ATKDcU-lkp@xxxxxxxxx/

sparse warnings: (new ones prefixed by >>)
>> drivers/dma/fsl-edma-common.c:76:15: sparse: sparse: cast removes address space '__iomem' of expression
>> drivers/dma/fsl-edma-common.c:76:15: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/dma/fsl-edma-common.c:76:15: sparse: expected void [noderef] __iomem *addr
drivers/dma/fsl-edma-common.c:76:15: sparse: got restricted __le32 *
drivers/dma/fsl-edma-common.c:93:9: sparse: sparse: cast removes address space '__iomem' of expression
drivers/dma/fsl-edma-common.c:93:9: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/dma/fsl-edma-common.c:93:9: sparse: expected void [noderef] __iomem *addr
drivers/dma/fsl-edma-common.c:93:9: sparse: got restricted __le32 *
drivers/dma/fsl-edma-common.c:96:33: sparse: sparse: cast removes address space '__iomem' of expression
drivers/dma/fsl-edma-common.c:96:33: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/dma/fsl-edma-common.c:96:33: sparse: expected void [noderef] __iomem *addr
drivers/dma/fsl-edma-common.c:96:33: sparse: got restricted __le32 *
drivers/dma/fsl-edma-common.c:97:17: sparse: sparse: cast removes address space '__iomem' of expression
drivers/dma/fsl-edma-common.c:97:17: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/dma/fsl-edma-common.c:97:17: sparse: expected void [noderef] __iomem *addr
drivers/dma/fsl-edma-common.c:97:17: sparse: got restricted __le32 *
drivers/dma/fsl-edma-common.c:99:15: sparse: sparse: cast removes address space '__iomem' of expression
drivers/dma/fsl-edma-common.c:99:15: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/dma/fsl-edma-common.c:99:15: sparse: expected void [noderef] __iomem *addr
drivers/dma/fsl-edma-common.c:99:15: sparse: got restricted __le32 *
drivers/dma/fsl-edma-common.c:101:9: sparse: sparse: cast removes address space '__iomem' of expression
drivers/dma/fsl-edma-common.c:101:9: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/dma/fsl-edma-common.c:101:9: sparse: expected void [noderef] __iomem *addr
drivers/dma/fsl-edma-common.c:101:9: sparse: got restricted __le32 *
drivers/dma/fsl-edma-common.c:126:19: sparse: sparse: cast removes address space '__iomem' of expression
drivers/dma/fsl-edma-common.c:126:19: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/dma/fsl-edma-common.c:126:19: sparse: expected void [noderef] __iomem *addr
drivers/dma/fsl-edma-common.c:126:19: sparse: got restricted __le32 *
drivers/dma/fsl-edma-common.c:133:17: sparse: sparse: cast removes address space '__iomem' of expression
drivers/dma/fsl-edma-common.c:133:17: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/dma/fsl-edma-common.c:133:17: sparse: expected void [noderef] __iomem *addr
drivers/dma/fsl-edma-common.c:133:17: sparse: got restricted __le32 *
drivers/dma/fsl-edma-common.c:136:9: sparse: sparse: cast removes address space '__iomem' of expression
drivers/dma/fsl-edma-common.c:136:9: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/dma/fsl-edma-common.c:136:9: sparse: expected void [noderef] __iomem *addr
drivers/dma/fsl-edma-common.c:136:9: sparse: got restricted __le32 *
drivers/dma/fsl-edma-common.c:435:9: sparse: sparse: cast from restricted __le32
drivers/dma/fsl-edma-common.c:435:9: sparse: sparse: cast from restricted __le32
drivers/dma/fsl-edma-common.c:436:9: sparse: sparse: cast from restricted __le32
drivers/dma/fsl-edma-common.c:436:9: sparse: sparse: cast from restricted __le32
drivers/dma/fsl-edma-common.c:438:9: sparse: sparse: cast from restricted __le16
drivers/dma/fsl-edma-common.c:438:9: sparse: sparse: cast from restricted __le16
drivers/dma/fsl-edma-common.c:439:9: sparse: sparse: incorrect type in argument 2 (different base types) @@ expected unsigned short [usertype] val @@ got restricted __le16 [usertype] soff @@
drivers/dma/fsl-edma-common.c:439:9: sparse: expected unsigned short [usertype] val
drivers/dma/fsl-edma-common.c:439:9: sparse: got restricted __le16 [usertype] soff
drivers/dma/fsl-edma-common.c:439:9: sparse: sparse: incorrect type in argument 2 (different base types) @@ expected unsigned int [usertype] val @@ got restricted __le16 [usertype] soff @@
drivers/dma/fsl-edma-common.c:439:9: sparse: expected unsigned int [usertype] val
drivers/dma/fsl-edma-common.c:439:9: sparse: got restricted __le16 [usertype] soff
drivers/dma/fsl-edma-common.c:441:9: sparse: sparse: cast from restricted __le32
drivers/dma/fsl-edma-common.c:441:9: sparse: sparse: cast from restricted __le32
drivers/dma/fsl-edma-common.c:442:9: sparse: sparse: cast from restricted __le32
drivers/dma/fsl-edma-common.c:442:9: sparse: sparse: cast from restricted __le32
drivers/dma/fsl-edma-common.c:444:9: sparse: sparse: cast from restricted __le16
drivers/dma/fsl-edma-common.c:444:9: sparse: sparse: cast from restricted __le16
drivers/dma/fsl-edma-common.c:445:9: sparse: sparse: cast from restricted __le16
drivers/dma/fsl-edma-common.c:445:9: sparse: sparse: cast from restricted __le16
drivers/dma/fsl-edma-common.c:446:9: sparse: sparse: cast from restricted __le16
drivers/dma/fsl-edma-common.c:446:9: sparse: sparse: cast from restricted __le16
drivers/dma/fsl-edma-common.c:448:9: sparse: sparse: cast from restricted __le32
drivers/dma/fsl-edma-common.c:448:9: sparse: sparse: cast from restricted __le32
drivers/dma/fsl-edma-common.c:456:9: sparse: sparse: cast from restricted __le16
drivers/dma/fsl-edma-common.c:456:9: sparse: sparse: cast from restricted __le16
--
>> drivers/dma/fsl-edma-main.c:61:16: sparse: sparse: cast removes address space '__iomem' of expression
>> drivers/dma/fsl-edma-main.c:61:16: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/dma/fsl-edma-main.c:61:16: sparse: expected void [noderef] __iomem *addr
drivers/dma/fsl-edma-main.c:61:16: sparse: got restricted __le32 *
drivers/dma/fsl-edma-main.c:65:9: sparse: sparse: cast removes address space '__iomem' of expression
drivers/dma/fsl-edma-main.c:65:9: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/dma/fsl-edma-main.c:65:9: sparse: expected void [noderef] __iomem *addr
drivers/dma/fsl-edma-main.c:65:9: sparse: got restricted __le32 *

vim +/__iomem +76 drivers/dma/fsl-edma-common.c

70
71 static void fsl_edma3_enable_request(struct fsl_edma_chan *fsl_chan)
72 {
73 u32 val, flags;
74
75 flags = fsl_edma_drvflags(fsl_chan);
> 76 val = edma_readl_chreg(fsl_chan, ch_sbr);
77 /* Remote/local swapped wrongly on iMX8 QM Audio edma */
78 if (flags & FSL_EDMA_DRV_QUIRK_SWAPPED) {
79 if (!fsl_chan->is_rxchan)
80 val |= EDMA_V3_CH_SBR_RD;
81 else
82 val |= EDMA_V3_CH_SBR_WR;
83 } else {
84 if (fsl_chan->is_rxchan)
85 val |= EDMA_V3_CH_SBR_RD;
86 else
87 val |= EDMA_V3_CH_SBR_WR;
88 }
89
90 if (fsl_chan->is_remote)
91 val &= ~(EDMA_V3_CH_SBR_RD | EDMA_V3_CH_SBR_WR);
92
93 edma_writel_chreg(fsl_chan, val, ch_sbr);
94
95 if ((flags & (FSL_EDMA_DRV_AXI | FSL_EDMA_DRV_HAS_CHMUX)) &&
96 fsl_chan->srcid && !edma_readl_chreg(fsl_chan, ch_mux))
97 edma_writel_chreg(fsl_chan, fsl_chan->srcid, ch_mux);
98
99 val = edma_readl_chreg(fsl_chan, ch_csr);
100 val |= EDMA_V3_CH_CSR_ERQ;
101 edma_writel_chreg(fsl_chan, val, ch_csr);
102 }
103

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki