* [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.