All of lore.kernel.org
 help / color / mirror / Atom feed
* [linux-next:master 9429/9861] drivers/mmc/host/sdhci.c:1235:55: sparse: sparse: mixing different enum types:
@ 2020-01-18 18:02 kbuild test robot
  0 siblings, 0 replies; only message in thread
From: kbuild test robot @ 2020-01-18 18:02 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 5367 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   de970dffa7d19eae1d703c3534825308ef8d5dec
commit: f9a7c211216521bcdc4fe43fa26a06e47ef54e10 [9429/9861] mmc: sdhci-omap: Add using external dma
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.1-131-g22978b6b-dirty
        git checkout f9a7c211216521bcdc4fe43fa26a06e47ef54e10
        make ARCH=x86_64 allmodconfig
        make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>


sparse warnings: (new ones prefixed by >>)

>> drivers/mmc/host/sdhci.c:1235:55: sparse: sparse: mixing different enum types:
>> drivers/mmc/host/sdhci.c:1235:55: sparse:    unsigned int enum dma_data_direction
>> drivers/mmc/host/sdhci.c:1235:55: sparse:    unsigned int enum dma_transfer_direction
   drivers/mmc/host/sdhci.c:3253:58: sparse: sparse: Using plain integer as NULL pointer

vim +1235 drivers/mmc/host/sdhci.c

36e1da441fec62 Chunyan Zhang 2020-01-16  1196  
36e1da441fec62 Chunyan Zhang 2020-01-16  1197  static int sdhci_external_dma_setup(struct sdhci_host *host,
36e1da441fec62 Chunyan Zhang 2020-01-16  1198  				    struct mmc_command *cmd)
36e1da441fec62 Chunyan Zhang 2020-01-16  1199  {
36e1da441fec62 Chunyan Zhang 2020-01-16  1200  	int ret, i;
36e1da441fec62 Chunyan Zhang 2020-01-16  1201  	struct dma_async_tx_descriptor *desc;
36e1da441fec62 Chunyan Zhang 2020-01-16  1202  	struct mmc_data *data = cmd->data;
36e1da441fec62 Chunyan Zhang 2020-01-16  1203  	struct dma_chan *chan;
36e1da441fec62 Chunyan Zhang 2020-01-16  1204  	struct dma_slave_config cfg;
36e1da441fec62 Chunyan Zhang 2020-01-16  1205  	dma_cookie_t cookie;
36e1da441fec62 Chunyan Zhang 2020-01-16  1206  	int sg_cnt;
36e1da441fec62 Chunyan Zhang 2020-01-16  1207  
36e1da441fec62 Chunyan Zhang 2020-01-16  1208  	if (!host->mapbase)
36e1da441fec62 Chunyan Zhang 2020-01-16  1209  		return -EINVAL;
36e1da441fec62 Chunyan Zhang 2020-01-16  1210  
36e1da441fec62 Chunyan Zhang 2020-01-16  1211  	cfg.src_addr = host->mapbase + SDHCI_BUFFER;
36e1da441fec62 Chunyan Zhang 2020-01-16  1212  	cfg.dst_addr = host->mapbase + SDHCI_BUFFER;
36e1da441fec62 Chunyan Zhang 2020-01-16  1213  	cfg.src_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
36e1da441fec62 Chunyan Zhang 2020-01-16  1214  	cfg.dst_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
36e1da441fec62 Chunyan Zhang 2020-01-16  1215  	cfg.src_maxburst = data->blksz / 4;
36e1da441fec62 Chunyan Zhang 2020-01-16  1216  	cfg.dst_maxburst = data->blksz / 4;
36e1da441fec62 Chunyan Zhang 2020-01-16  1217  
36e1da441fec62 Chunyan Zhang 2020-01-16  1218  	/* Sanity check: all the SG entries must be aligned by block size. */
36e1da441fec62 Chunyan Zhang 2020-01-16  1219  	for (i = 0; i < data->sg_len; i++) {
36e1da441fec62 Chunyan Zhang 2020-01-16  1220  		if ((data->sg + i)->length % data->blksz)
36e1da441fec62 Chunyan Zhang 2020-01-16  1221  			return -EINVAL;
36e1da441fec62 Chunyan Zhang 2020-01-16  1222  	}
36e1da441fec62 Chunyan Zhang 2020-01-16  1223  
36e1da441fec62 Chunyan Zhang 2020-01-16  1224  	chan = sdhci_external_dma_channel(host, data);
36e1da441fec62 Chunyan Zhang 2020-01-16  1225  
36e1da441fec62 Chunyan Zhang 2020-01-16  1226  	ret = dmaengine_slave_config(chan, &cfg);
36e1da441fec62 Chunyan Zhang 2020-01-16  1227  	if (ret)
36e1da441fec62 Chunyan Zhang 2020-01-16  1228  		return ret;
36e1da441fec62 Chunyan Zhang 2020-01-16  1229  
36e1da441fec62 Chunyan Zhang 2020-01-16  1230  	sg_cnt = sdhci_pre_dma_transfer(host, data, COOKIE_MAPPED);
36e1da441fec62 Chunyan Zhang 2020-01-16  1231  	if (sg_cnt <= 0)
36e1da441fec62 Chunyan Zhang 2020-01-16  1232  		return -EINVAL;
36e1da441fec62 Chunyan Zhang 2020-01-16  1233  
36e1da441fec62 Chunyan Zhang 2020-01-16  1234  	desc = dmaengine_prep_slave_sg(chan, data->sg, data->sg_len,
36e1da441fec62 Chunyan Zhang 2020-01-16 @1235  				       mmc_get_dma_dir(data),
36e1da441fec62 Chunyan Zhang 2020-01-16  1236  				       DMA_PREP_INTERRUPT | DMA_CTRL_ACK);
36e1da441fec62 Chunyan Zhang 2020-01-16  1237  	if (!desc)
36e1da441fec62 Chunyan Zhang 2020-01-16  1238  		return -EINVAL;
36e1da441fec62 Chunyan Zhang 2020-01-16  1239  
36e1da441fec62 Chunyan Zhang 2020-01-16  1240  	desc->callback = NULL;
36e1da441fec62 Chunyan Zhang 2020-01-16  1241  	desc->callback_param = NULL;
36e1da441fec62 Chunyan Zhang 2020-01-16  1242  
36e1da441fec62 Chunyan Zhang 2020-01-16  1243  	cookie = dmaengine_submit(desc);
36e1da441fec62 Chunyan Zhang 2020-01-16  1244  	if (dma_submit_error(cookie))
36e1da441fec62 Chunyan Zhang 2020-01-16  1245  		ret = cookie;
36e1da441fec62 Chunyan Zhang 2020-01-16  1246  
36e1da441fec62 Chunyan Zhang 2020-01-16  1247  	return ret;
36e1da441fec62 Chunyan Zhang 2020-01-16  1248  }
36e1da441fec62 Chunyan Zhang 2020-01-16  1249  

:::::: The code at line 1235 was first introduced by commit
:::::: 36e1da441fec6286765594ea9b91622312827b29 mmc: sdhci: add support for using external DMA devices

:::::: TO: Chunyan Zhang <zhang.chunyan@linaro.org>
:::::: CC: Ulf Hansson <ulf.hansson@linaro.org>

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corporation

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-01-18 18:02 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-18 18:02 [linux-next:master 9429/9861] drivers/mmc/host/sdhci.c:1235:55: sparse: sparse: mixing different enum types: kbuild test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.