[xilinx-xlnx:xlnx_rebase_v5.4 942/1768] drivers/mtd/spi-nor/spi-nor.c:5196:14: error: implicit declaration of function 'of_get_next_parent'
by kernel test robot
tree: https://github.com/Xilinx/linux-xlnx xlnx_rebase_v5.4
head: abafefebd1f1e040eef74e4ab571ea08bf745641
commit: 24bcc7359bdd609cedf0a715d77dc39e4ad782db [942/1768] mtd: spi-nor: Added axi-qspi support in spi-nor framework
config: x86_64-randconfig-r013-20211214 (https://download.01.org/0day-ci/archive/20211218/202112181002.zy1XXyLw-lk...)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project b6a2ddb6c8ac29412b1361810972e15221fa021c)
reproduce (this is a W=1 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/Xilinx/linux-xlnx/commit/24bcc7359bdd609cedf0a715d77dc...
git remote add xilinx-xlnx https://github.com/Xilinx/linux-xlnx
git fetch --no-tags xilinx-xlnx xlnx_rebase_v5.4
git checkout 24bcc7359bdd609cedf0a715d77dc39e4ad782db
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash drivers/mtd/spi-nor/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All error/warnings (new ones prefixed by >>):
drivers/mtd/spi-nor/spi-nor.c:691:5: warning: variable 'code' set but not used [-Wunused-but-set-variable]
u8 code;
^
drivers/mtd/spi-nor/spi-nor.c:2741:9: warning: variable 'addr' set but not used [-Wunused-but-set-variable]
loff_t addr = 0;
^
>> drivers/mtd/spi-nor/spi-nor.c:5196:14: error: implicit declaration of function 'of_get_next_parent' [-Werror,-Wimplicit-function-declaration]
np_spi = of_get_next_parent(np);
^
>> drivers/mtd/spi-nor/spi-nor.c:5196:12: warning: incompatible integer to pointer conversion assigning to 'struct device_node *' from 'int' [-Wint-conversion]
np_spi = of_get_next_parent(np);
^ ~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/spi-nor/spi-nor.c:5266:11: error: returning 'const struct flash_info *' from a function with result type 'struct flash_info *' discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers]
return jinfo;
^~~~~
drivers/mtd/spi-nor/spi-nor.c:5281:9: error: returning 'const struct flash_info *' from a function with result type 'struct flash_info *' discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers]
return info;
^~~~
drivers/mtd/spi-nor/spi-nor.c:5295:6: warning: unused variable 'is_dual' [-Wunused-variable]
u32 is_dual;
^
drivers/mtd/spi-nor/spi-nor.c:5294:22: warning: unused variable 'np_spi' [-Wunused-variable]
struct device_node *np_spi;
^
5 warnings and 3 errors generated.
vim +/of_get_next_parent +5196 drivers/mtd/spi-nor/spi-nor.c
5162
5163 static int spi_nor_set_addr_width(struct spi_nor *nor)
5164 {
5165 struct device_node *np = spi_nor_get_flash_node(nor);
5166 struct device_node *np_spi;
5167 if (nor->addr_width) {
5168 /* already configured from SFDP */
5169 } else if (nor->info->addr_width) {
5170 nor->addr_width = nor->info->addr_width;
5171 } else if (nor->mtd.size > 0x1000000) {
5172 #ifdef CONFIG_OF
5173 np_spi = of_get_next_parent(np);
5174 if (of_property_match_string(np_spi, "compatible",
5175 "xlnx,zynq-qspi-1.0") >= 0) {
5176 int status;
5177
5178 nor->addr_width = 3;
5179 nor->params.set_4byte(nor, false);
5180 status = read_ear(nor, (struct flash_info *)nor->info);
5181 if (status < 0)
5182 dev_warn(nor->dev, "failed to read ear reg\n");
5183 else
5184 nor->curbank = status & EAR_SEGMENT_MASK;
5185 } else {
5186 #endif
5187 /*
5188 * enable 4-byte addressing if the
5189 * device exceeds 16MiB
5190 */
5191 nor->addr_width = 4;
5192 if (JEDEC_MFR(nor->info) == SNOR_MFR_SPANSION ||
5193 nor->info->flags & SPI_NOR_4B_OPCODES) {
5194 spi_nor_set_4byte_opcodes(nor);
5195 } else {
> 5196 np_spi = of_get_next_parent(np);
5197 if (of_property_match_string(np_spi,
5198 "compatible",
5199 "xlnx,xps-spi-2.00.a") >= 0) {
5200 nor->addr_width = 3;
5201 nor->params.set_4byte(nor, false);
5202 } else {
5203 nor->params.set_4byte(nor, true);
5204 if (nor->isstacked) {
5205 nor->spi->master->flags |=
5206 SPI_MASTER_U_PAGE;
5207 nor->params.set_4byte(nor, true);
5208 nor->spi->master->flags &=
5209 ~SPI_MASTER_U_PAGE;
5210 }
5211 }
5212 }
5213 #ifdef CONFIG_OF
5214 }
5215 #endif
5216 } else {
5217 nor->addr_width = 3;
5218 }
5219
5220 if (nor->addr_width > SPI_NOR_MAX_ADDR_WIDTH) {
5221 dev_err(nor->dev, "address width is too large: %u\n",
5222 nor->addr_width);
5223 return -EINVAL;
5224 }
5225
5226 /* Set 4byte opcodes when possible. */
5227 if (nor->addr_width == 4 && nor->flags & SNOR_F_4B_OPCODES &&
5228 !(nor->flags & SNOR_F_HAS_4BAIT))
5229 spi_nor_set_4byte_opcodes(nor);
5230
5231 return 0;
5232 }
5233
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
9 months
[xilinx-xlnx:xlnx_rebase_v5.10 1947/1981] drivers/usb/dwc3/dwc3-xilinx.c:509:6: warning: no previous prototype for 'dwc3_xilinx_wakeup_capable'
by kernel test robot
tree: https://github.com/Xilinx/linux-xlnx xlnx_rebase_v5.10
head: 87ec9a2d98a7a7dfc98b57348a0ec310fd170e4b
commit: e2af4271df5c22814241e855edd3a23d6fae326b [1947/1981] usb: dwc3: Added remote wake-up in xilinx glue driver
config: arm64-allyesconfig (https://download.01.org/0day-ci/archive/20211218/202112181013.6S0P8GDs-lk...)
compiler: aarch64-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 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/Xilinx/linux-xlnx/commit/e2af4271df5c22814241e855edd3a...
git remote add xilinx-xlnx https://github.com/Xilinx/linux-xlnx
git fetch --no-tags xilinx-xlnx xlnx_rebase_v5.10
git checkout e2af4271df5c22814241e855edd3a23d6fae326b
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arm64 SHELL=/bin/bash drivers/remoteproc/ drivers/usb/dwc3/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> drivers/usb/dwc3/dwc3-xilinx.c:509:6: warning: no previous prototype for 'dwc3_xilinx_wakeup_capable' [-Wmissing-prototypes]
509 | void dwc3_xilinx_wakeup_capable(struct device *dev, bool wakeup)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/dwc3_xilinx_wakeup_capable +509 drivers/usb/dwc3/dwc3-xilinx.c
507
508 /* xilinx feature support functions */
> 509 void dwc3_xilinx_wakeup_capable(struct device *dev, bool wakeup)
510 {
511 struct device_node *node = of_node_get(dev->parent->of_node);
512
513 /* check for valid parent node */
514 while (node) {
515 if (of_device_is_compatible(node, "xlnx,zynqmp-dwc3") ||
516 of_device_is_compatible(node, "xlnx,versal-dwc3"))
517 break;
518
519 /* get the next parent node */
520 node = of_get_next_parent(node);
521 }
522
523 if (node) {
524 struct platform_device *pdev_parent;
525 struct dwc3_xlnx *priv_data;
526
527 pdev_parent = of_find_device_by_node(node);
528 priv_data = platform_get_drvdata(pdev_parent);
529
530 /* Set wakeup capable as true or false */
531 priv_data->wakeup_capable = wakeup;
532
533 /* Allow D3 state if wakeup capable only */
534 priv_data->enable_d3_suspend = wakeup;
535 }
536 }
537
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
9 months
[xilinx-xlnx:xlnx_rebase_v5.10 142/1981] drivers/dma/xilinx/vdmatest.c:329:57: warning: implicit conversion from 'enum dma_transfer_direction' to 'enum dma_data_direction'
by kernel test robot
tree: https://github.com/Xilinx/linux-xlnx xlnx_rebase_v5.10
head: 87ec9a2d98a7a7dfc98b57348a0ec310fd170e4b
commit: de6c244aace5694a54d182647e46fa5113dff4fb [142/1981] dmaengine: xilinx: Add vdmatest test client code
config: arm-allyesconfig (https://download.01.org/0day-ci/archive/20211218/202112181037.wYIfDyow-lk...)
compiler: arm-linux-gnueabi-gcc (GCC) 11.2.0
reproduce (this is a W=1 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/Xilinx/linux-xlnx/commit/de6c244aace5694a54d182647e46f...
git remote add xilinx-xlnx https://github.com/Xilinx/linux-xlnx
git fetch --no-tags xilinx-xlnx xlnx_rebase_v5.10
git checkout de6c244aace5694a54d182647e46fa5113dff4fb
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arm SHELL=/bin/bash drivers/dma/xilinx/ drivers/hsi/clients/ drivers/mtd/nand/raw/ drivers/pinctrl/aspeed/ drivers/remoteproc/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
In file included from include/linux/dma/xilinx_dma.h:11,
from drivers/dma/xilinx/vdmatest.c:21:
drivers/dma/xilinx/vdmatest.c: In function 'xilinx_vdmatest_slave_func':
>> drivers/dma/xilinx/vdmatest.c:329:57: warning: implicit conversion from 'enum dma_transfer_direction' to 'enum dma_data_direction' [-Wenum-conversion]
329 | DMA_DEV_TO_MEM);
| ^~~~~~~~~~~~~~
include/linux/dma-mapping.h:383:66: note: in definition of macro 'dma_map_single'
383 | #define dma_map_single(d, a, s, r) dma_map_single_attrs(d, a, s, r, 0)
| ^
drivers/dma/xilinx/vdmatest.c:350:57: warning: implicit conversion from 'enum dma_transfer_direction' to 'enum dma_data_direction' [-Wenum-conversion]
350 | DMA_MEM_TO_DEV);
| ^~~~~~~~~~~~~~
include/linux/dma-mapping.h:383:66: note: in definition of macro 'dma_map_single'
383 | #define dma_map_single(d, a, s, r) dma_map_single_attrs(d, a, s, r, 0)
| ^
drivers/dma/xilinx/vdmatest.c:370:49: warning: implicit conversion from 'enum dma_transfer_direction' to 'enum dma_data_direction' [-Wenum-conversion]
370 | DMA_MEM_TO_DEV);
| ^~~~~~~~~~~~~~
include/linux/dma-mapping.h:384:70: note: in definition of macro 'dma_unmap_single'
384 | #define dma_unmap_single(d, a, s, r) dma_unmap_single_attrs(d, a, s, r, 0)
| ^
drivers/dma/xilinx/vdmatest.c:374:49: warning: implicit conversion from 'enum dma_transfer_direction' to 'enum dma_data_direction' [-Wenum-conversion]
374 | DMA_DEV_TO_MEM);
| ^~~~~~~~~~~~~~
include/linux/dma-mapping.h:384:70: note: in definition of macro 'dma_unmap_single'
384 | #define dma_unmap_single(d, a, s, r) dma_unmap_single_attrs(d, a, s, r, 0)
| ^
drivers/dma/xilinx/vdmatest.c:446:57: warning: implicit conversion from 'enum dma_transfer_direction' to 'enum dma_data_direction' [-Wenum-conversion]
446 | test_buf_size, DMA_DEV_TO_MEM);
| ^~~~~~~~~~~~~~
include/linux/dma-mapping.h:384:70: note: in definition of macro 'dma_unmap_single'
384 | #define dma_unmap_single(d, a, s, r) dma_unmap_single_attrs(d, a, s, r, 0)
| ^
vim +329 drivers/dma/xilinx/vdmatest.c
233
234 /*
235 * Function for slave transfers
236 * Each thread requires 2 channels, one for transmit, and one for receive
237 */
238 static int xilinx_vdmatest_slave_func(void *data)
239 {
240 struct xilinx_vdmatest_slave_thread *thread = data;
241 struct dma_chan *tx_chan, *rx_chan;
242 const char *thread_name;
243 unsigned int len, error_count;
244 unsigned int failed_tests = 0, total_tests = 0;
245 dma_cookie_t tx_cookie = 0, rx_cookie = 0;
246 enum dma_status status;
247 enum dma_ctrl_flags flags;
248 int ret = -ENOMEM, i;
249 struct xilinx_vdma_config config;
250
251 thread_name = current->comm;
252
253 /* Limit testing scope here */
254 test_buf_size = hsize * vsize;
255
256 /* This barrier ensures 'thread' is initialized and
257 * we get valid DMA channels
258 */
259 smp_rmb();
260 tx_chan = thread->tx_chan;
261 rx_chan = thread->rx_chan;
262
263 thread->srcs = kcalloc(frm_cnt+1, sizeof(u8 *), GFP_KERNEL);
264 if (!thread->srcs)
265 goto err_srcs;
266 for (i = 0; i < frm_cnt; i++) {
267 thread->srcs[i] = kmalloc(test_buf_size, GFP_KERNEL);
268 if (!thread->srcs[i])
269 goto err_srcbuf;
270 }
271
272 thread->dsts = kcalloc(frm_cnt+1, sizeof(u8 *), GFP_KERNEL);
273 if (!thread->dsts)
274 goto err_dsts;
275 for (i = 0; i < frm_cnt; i++) {
276 thread->dsts[i] = kmalloc(test_buf_size, GFP_KERNEL);
277 if (!thread->dsts[i])
278 goto err_dstbuf;
279 }
280
281 set_user_nice(current, 10);
282
283 flags = DMA_CTRL_ACK | DMA_PREP_INTERRUPT;
284
285 while (!kthread_should_stop()
286 && !(iterations && total_tests >= iterations)) {
287 struct dma_device *tx_dev = tx_chan->device;
288 struct dma_device *rx_dev = rx_chan->device;
289 struct dma_async_tx_descriptor *txd = NULL;
290 struct dma_async_tx_descriptor *rxd = NULL;
291 struct completion rx_cmp, tx_cmp;
292 unsigned long rx_tmo =
293 msecs_to_jiffies(30000); /* RX takes longer */
294 unsigned long tx_tmo = msecs_to_jiffies(30000);
295 u8 align = 0;
296
297 total_tests++;
298
299 /* honor larger alignment restrictions */
300 align = tx_dev->copy_align;
301 if (rx_dev->copy_align > align)
302 align = rx_dev->copy_align;
303
304 if (1 << align > test_buf_size) {
305 pr_err("%u-byte buffer too small for %d-byte alignment\n",
306 test_buf_size, 1 << align);
307 break;
308 }
309
310 len = test_buf_size;
311 xilinx_vdmatest_init_srcs(thread->srcs, 0, len);
312 xilinx_vdmatest_init_dsts(thread->dsts, 0, len);
313
314 /* Zero out configuration */
315 memset(&config, 0, sizeof(struct xilinx_vdma_config));
316
317 /* Set up hardware configuration information */
318 config.frm_cnt_en = 1;
319 config.coalesc = frm_cnt * 10;
320 config.park = 1;
321 xilinx_vdma_channel_set_config(tx_chan, &config);
322
323 xilinx_vdma_channel_set_config(rx_chan, &config);
324
325 for (i = 0; i < frm_cnt; i++) {
326 dma_dsts[i] = dma_map_single(rx_dev->dev,
327 thread->dsts[i],
328 test_buf_size,
> 329 DMA_DEV_TO_MEM);
330
331 if (dma_mapping_error(rx_dev->dev, dma_dsts[i])) {
332 failed_tests++;
333 continue;
334 }
335 xt.dst_start = dma_dsts[i];
336 xt.dir = DMA_DEV_TO_MEM;
337 xt.numf = vsize;
338 xt.sgl[0].size = hsize;
339 xt.sgl[0].icg = 0;
340 xt.frame_size = 1;
341 rxd = rx_dev->device_prep_interleaved_dma(rx_chan,
342 &xt, flags);
343 rx_cookie = rxd->tx_submit(rxd);
344 }
345
346 for (i = 0; i < frm_cnt; i++) {
347 u8 *buf = thread->srcs[i];
348
349 dma_srcs[i] = dma_map_single(tx_dev->dev, buf, len,
350 DMA_MEM_TO_DEV);
351
352 if (dma_mapping_error(tx_dev->dev, dma_srcs[i])) {
353 failed_tests++;
354 continue;
355 }
356 xt.src_start = dma_srcs[i];
357 xt.dir = DMA_MEM_TO_DEV;
358 xt.numf = vsize;
359 xt.sgl[0].size = hsize;
360 xt.sgl[0].icg = 0;
361 xt.frame_size = 1;
362 txd = tx_dev->device_prep_interleaved_dma(tx_chan,
363 &xt, flags);
364 tx_cookie = txd->tx_submit(txd);
365 }
366
367 if (!rxd || !txd) {
368 for (i = 0; i < frm_cnt; i++)
369 dma_unmap_single(tx_dev->dev, dma_srcs[i], len,
370 DMA_MEM_TO_DEV);
371 for (i = 0; i < frm_cnt; i++)
372 dma_unmap_single(rx_dev->dev, dma_dsts[i],
373 test_buf_size,
374 DMA_DEV_TO_MEM);
375 pr_warn("%s: #%u: prep error with len=0x%x ",
376 thread_name, total_tests - 1, len);
377 msleep(100);
378 failed_tests++;
379 continue;
380 }
381
382 init_completion(&rx_cmp);
383 rxd->callback = xilinx_vdmatest_slave_rx_callback;
384 rxd->callback_param = &rx_cmp;
385
386 init_completion(&tx_cmp);
387 txd->callback = xilinx_vdmatest_slave_tx_callback;
388 txd->callback_param = &tx_cmp;
389
390 if (dma_submit_error(rx_cookie) ||
391 dma_submit_error(tx_cookie)) {
392 pr_warn("%s: #%u: submit error %d/%d with len=0x%x ",
393 thread_name, total_tests - 1,
394 rx_cookie, tx_cookie, len);
395 msleep(100);
396 failed_tests++;
397 continue;
398 }
399 dma_async_issue_pending(tx_chan);
400 dma_async_issue_pending(rx_chan);
401
402 tx_tmo = wait_for_completion_timeout(&tx_cmp, tx_tmo);
403
404 status = dma_async_is_tx_complete(tx_chan, tx_cookie,
405 NULL, NULL);
406
407 if (tx_tmo == 0) {
408 pr_warn("%s: #%u: tx test timed out\n",
409 thread_name, total_tests - 1);
410 failed_tests++;
411 continue;
412 } else if (status != DMA_COMPLETE) {
413 pr_warn(
414 "%s: #%u: tx got completion callback, ",
415 thread_name, total_tests - 1);
416 pr_warn("but status is \'%s\'\n",
417 status == DMA_ERROR ? "error" :
418 "in progress");
419 failed_tests++;
420 continue;
421 }
422
423 rx_tmo = wait_for_completion_timeout(&rx_cmp, rx_tmo);
424 status = dma_async_is_tx_complete(rx_chan, rx_cookie,
425 NULL, NULL);
426
427 if (rx_tmo == 0) {
428 pr_warn("%s: #%u: rx test timed out\n",
429 thread_name, total_tests - 1);
430 failed_tests++;
431 continue;
432 } else if (status != DMA_COMPLETE) {
433 pr_warn(
434 "%s: #%u: rx got completion callback, ",
435 thread_name, total_tests - 1);
436 pr_warn("but status is \'%s\'\n",
437 status == DMA_ERROR ? "error" :
438 "in progress");
439 failed_tests++;
440 continue;
441 }
442
443 /* Unmap by myself */
444 for (i = 0; i < frm_cnt; i++)
445 dma_unmap_single(rx_dev->dev, dma_dsts[i],
446 test_buf_size, DMA_DEV_TO_MEM);
447
448 error_count = 0;
449
450 pr_debug("%s: verifying source buffer...\n", thread_name);
451 error_count += xilinx_vdmatest_verify(thread->srcs, 0, 0,
452 0, PATTERN_SRC, true);
453 error_count += xilinx_vdmatest_verify(thread->srcs, 0,
454 len, 0, PATTERN_SRC | PATTERN_COPY, true);
455 error_count += xilinx_vdmatest_verify(thread->srcs, len,
456 test_buf_size, len, PATTERN_SRC, true);
457
458 pr_debug("%s: verifying dest buffer...\n",
459 thread->task->comm);
460 error_count += xilinx_vdmatest_verify(thread->dsts, 0, 0,
461 0, PATTERN_DST, false);
462 error_count += xilinx_vdmatest_verify(thread->dsts, 0,
463 len, 0, PATTERN_SRC | PATTERN_COPY, false);
464 error_count += xilinx_vdmatest_verify(thread->dsts, len,
465 test_buf_size, len, PATTERN_DST, false);
466
467 if (error_count) {
468 pr_warn("%s: #%u: %u errors with len=0x%x\n",
469 thread_name, total_tests - 1, error_count, len);
470 failed_tests++;
471 } else {
472 pr_debug("%s: #%u: No errors with len=0x%x\n",
473 thread_name, total_tests - 1, len);
474 }
475 }
476
477 ret = 0;
478 for (i = 0; thread->dsts[i]; i++)
479 kfree(thread->dsts[i]);
480 err_dstbuf:
481 kfree(thread->dsts);
482 err_dsts:
483 for (i = 0; thread->srcs[i]; i++)
484 kfree(thread->srcs[i]);
485 err_srcbuf:
486 kfree(thread->srcs);
487 err_srcs:
488 pr_notice("%s: terminating after %u tests, %u failures (status %d)\n",
489 thread_name, total_tests, failed_tests, ret);
490
491 thread->done = true;
492 wake_up(&thread_wait);
493
494 return ret;
495 }
496
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
9 months
Re: [Patch v2 8/9] soc: tegra: cbb: Add driver for Tegra234 CBB2.0
by kernel test robot
Hi Sumit,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on robh/for-next]
[also build test WARNING on tegra-drm/drm/tegra/for-next v5.16-rc5 next-20211217]
[cannot apply to tegra/for-next]
[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/Sumit-Gupta/CBB-driver-for-Tegra...
base: https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
config: arm64-allyesconfig (https://download.01.org/0day-ci/archive/20211218/202112180744.BM6U6RpD-lk...)
compiler: aarch64-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 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/79bd78736f10c5f36ba4a18c6d313d62c...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Sumit-Gupta/CBB-driver-for-Tegra194-Tegra234-Tegra-Grace/20211217-200840
git checkout 79bd78736f10c5f36ba4a18c6d313d62cae7b010
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arm64 SHELL=/bin/bash drivers/soc/tegra/cbb/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
drivers/soc/tegra/cbb/tegra234-cbb.c: In function 'print_errlog_err':
>> drivers/soc/tegra/cbb/tegra234-cbb.c:260:44: warning: variable 'access_id' set but not used [-Wunused-but-set-variable]
260 | u8 beat_size = 0, access_type = 0, access_id = 0;
| ^~~~~~~~~
vim +/access_id +260 drivers/soc/tegra/cbb/tegra234-cbb.c
255
256 static void print_errlog_err(struct seq_file *file, struct tegra_cbb_errmon_record *errmon)
257 {
258 u8 cache_type = 0, prot_type = 0, burst_length = 0;
259 u8 mstr_id = 0, grpsec = 0, vqc = 0, falconsec = 0;
> 260 u8 beat_size = 0, access_type = 0, access_id = 0;
261 u8 slave_id = 0, fab_id = 0, burst_type = 0;
262 char fabric_name[20];
263
264 mstr_id = FIELD_GET(FAB_EM_EL_MSTRID, errmon->mn_user_bits);
265 vqc = FIELD_GET(FAB_EM_EL_VQC, errmon->mn_user_bits);
266 grpsec = FIELD_GET(FAB_EM_EL_GRPSEC, errmon->mn_user_bits);
267 falconsec = FIELD_GET(FAB_EM_EL_FALCONSEC, errmon->mn_user_bits);
268
269 fab_id = FIELD_GET(FAB_EM_EL_FABID, errmon->mn_attr2);
270 slave_id = FIELD_GET(FAB_EM_EL_SLAVEID, errmon->mn_attr2);
271
272 access_id = FIELD_GET(FAB_EM_EL_ACCESSID, errmon->mn_attr1);
273
274 cache_type = FIELD_GET(FAB_EM_EL_AXCACHE, errmon->mn_attr0);
275 prot_type = FIELD_GET(FAB_EM_EL_AXPROT, errmon->mn_attr0);
276 burst_length = FIELD_GET(FAB_EM_EL_BURSTLENGTH, errmon->mn_attr0);
277 burst_type = FIELD_GET(FAB_EM_EL_BURSTTYPE, errmon->mn_attr0);
278 beat_size = FIELD_GET(FAB_EM_EL_BEATSIZE, errmon->mn_attr0);
279 access_type = FIELD_GET(FAB_EM_EL_ACCESSTYPE, errmon->mn_attr0);
280
281 print_cbb_err(file, "\t First logged Err Code : %s\n",
282 t234_errmon_errors[errmon->err_type].errcode);
283
284 print_cbb_err(file, "\t MASTER_ID\t\t: %s\n", errmon->tegra_cbb_master_id[mstr_id]);
285 print_cbb_err(file, "\t Address\t\t: 0x%llx\n", (u64)errmon->addr_access);
286
287 print_cache(file, cache_type);
288 print_prot(file, prot_type);
289
290 print_cbb_err(file, "\t Access_Type\t\t: %s", (access_type) ? "Write\n" : "Read\n");
291
292 if (fab_id == PSC_FAB_ID)
293 strcpy(fabric_name, "psc-fabric");
294 else if (fab_id == FSI_FAB_ID)
295 strcpy(fabric_name, "fsi-fabric");
296 else
297 strcpy(fabric_name, errmon->name);
298
299 print_cbb_err(file, "\t Fabric\t\t: %s\n", fabric_name);
300 print_cbb_err(file, "\t Slave_Id\t\t: 0x%x\n", slave_id);
301 print_cbb_err(file, "\t Burst_length\t\t: 0x%x\n", burst_length);
302 print_cbb_err(file, "\t Burst_type\t\t: 0x%x\n", burst_type);
303 print_cbb_err(file, "\t Beat_size\t\t: 0x%x\n", beat_size);
304 print_cbb_err(file, "\t VQC\t\t\t: 0x%x\n", vqc);
305 print_cbb_err(file, "\t GRPSEC\t\t: 0x%x\n", grpsec);
306 print_cbb_err(file, "\t FALCONSEC\t\t: 0x%x\n", falconsec);
307
308 if ((fab_id == PSC_FAB_ID) || (fab_id == FSI_FAB_ID))
309 return;
310
311 if (!strcmp(errmon->noc_errors[errmon->err_type].errcode, "TIMEOUT_ERR")) {
312 tegra234_lookup_slave_timeout(file, errmon, slave_id, fab_id);
313 return;
314 }
315 print_cbb_err(file, "\t Slave\t\t\t: %s\n", errmon->sn_addr_map[slave_id].slave_name);
316 }
317
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
9 months
[ti:ti-rt-linux-5.10.y 8411/9635] drivers/clocksource/timer-ti-dm-systimer.c:649:32: warning: incompatible pointer to integer conversion passing 'int *' to parameter of type 'unsigned int'
by kernel test robot
tree: git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git ti-rt-linux-5.10.y
head: 3772fcad17273ce669d79cdb635eabeb2ad799ee
commit: 6e260fc2770c157f81704b403e6e3d40e0e10f97 [8411/9635] clocksource/drivers/timer-ti-dm: ack pending interrupt during suspend
config: arm-randconfig-r021-20211217 (https://download.01.org/0day-ci/archive/20211218/202112180757.ouuaTTCy-lk...)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 9043c3d65b11b442226015acfbf8167684586cfa)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm cross compiling tool for clang build
# apt-get install binutils-arm-linux-gnueabi
git remote add ti git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git
git fetch --no-tags ti ti-rt-linux-5.10.y
git checkout 6e260fc2770c157f81704b403e6e3d40e0e10f97
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm SHELL=/bin/bash drivers/clocksource/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> drivers/clocksource/timer-ti-dm-systimer.c:649:32: warning: incompatible pointer to integer conversion passing 'int *' to parameter of type 'unsigned int' [-Wint-conversion]
clkev_irq_desc = irq_to_desc(&clkevt->dev.irq);
^~~~~~~~~~~~~~~~
include/linux/irqnr.h:9:50: note: passing argument to parameter 'irq' here
extern struct irq_desc *irq_to_desc(unsigned int irq);
^
1 warning generated.
vim +649 drivers/clocksource/timer-ti-dm-systimer.c
622
623 static int __init dmtimer_clockevent_init(struct device_node *np)
624 {
625 struct dmtimer_clockevent *clkevt;
626 int error;
627
628 clkevt = kzalloc(sizeof(*clkevt), GFP_KERNEL);
629 if (!clkevt)
630 return -ENOMEM;
631
632 error = dmtimer_clkevt_init_common(clkevt, np,
633 CLOCK_EVT_FEAT_PERIODIC |
634 CLOCK_EVT_FEAT_ONESHOT,
635 cpu_possible_mask, "clockevent",
636 300);
637 if (error)
638 goto err_out_free;
639
640 clockevents_config_and_register(&clkevt->dev, clkevt->t.rate,
641 3, /* Timer internal resync latency */
642 0xffffffff);
643
644 if (of_machine_is_compatible("ti,am33xx") ||
645 of_machine_is_compatible("ti,am43")) {
646 clkevt->dev.suspend = omap_clockevent_idle;
647 clkevt->dev.resume = omap_clockevent_unidle;
648
> 649 clkev_irq_desc = irq_to_desc(&clkevt->dev.irq);
650 if (clkev_irq_desc)
651 clkev_irq_chip = irq_desc_get_chip(clkev_irq_desc);
652 }
653
654 return 0;
655
656 err_out_free:
657 kfree(clkevt);
658
659 return error;
660 }
661
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
9 months
[xilinx-xlnx:xlnx_rebase_v5.10 140/1981] drivers/dma/xilinx/axidmatest.c:339:54: warning: implicit conversion from 'enum dma_transfer_direction' to 'enum dma_data_direction'
by kernel test robot
tree: https://github.com/Xilinx/linux-xlnx xlnx_rebase_v5.10
head: 87ec9a2d98a7a7dfc98b57348a0ec310fd170e4b
commit: 901cbedb0639634b09a593eebdea3a1d5f3e2767 [140/1981] dmaengine: xilinx: Add axidmatest test client code
config: arm-allyesconfig (https://download.01.org/0day-ci/archive/20211218/202112180624.lLBY2qeG-lk...)
compiler: arm-linux-gnueabi-gcc (GCC) 11.2.0
reproduce (this is a W=1 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/Xilinx/linux-xlnx/commit/901cbedb0639634b09a593eebdea3...
git remote add xilinx-xlnx https://github.com/Xilinx/linux-xlnx
git fetch --no-tags xilinx-xlnx xlnx_rebase_v5.10
git checkout 901cbedb0639634b09a593eebdea3a1d5f3e2767
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arm SHELL=/bin/bash drivers/dma/xilinx/ drivers/hsi/clients/ drivers/mtd/nand/raw/ drivers/pinctrl/aspeed/ drivers/remoteproc/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
drivers/dma/xilinx/axidmatest.c: In function 'dmatest_slave_func':
drivers/dma/xilinx/axidmatest.c:294:17: warning: ISO C90 forbids variable length array 'dma_srcs' [-Wvla]
294 | dma_addr_t dma_srcs[src_cnt];
| ^~~~~~~~~~
drivers/dma/xilinx/axidmatest.c:295:17: warning: ISO C90 forbids variable length array 'dma_dsts' [-Wvla]
295 | dma_addr_t dma_dsts[dst_cnt];
| ^~~~~~~~~~
drivers/dma/xilinx/axidmatest.c:302:24: warning: ISO C90 forbids variable length array 'tx_sg' [-Wvla]
302 | struct scatterlist tx_sg[bd_cnt];
| ^~~~~~~~~~~
drivers/dma/xilinx/axidmatest.c:303:24: warning: ISO C90 forbids variable length array 'rx_sg' [-Wvla]
303 | struct scatterlist rx_sg[bd_cnt];
| ^~~~~~~~~~~
In file included from include/linux/dma/xilinx_dma.h:11,
from drivers/dma/xilinx/axidmatest.c:24:
>> drivers/dma/xilinx/axidmatest.c:339:54: warning: implicit conversion from 'enum dma_transfer_direction' to 'enum dma_data_direction' [-Wenum-conversion]
339 | DMA_MEM_TO_DEV);
| ^~~~~~~~~~~~~~
include/linux/dma-mapping.h:383:66: note: in definition of macro 'dma_map_single'
383 | #define dma_map_single(d, a, s, r) dma_map_single_attrs(d, a, s, r, 0)
| ^
drivers/dma/xilinx/axidmatest.c:369:50: warning: implicit conversion from 'enum dma_transfer_direction' to 'enum dma_data_direction' [-Wenum-conversion]
369 | DMA_MEM_TO_DEV);
| ^~~~~~~~~~~~~~
include/linux/dma-mapping.h:384:70: note: in definition of macro 'dma_unmap_single'
384 | #define dma_unmap_single(d, a, s, r) dma_unmap_single_attrs(d, a, s, r, 0)
| ^
vim +339 drivers/dma/xilinx/axidmatest.c
223
224 /* Function for slave transfers
225 * Each thread requires 2 channels, one for transmit, and one for receive
226 */
227 static int dmatest_slave_func(void *data)
228 {
229 struct dmatest_slave_thread *thread = data;
230 struct dma_chan *tx_chan;
231 struct dma_chan *rx_chan;
232 const char *thread_name;
233 unsigned int src_off, dst_off, len;
234 unsigned int error_count;
235 unsigned int failed_tests = 0;
236 unsigned int total_tests = 0;
237 dma_cookie_t tx_cookie;
238 dma_cookie_t rx_cookie;
239 enum dma_status status;
240 enum dma_ctrl_flags flags;
241 int ret;
242 int src_cnt;
243 int dst_cnt;
244 int bd_cnt = 11;
245 int i;
246
247 ktime_t ktime, start, diff;
248 ktime_t filltime = 0;
249 ktime_t comparetime = 0;
250 s64 runtime = 0;
251 unsigned long long total_len = 0;
252 thread_name = current->comm;
253 ret = -ENOMEM;
254
255
256 /* Ensure that all previous reads are complete */
257 smp_rmb();
258 tx_chan = thread->tx_chan;
259 rx_chan = thread->rx_chan;
260 dst_cnt = bd_cnt;
261 src_cnt = bd_cnt;
262
263 thread->srcs = kcalloc(src_cnt + 1, sizeof(u8 *), GFP_KERNEL);
264 if (!thread->srcs)
265 goto err_srcs;
266 for (i = 0; i < src_cnt; i++) {
267 thread->srcs[i] = kmalloc(test_buf_size, GFP_KERNEL);
268 if (!thread->srcs[i])
269 goto err_srcbuf;
270 }
271 thread->srcs[i] = NULL;
272
273 thread->dsts = kcalloc(dst_cnt + 1, sizeof(u8 *), GFP_KERNEL);
274 if (!thread->dsts)
275 goto err_dsts;
276 for (i = 0; i < dst_cnt; i++) {
277 thread->dsts[i] = kmalloc(test_buf_size, GFP_KERNEL);
278 if (!thread->dsts[i])
279 goto err_dstbuf;
280 }
281 thread->dsts[i] = NULL;
282
283 set_user_nice(current, 10);
284
285 flags = DMA_CTRL_ACK | DMA_PREP_INTERRUPT;
286
287 ktime = ktime_get();
288 while (!kthread_should_stop() &&
289 !(iterations && total_tests >= iterations)) {
290 struct dma_device *tx_dev = tx_chan->device;
291 struct dma_device *rx_dev = rx_chan->device;
292 struct dma_async_tx_descriptor *txd = NULL;
293 struct dma_async_tx_descriptor *rxd = NULL;
294 dma_addr_t dma_srcs[src_cnt];
295 dma_addr_t dma_dsts[dst_cnt];
296 struct completion rx_cmp;
297 struct completion tx_cmp;
298 unsigned long rx_tmo =
299 msecs_to_jiffies(300000); /* RX takes longer */
300 unsigned long tx_tmo = msecs_to_jiffies(30000);
301 u8 align = 0;
> 302 struct scatterlist tx_sg[bd_cnt];
303 struct scatterlist rx_sg[bd_cnt];
304
305 total_tests++;
306
307 /* honor larger alignment restrictions */
308 align = tx_dev->copy_align;
309 if (rx_dev->copy_align > align)
310 align = rx_dev->copy_align;
311
312 if (1 << align > test_buf_size) {
313 pr_err("%u-byte buffer too small for %d-byte alignment\n",
314 test_buf_size, 1 << align);
315 break;
316 }
317
318 len = dmatest_random() % test_buf_size + 1;
319 len = (len >> align) << align;
320 if (!len)
321 len = 1 << align;
322 total_len += len;
323 src_off = dmatest_random() % (test_buf_size - len + 1);
324 dst_off = dmatest_random() % (test_buf_size - len + 1);
325
326 src_off = (src_off >> align) << align;
327 dst_off = (dst_off >> align) << align;
328
329 start = ktime_get();
330 dmatest_init_srcs(thread->srcs, src_off, len);
331 dmatest_init_dsts(thread->dsts, dst_off, len);
332 diff = ktime_sub(ktime_get(), start);
333 filltime = ktime_add(filltime, diff);
334
335 for (i = 0; i < src_cnt; i++) {
336 u8 *buf = thread->srcs[i] + src_off;
337
338 dma_srcs[i] = dma_map_single(tx_dev->dev, buf, len,
> 339 DMA_MEM_TO_DEV);
340 }
341
342 for (i = 0; i < dst_cnt; i++) {
343 dma_dsts[i] = dma_map_single(rx_dev->dev,
344 thread->dsts[i],
345 test_buf_size,
346 DMA_BIDIRECTIONAL);
347 }
348
349 sg_init_table(tx_sg, bd_cnt);
350 sg_init_table(rx_sg, bd_cnt);
351
352 for (i = 0; i < bd_cnt; i++) {
353 sg_dma_address(&tx_sg[i]) = dma_srcs[i];
354 sg_dma_address(&rx_sg[i]) = dma_dsts[i] + dst_off;
355
356 sg_dma_len(&tx_sg[i]) = len;
357 sg_dma_len(&rx_sg[i]) = len;
358 }
359
360 rxd = rx_dev->device_prep_slave_sg(rx_chan, rx_sg, bd_cnt,
361 DMA_DEV_TO_MEM, flags, NULL);
362
363 txd = tx_dev->device_prep_slave_sg(tx_chan, tx_sg, bd_cnt,
364 DMA_MEM_TO_DEV, flags, NULL);
365
366 if (!rxd || !txd) {
367 for (i = 0; i < src_cnt; i++)
368 dma_unmap_single(tx_dev->dev, dma_srcs[i], len,
369 DMA_MEM_TO_DEV);
370 for (i = 0; i < dst_cnt; i++)
371 dma_unmap_single(rx_dev->dev, dma_dsts[i],
372 test_buf_size,
373 DMA_BIDIRECTIONAL);
374 pr_warn("%s: #%u: prep error with src_off=0x%x ",
375 thread_name, total_tests - 1, src_off);
376 pr_warn("dst_off=0x%x len=0x%x\n",
377 dst_off, len);
378 msleep(100);
379 failed_tests++;
380 continue;
381 }
382
383 init_completion(&rx_cmp);
384 rxd->callback = dmatest_slave_rx_callback;
385 rxd->callback_param = &rx_cmp;
386 rx_cookie = rxd->tx_submit(rxd);
387
388 init_completion(&tx_cmp);
389 txd->callback = dmatest_slave_tx_callback;
390 txd->callback_param = &tx_cmp;
391 tx_cookie = txd->tx_submit(txd);
392
393 if (dma_submit_error(rx_cookie) ||
394 dma_submit_error(tx_cookie)) {
395 pr_warn("%s: #%u: submit error %d/%d with src_off=0x%x ",
396 thread_name, total_tests - 1,
397 rx_cookie, tx_cookie, src_off);
398 pr_warn("dst_off=0x%x len=0x%x\n",
399 dst_off, len);
400 msleep(100);
401 failed_tests++;
402 continue;
403 }
404 dma_async_issue_pending(tx_chan);
405 dma_async_issue_pending(rx_chan);
406
407 tx_tmo = wait_for_completion_timeout(&tx_cmp, tx_tmo);
408
409 status = dma_async_is_tx_complete(tx_chan, tx_cookie,
410 NULL, NULL);
411
412 if (tx_tmo == 0) {
413 pr_warn("%s: #%u: tx test timed out\n",
414 thread_name, total_tests - 1);
415 failed_tests++;
416 continue;
417 } else if (status != DMA_COMPLETE) {
418 pr_warn("%s: #%u: tx got completion callback, ",
419 thread_name, total_tests - 1);
420 pr_warn("but status is \'%s\'\n",
421 status == DMA_ERROR ? "error" :
422 "in progress");
423 failed_tests++;
424 continue;
425 }
426
427 rx_tmo = wait_for_completion_timeout(&rx_cmp, rx_tmo);
428 status = dma_async_is_tx_complete(rx_chan, rx_cookie,
429 NULL, NULL);
430
431 if (rx_tmo == 0) {
432 pr_warn("%s: #%u: rx test timed out\n",
433 thread_name, total_tests - 1);
434 failed_tests++;
435 continue;
436 } else if (status != DMA_COMPLETE) {
437 pr_warn("%s: #%u: rx got completion callback, ",
438 thread_name, total_tests - 1);
439 pr_warn("but status is \'%s\'\n",
440 status == DMA_ERROR ? "error" :
441 "in progress");
442 failed_tests++;
443 continue;
444 }
445
446 /* Unmap by myself */
447 for (i = 0; i < dst_cnt; i++)
448 dma_unmap_single(rx_dev->dev, dma_dsts[i],
449 test_buf_size, DMA_BIDIRECTIONAL);
450
451 error_count = 0;
452 start = ktime_get();
453 pr_debug("%s: verifying source buffer...\n", thread_name);
454 error_count += dmatest_verify(thread->srcs, 0, src_off,
455 0, PATTERN_SRC, true);
456 error_count += dmatest_verify(thread->srcs, src_off,
457 src_off + len, src_off,
458 PATTERN_SRC | PATTERN_COPY, true);
459 error_count += dmatest_verify(thread->srcs, src_off + len,
460 test_buf_size, src_off + len,
461 PATTERN_SRC, true);
462
463 pr_debug("%s: verifying dest buffer...\n",
464 thread->task->comm);
465 error_count += dmatest_verify(thread->dsts, 0, dst_off,
466 0, PATTERN_DST, false);
467 error_count += dmatest_verify(thread->dsts, dst_off,
468 dst_off + len, src_off,
469 PATTERN_SRC | PATTERN_COPY, false);
470 error_count += dmatest_verify(thread->dsts, dst_off + len,
471 test_buf_size, dst_off + len,
472 PATTERN_DST, false);
473 diff = ktime_sub(ktime_get(), start);
474 comparetime = ktime_add(comparetime, diff);
475
476 if (error_count) {
477 pr_warn("%s: #%u: %u errors with ",
478 thread_name, total_tests - 1, error_count);
479 pr_warn("src_off=0x%x dst_off=0x%x len=0x%x\n",
480 src_off, dst_off, len);
481 failed_tests++;
482 } else {
483 pr_debug("%s: #%u: No errors with ",
484 thread_name, total_tests - 1);
485 pr_debug("src_off=0x%x dst_off=0x%x len=0x%x\n",
486 src_off, dst_off, len);
487 }
488 }
489
490 ktime = ktime_sub(ktime_get(), ktime);
491 ktime = ktime_sub(ktime, comparetime);
492 ktime = ktime_sub(ktime, filltime);
493 runtime = ktime_to_us(ktime);
494
495 ret = 0;
496 for (i = 0; thread->dsts[i]; i++)
497 kfree(thread->dsts[i]);
498 err_dstbuf:
499 kfree(thread->dsts);
500 err_dsts:
501 for (i = 0; thread->srcs[i]; i++)
502 kfree(thread->srcs[i]);
503 err_srcbuf:
504 kfree(thread->srcs);
505 err_srcs:
506 pr_notice("%s: terminating after %u tests, %u failures %llu iops %llu KB/s (status %d)\n",
507 thread_name, total_tests, failed_tests,
508 dmatest_persec(runtime, total_tests),
509 dmatest_KBs(runtime, total_len), ret);
510
511 thread->done = true;
512 wake_up(&thread_wait);
513
514 return ret;
515 }
516
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
9 months
[PATCH] spi: fix platform_get_irq.cocci warnings
by kernel test robot
From: kernel test robot <lkp(a)intel.com>
drivers/spi/spi-zynqmp-gqspi.c:1348:2-9: line 1348 is redundant because platform_get_irq() already prints an error
Remove dev_err() messages after platform_get_irq*() failures
Generated by: scripts/coccinelle/api/platform_get_irq.cocci
Fixes: 5d37ab2cf69a ("spi: Update ZynqMP and Versal QSPI controller driver")
CC: Amit Kumar Mahapatra <amit.kumar-mahapatra(a)xilinx.com>
Reported-by: kernel test robot <lkp(a)intel.com>
Signed-off-by: kernel test robot <lkp(a)intel.com>
---
tree: https://github.com/Xilinx/linux-xlnx xlnx_rebase_v5.10
head: 87ec9a2d98a7a7dfc98b57348a0ec310fd170e4b
commit: 5d37ab2cf69a5d4367f49fca798d78e4be66a43b [724/1981] spi: Update ZynqMP and Versal QSPI controller driver
:::::: branch date: 4 days ago
:::::: commit date: 7 months ago
Please take the patch only if it's a positive warning. Thanks!
spi-zynqmp-gqspi.c | 1 -
1 file changed, 1 deletion(-)
--- a/drivers/spi/spi-zynqmp-gqspi.c
+++ b/drivers/spi/spi-zynqmp-gqspi.c
@@ -1345,7 +1345,6 @@ static int zynqmp_qspi_probe(struct plat
xqspi->irq = platform_get_irq(pdev, 0);
if (xqspi->irq <= 0) {
ret = -ENXIO;
- dev_err(dev, "irq resource not found\n");
goto clk_dis_all;
}
ret = devm_request_irq(&pdev->dev, xqspi->irq, zynqmp_qspi_irq,
9 months