[sailus-media:master 1/10] drivers/media/i2c/adv7343.c:500: undefined reference to `v4l2_async_unregister_subdev'
by kernel test robot
tree: git://linuxtv.org/sailus/media_tree.git master
head: a3ba7e8a8d67896483437373a7b55b9de7d15422
commit: e8d96fd38cdbfc611cc6e412b1af1836d4db6f72 [1/10] v4l: async, fwnode: Improve module organisation
config: i386-randconfig-a015-20201015 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
git remote add sailus-media git://linuxtv.org/sailus/media_tree.git
git fetch --no-tags sailus-media master
git checkout e8d96fd38cdbfc611cc6e412b1af1836d4db6f72
# save the attached .config to linux build tree
make W=1 W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
ld: drivers/media/i2c/adv7343.o: in function `adv7343_remove':
>> drivers/media/i2c/adv7343.c:500: undefined reference to `v4l2_async_unregister_subdev'
ld: drivers/media/i2c/adv7343.o: in function `adv7343_probe':
>> drivers/media/i2c/adv7343.c:486: undefined reference to `v4l2_async_register_subdev'
ld: drivers/media/i2c/ths8200.o: in function `ths8200_remove':
>> drivers/media/i2c/ths8200.c:480: undefined reference to `v4l2_async_unregister_subdev'
ld: drivers/media/i2c/ths8200.o: in function `ths8200_probe':
>> drivers/media/i2c/ths8200.c:461: undefined reference to `v4l2_async_register_subdev'
ld: drivers/media/i2c/max2175.o: in function `max2175_remove':
>> drivers/media/i2c/max2175.c:1412: undefined reference to `v4l2_async_unregister_subdev'
ld: drivers/media/i2c/max2175.o: in function `max2175_probe':
>> drivers/media/i2c/max2175.c:1381: undefined reference to `v4l2_async_register_subdev'
>> ld: drivers/media/i2c/max2175.c:1399: undefined reference to `v4l2_async_unregister_subdev'
vim +500 drivers/media/i2c/adv7343.c
187d42d6da62aa drivers/media/i2c/adv7343.c Lad, Prabhakar 2013-07-20 430
e671499303e4c0 drivers/media/i2c/adv7343.c Kieran Bingham 2019-07-10 431 static int adv7343_probe(struct i2c_client *client)
06e61f8d5f5df6 drivers/media/video/adv7343.c Chaithrika U S 2009-05-07 432 {
06e61f8d5f5df6 drivers/media/video/adv7343.c Chaithrika U S 2009-05-07 433 struct adv7343_state *state;
ceed52d67e1cf7 drivers/media/video/adv7343.c Hans Verkuil 2010-12-12 434 int err;
06e61f8d5f5df6 drivers/media/video/adv7343.c Chaithrika U S 2009-05-07 435
06e61f8d5f5df6 drivers/media/video/adv7343.c Chaithrika U S 2009-05-07 436 if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_BYTE_DATA))
06e61f8d5f5df6 drivers/media/video/adv7343.c Chaithrika U S 2009-05-07 437 return -ENODEV;
06e61f8d5f5df6 drivers/media/video/adv7343.c Chaithrika U S 2009-05-07 438
06e61f8d5f5df6 drivers/media/video/adv7343.c Chaithrika U S 2009-05-07 439 v4l_info(client, "chip found @ 0x%x (%s)\n",
06e61f8d5f5df6 drivers/media/video/adv7343.c Chaithrika U S 2009-05-07 440 client->addr << 1, client->adapter->name);
06e61f8d5f5df6 drivers/media/video/adv7343.c Chaithrika U S 2009-05-07 441
c7a857a09f1f00 drivers/media/i2c/adv7343.c Lad, Prabhakar 2013-01-03 442 state = devm_kzalloc(&client->dev, sizeof(struct adv7343_state),
c7a857a09f1f00 drivers/media/i2c/adv7343.c Lad, Prabhakar 2013-01-03 443 GFP_KERNEL);
06e61f8d5f5df6 drivers/media/video/adv7343.c Chaithrika U S 2009-05-07 444 if (state == NULL)
06e61f8d5f5df6 drivers/media/video/adv7343.c Chaithrika U S 2009-05-07 445 return -ENOMEM;
06e61f8d5f5df6 drivers/media/video/adv7343.c Chaithrika U S 2009-05-07 446
0b302d88534f08 drivers/media/i2c/adv7343.c Lad, Prabhakar 2013-01-22 447 /* Copy board specific information here */
187d42d6da62aa drivers/media/i2c/adv7343.c Lad, Prabhakar 2013-07-20 448 state->pdata = adv7343_get_pdata(client);
0b302d88534f08 drivers/media/i2c/adv7343.c Lad, Prabhakar 2013-01-22 449
06e61f8d5f5df6 drivers/media/video/adv7343.c Chaithrika U S 2009-05-07 450 state->reg00 = 0x80;
06e61f8d5f5df6 drivers/media/video/adv7343.c Chaithrika U S 2009-05-07 451 state->reg01 = 0x00;
06e61f8d5f5df6 drivers/media/video/adv7343.c Chaithrika U S 2009-05-07 452 state->reg02 = 0x20;
06e61f8d5f5df6 drivers/media/video/adv7343.c Chaithrika U S 2009-05-07 453 state->reg35 = 0x00;
06e61f8d5f5df6 drivers/media/video/adv7343.c Chaithrika U S 2009-05-07 454 state->reg80 = ADV7343_SD_MODE_REG1_DEFAULT;
06e61f8d5f5df6 drivers/media/video/adv7343.c Chaithrika U S 2009-05-07 455 state->reg82 = ADV7343_SD_MODE_REG2_DEFAULT;
06e61f8d5f5df6 drivers/media/video/adv7343.c Chaithrika U S 2009-05-07 456
06e61f8d5f5df6 drivers/media/video/adv7343.c Chaithrika U S 2009-05-07 457 state->output = ADV7343_COMPOSITE_ID;
06e61f8d5f5df6 drivers/media/video/adv7343.c Chaithrika U S 2009-05-07 458 state->std = V4L2_STD_NTSC;
06e61f8d5f5df6 drivers/media/video/adv7343.c Chaithrika U S 2009-05-07 459
06e61f8d5f5df6 drivers/media/video/adv7343.c Chaithrika U S 2009-05-07 460 v4l2_i2c_subdev_init(&state->sd, client, &adv7343_ops);
ceed52d67e1cf7 drivers/media/video/adv7343.c Hans Verkuil 2010-12-12 461
ceed52d67e1cf7 drivers/media/video/adv7343.c Hans Verkuil 2010-12-12 462 v4l2_ctrl_handler_init(&state->hdl, 2);
ceed52d67e1cf7 drivers/media/video/adv7343.c Hans Verkuil 2010-12-12 463 v4l2_ctrl_new_std(&state->hdl, &adv7343_ctrl_ops,
ceed52d67e1cf7 drivers/media/video/adv7343.c Hans Verkuil 2010-12-12 464 V4L2_CID_BRIGHTNESS, ADV7343_BRIGHTNESS_MIN,
ceed52d67e1cf7 drivers/media/video/adv7343.c Hans Verkuil 2010-12-12 465 ADV7343_BRIGHTNESS_MAX, 1,
ceed52d67e1cf7 drivers/media/video/adv7343.c Hans Verkuil 2010-12-12 466 ADV7343_BRIGHTNESS_DEF);
ceed52d67e1cf7 drivers/media/video/adv7343.c Hans Verkuil 2010-12-12 467 v4l2_ctrl_new_std(&state->hdl, &adv7343_ctrl_ops,
ceed52d67e1cf7 drivers/media/video/adv7343.c Hans Verkuil 2010-12-12 468 V4L2_CID_HUE, ADV7343_HUE_MIN,
ceed52d67e1cf7 drivers/media/video/adv7343.c Hans Verkuil 2010-12-12 469 ADV7343_HUE_MAX, 1,
ceed52d67e1cf7 drivers/media/video/adv7343.c Hans Verkuil 2010-12-12 470 ADV7343_HUE_DEF);
ceed52d67e1cf7 drivers/media/video/adv7343.c Hans Verkuil 2010-12-12 471 v4l2_ctrl_new_std(&state->hdl, &adv7343_ctrl_ops,
ceed52d67e1cf7 drivers/media/video/adv7343.c Hans Verkuil 2010-12-12 472 V4L2_CID_GAIN, ADV7343_GAIN_MIN,
ceed52d67e1cf7 drivers/media/video/adv7343.c Hans Verkuil 2010-12-12 473 ADV7343_GAIN_MAX, 1,
ceed52d67e1cf7 drivers/media/video/adv7343.c Hans Verkuil 2010-12-12 474 ADV7343_GAIN_DEF);
ceed52d67e1cf7 drivers/media/video/adv7343.c Hans Verkuil 2010-12-12 475 state->sd.ctrl_handler = &state->hdl;
ceed52d67e1cf7 drivers/media/video/adv7343.c Hans Verkuil 2010-12-12 476 if (state->hdl.error) {
6555cfc5e7f808 drivers/media/i2c/adv7343.c Lad, Prabhakar 2013-06-22 477 err = state->hdl.error;
6555cfc5e7f808 drivers/media/i2c/adv7343.c Lad, Prabhakar 2013-06-22 478 goto done;
ceed52d67e1cf7 drivers/media/video/adv7343.c Hans Verkuil 2010-12-12 479 }
ceed52d67e1cf7 drivers/media/video/adv7343.c Hans Verkuil 2010-12-12 480 v4l2_ctrl_handler_setup(&state->hdl);
ceed52d67e1cf7 drivers/media/video/adv7343.c Hans Verkuil 2010-12-12 481
ceed52d67e1cf7 drivers/media/video/adv7343.c Hans Verkuil 2010-12-12 482 err = adv7343_initialize(&state->sd);
c7a857a09f1f00 drivers/media/i2c/adv7343.c Lad, Prabhakar 2013-01-03 483 if (err)
6555cfc5e7f808 drivers/media/i2c/adv7343.c Lad, Prabhakar 2013-06-22 484 goto done;
6555cfc5e7f808 drivers/media/i2c/adv7343.c Lad, Prabhakar 2013-06-22 485
6555cfc5e7f808 drivers/media/i2c/adv7343.c Lad, Prabhakar 2013-06-22 @486 err = v4l2_async_register_subdev(&state->sd);
6555cfc5e7f808 drivers/media/i2c/adv7343.c Lad, Prabhakar 2013-06-22 487
6555cfc5e7f808 drivers/media/i2c/adv7343.c Lad, Prabhakar 2013-06-22 488 done:
6555cfc5e7f808 drivers/media/i2c/adv7343.c Lad, Prabhakar 2013-06-22 489 if (err < 0)
ceed52d67e1cf7 drivers/media/video/adv7343.c Hans Verkuil 2010-12-12 490 v4l2_ctrl_handler_free(&state->hdl);
6555cfc5e7f808 drivers/media/i2c/adv7343.c Lad, Prabhakar 2013-06-22 491
ceed52d67e1cf7 drivers/media/video/adv7343.c Hans Verkuil 2010-12-12 492 return err;
06e61f8d5f5df6 drivers/media/video/adv7343.c Chaithrika U S 2009-05-07 493 }
06e61f8d5f5df6 drivers/media/video/adv7343.c Chaithrika U S 2009-05-07 494
06e61f8d5f5df6 drivers/media/video/adv7343.c Chaithrika U S 2009-05-07 495 static int adv7343_remove(struct i2c_client *client)
06e61f8d5f5df6 drivers/media/video/adv7343.c Chaithrika U S 2009-05-07 496 {
06e61f8d5f5df6 drivers/media/video/adv7343.c Chaithrika U S 2009-05-07 497 struct v4l2_subdev *sd = i2c_get_clientdata(client);
ceed52d67e1cf7 drivers/media/video/adv7343.c Hans Verkuil 2010-12-12 498 struct adv7343_state *state = to_state(sd);
06e61f8d5f5df6 drivers/media/video/adv7343.c Chaithrika U S 2009-05-07 499
6555cfc5e7f808 drivers/media/i2c/adv7343.c Lad, Prabhakar 2013-06-22 @500 v4l2_async_unregister_subdev(&state->sd);
ceed52d67e1cf7 drivers/media/video/adv7343.c Hans Verkuil 2010-12-12 501 v4l2_ctrl_handler_free(&state->hdl);
06e61f8d5f5df6 drivers/media/video/adv7343.c Chaithrika U S 2009-05-07 502
06e61f8d5f5df6 drivers/media/video/adv7343.c Chaithrika U S 2009-05-07 503 return 0;
06e61f8d5f5df6 drivers/media/video/adv7343.c Chaithrika U S 2009-05-07 504 }
06e61f8d5f5df6 drivers/media/video/adv7343.c Chaithrika U S 2009-05-07 505
:::::: The code at line 500 was first introduced by commit
:::::: 6555cfc5e7f8080a76edc2f556c709770fc1db57 [media] media: i2c: adv7343: add support for asynchronous probing
:::::: TO: Lad, Prabhakar <prabhakar.csengg(a)gmail.com>
:::::: CC: Mauro Carvalho Chehab <m.chehab(a)samsung.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
[bvanassche:scsi-remove-request-pointer 5/18] drivers/scsi/g_NCR5380.c:666:29: error: initialization of 'struct scsi_pointer *' from incompatible pointer type 'struct NCR5380_cmd *'
by kernel test robot
tree: https://github.com/bvanassche/linux scsi-remove-request-pointer
head: b853f1fbdf8c3fbf396b45cfe2a5db701583aa9b
commit: cc1292ed48b00ede4a83ce12973691482768b4d6 [5/18] NCR5380: Stop using scsi_cmnd.SCp
config: i386-randconfig-s001-20210429 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.3-341-g8af24329-dirty
# https://github.com/bvanassche/linux/commit/cc1292ed48b00ede4a83ce12973691...
git remote add bvanassche https://github.com/bvanassche/linux
git fetch --no-tags bvanassche scsi-remove-request-pointer
git checkout cc1292ed48b00ede4a83ce12973691482768b4d6
# save the attached .config to linux build tree
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
drivers/scsi/g_NCR5380.c: In function 'generic_NCR5380_dma_xfer_len':
>> drivers/scsi/g_NCR5380.c:666:29: error: initialization of 'struct scsi_pointer *' from incompatible pointer type 'struct NCR5380_cmd *' [-Werror=incompatible-pointer-types]
666 | struct scsi_pointer *SCp = scmd_to_NCR5380(cmd);
| ^~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +666 drivers/scsi/g_NCR5380.c
662
663 static int generic_NCR5380_dma_xfer_len(struct NCR5380_hostdata *hostdata,
664 struct scsi_cmnd *cmd)
665 {
> 666 struct scsi_pointer *SCp = scmd_to_NCR5380(cmd);
667 int transfersize = SCp->this_residual;
668
669 if (hostdata->flags & FLAG_NO_PSEUDO_DMA)
670 return 0;
671
672 /* 53C400 datasheet: non-modulo-128-byte transfers should use PIO */
673 if (transfersize % 128)
674 return 0;
675
676 /* Limit PDMA send to 512 B to avoid random corruption on DTC3181E */
677 if (hostdata->board == BOARD_DTC3181E &&
678 cmd->sc_data_direction == DMA_TO_DEVICE)
679 transfersize = min(SCp->this_residual, 512);
680
681 return min(transfersize, DMA_MAX_SIZE);
682 }
683
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
[android-common:android12-5.10 1/1] mm/compaction.c:766:15: error: redefinition of 'isolate_and_split_free_page'
by kernel test robot
tree: https://android.googlesource.com/kernel/common android12-5.10
head: 8cd9aa93b7269460e8d5e4407738f21fe5d6e720
commit: 8cd9aa93b7269460e8d5e4407738f21fe5d6e720 [1/1] ANDROID: implement wrapper for reverse migration
config: x86_64-randconfig-a012-20210429 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 9131a078901b00e68248a27a4f8c4b11bb1db1ae)
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 x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
git remote add android-common https://android.googlesource.com/kernel/common
git fetch --no-tags android-common android12-5.10
git checkout 8cd9aa93b7269460e8d5e4407738f21fe5d6e720
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Note: the android-common/android12-5.10 HEAD 35014985c266face161f6d107f8d8338e02a0b2d builds fine.
It only hurts bisectibility.
All errors (new ones prefixed by >>):
>> mm/compaction.c:766:15: error: redefinition of 'isolate_and_split_free_page'
unsigned long isolate_and_split_free_page(struct page *page,
^
include/linux/compaction.h:241:22: note: previous definition is here
static unsigned long isolate_and_split_free_page(struct page *page,
^
1 error generated.
vim +/isolate_and_split_free_page +766 mm/compaction.c
765
> 766 unsigned long isolate_and_split_free_page(struct page *page,
767 struct list_head *list)
768 {
769 unsigned long isolated;
770 unsigned int order;
771
772 if (!PageBuddy(page))
773 return 0;
774
775 order = buddy_order(page);
776 isolated = __isolate_free_page(page, order);
777 if (!isolated)
778 return 0;
779
780 set_page_private(page, order);
781 list_add(&page->lru, list);
782
783 split_map_pages(list);
784
785 return isolated;
786 }
787 EXPORT_SYMBOL_GPL(isolate_and_split_free_page);
788
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
drivers/net/ethernet/korina.c:408:33: sparse: sparse: incorrect type in argument 2 (different address spaces)
by kernel test robot
Hi Thomas,
First bad commit (maybe != root cause):
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 8ca5297e7e38f2dc8c753d33a5092e7be181fff0
commit: 6ef92063bf94cd8a6fa9fea3a82596955eb25424 net: korina: Make driver COMPILE_TESTable
date: 10 days ago
config: powerpc-randconfig-s031-20210430 (attached as .config)
compiler: powerpc64le-linux-gcc (GCC) 9.3.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.3-341-g8af24329-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 6ef92063bf94cd8a6fa9fea3a82596955eb25424
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' W=1 ARCH=powerpc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
>> drivers/net/ethernet/korina.c:408:33: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected struct dma_reg *ch @@ got struct dma_reg [noderef] __iomem *tx_dma_regs @@
drivers/net/ethernet/korina.c:408:33: sparse: expected struct dma_reg *ch
drivers/net/ethernet/korina.c:408:33: sparse: got struct dma_reg [noderef] __iomem *tx_dma_regs
>> drivers/net/ethernet/korina.c:415:33: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected struct dma_reg *ch @@ got struct dma_reg [noderef] __iomem *rx_dma_regs @@
drivers/net/ethernet/korina.c:415:33: sparse: expected struct dma_reg *ch
drivers/net/ethernet/korina.c:415:33: sparse: got struct dma_reg [noderef] __iomem *rx_dma_regs
>> drivers/net/ethernet/korina.c:391:20: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got unsigned int * @@
drivers/net/ethernet/korina.c:391:20: sparse: expected void const volatile [noderef] __iomem *addr
drivers/net/ethernet/korina.c:391:20: sparse: got unsigned int *
>> drivers/net/ethernet/korina.c:392:31: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned int * @@
drivers/net/ethernet/korina.c:392:31: sparse: expected void volatile [noderef] __iomem *addr
drivers/net/ethernet/korina.c:392:31: sparse: got unsigned int *
drivers/net/ethernet/korina.c:394:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got unsigned int * @@
drivers/net/ethernet/korina.c:394:33: sparse: expected void const volatile [noderef] __iomem *addr
drivers/net/ethernet/korina.c:394:33: sparse: got unsigned int *
drivers/net/ethernet/korina.c:397:28: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned int * @@
drivers/net/ethernet/korina.c:397:28: sparse: expected void volatile [noderef] __iomem *addr
drivers/net/ethernet/korina.c:397:28: sparse: got unsigned int *
drivers/net/ethernet/korina.c:400:20: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned int * @@
drivers/net/ethernet/korina.c:400:20: sparse: expected void volatile [noderef] __iomem *addr
drivers/net/ethernet/korina.c:400:20: sparse: got unsigned int *
drivers/net/ethernet/korina.c:401:20: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned int * @@
drivers/net/ethernet/korina.c:401:20: sparse: expected void volatile [noderef] __iomem *addr
drivers/net/ethernet/korina.c:401:20: sparse: got unsigned int *
>> drivers/net/ethernet/korina.c:391:20: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got unsigned int * @@
drivers/net/ethernet/korina.c:391:20: sparse: expected void const volatile [noderef] __iomem *addr
drivers/net/ethernet/korina.c:391:20: sparse: got unsigned int *
>> drivers/net/ethernet/korina.c:392:31: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned int * @@
drivers/net/ethernet/korina.c:392:31: sparse: expected void volatile [noderef] __iomem *addr
drivers/net/ethernet/korina.c:392:31: sparse: got unsigned int *
drivers/net/ethernet/korina.c:394:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got unsigned int * @@
drivers/net/ethernet/korina.c:394:33: sparse: expected void const volatile [noderef] __iomem *addr
drivers/net/ethernet/korina.c:394:33: sparse: got unsigned int *
drivers/net/ethernet/korina.c:397:28: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned int * @@
drivers/net/ethernet/korina.c:397:28: sparse: expected void volatile [noderef] __iomem *addr
drivers/net/ethernet/korina.c:397:28: sparse: got unsigned int *
drivers/net/ethernet/korina.c:400:20: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned int * @@
drivers/net/ethernet/korina.c:400:20: sparse: expected void volatile [noderef] __iomem *addr
drivers/net/ethernet/korina.c:400:20: sparse: got unsigned int *
drivers/net/ethernet/korina.c:401:20: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned int * @@
drivers/net/ethernet/korina.c:401:20: sparse: expected void volatile [noderef] __iomem *addr
drivers/net/ethernet/korina.c:401:20: sparse: got unsigned int *
vim +408 drivers/net/ethernet/korina.c
0fc96939a97ffd drivers/net/ethernet/korina.c Thomas Bogendoerfer 2021-04-19 387
ef11291bcd5f96 drivers/net/korina.c Florian Fainelli 2008-03-19 388 static inline void korina_abort_dma(struct net_device *dev,
ef11291bcd5f96 drivers/net/korina.c Florian Fainelli 2008-03-19 389 struct dma_reg *ch)
ef11291bcd5f96 drivers/net/korina.c Florian Fainelli 2008-03-19 390 {
ef11291bcd5f96 drivers/net/korina.c Florian Fainelli 2008-03-19 @391 if (readl(&ch->dmac) & DMA_CHAN_RUN_BIT) {
ef11291bcd5f96 drivers/net/korina.c Florian Fainelli 2008-03-19 @392 writel(0x10, &ch->dmac);
ef11291bcd5f96 drivers/net/korina.c Florian Fainelli 2008-03-19 393
ef11291bcd5f96 drivers/net/korina.c Florian Fainelli 2008-03-19 394 while (!(readl(&ch->dmas) & DMA_STAT_HALT))
860e9538a9482b drivers/net/ethernet/korina.c Florian Westphal 2016-05-03 395 netif_trans_update(dev);
ef11291bcd5f96 drivers/net/korina.c Florian Fainelli 2008-03-19 396
ef11291bcd5f96 drivers/net/korina.c Florian Fainelli 2008-03-19 397 writel(0, &ch->dmas);
ef11291bcd5f96 drivers/net/korina.c Florian Fainelli 2008-03-19 398 }
ef11291bcd5f96 drivers/net/korina.c Florian Fainelli 2008-03-19 399
ef11291bcd5f96 drivers/net/korina.c Florian Fainelli 2008-03-19 400 writel(0, &ch->dmadptr);
ef11291bcd5f96 drivers/net/korina.c Florian Fainelli 2008-03-19 401 writel(0, &ch->dmandptr);
ef11291bcd5f96 drivers/net/korina.c Florian Fainelli 2008-03-19 402 }
ef11291bcd5f96 drivers/net/korina.c Florian Fainelli 2008-03-19 403
ef11291bcd5f96 drivers/net/korina.c Florian Fainelli 2008-03-19 404 static void korina_abort_tx(struct net_device *dev)
ef11291bcd5f96 drivers/net/korina.c Florian Fainelli 2008-03-19 405 {
ef11291bcd5f96 drivers/net/korina.c Florian Fainelli 2008-03-19 406 struct korina_private *lp = netdev_priv(dev);
ef11291bcd5f96 drivers/net/korina.c Florian Fainelli 2008-03-19 407
ef11291bcd5f96 drivers/net/korina.c Florian Fainelli 2008-03-19 @408 korina_abort_dma(dev, lp->tx_dma_regs);
ef11291bcd5f96 drivers/net/korina.c Florian Fainelli 2008-03-19 409 }
ef11291bcd5f96 drivers/net/korina.c Florian Fainelli 2008-03-19 410
ef11291bcd5f96 drivers/net/korina.c Florian Fainelli 2008-03-19 411 static void korina_abort_rx(struct net_device *dev)
ef11291bcd5f96 drivers/net/korina.c Florian Fainelli 2008-03-19 412 {
ef11291bcd5f96 drivers/net/korina.c Florian Fainelli 2008-03-19 413 struct korina_private *lp = netdev_priv(dev);
ef11291bcd5f96 drivers/net/korina.c Florian Fainelli 2008-03-19 414
ef11291bcd5f96 drivers/net/korina.c Florian Fainelli 2008-03-19 @415 korina_abort_dma(dev, lp->rx_dma_regs);
ef11291bcd5f96 drivers/net/korina.c Florian Fainelli 2008-03-19 416 }
ef11291bcd5f96 drivers/net/korina.c Florian Fainelli 2008-03-19 417
:::::: The code at line 408 was first introduced by commit
:::::: ef11291bcd5f963c72e7ba5952be3e3c97463d2c Add support the Korina (IDT RC32434) Ethernet MAC
:::::: TO: Florian Fainelli <florian.fainelli(a)telecomint.eu>
:::::: CC: Jeff Garzik <jeff(a)garzik.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
[xlnx:pr/142 11850/12170] drivers/regulator/da9121-regulator.c:748:3: error: implicit declaration of function 'regulator_lock'
by kernel test robot
Hi Raviteja,
FYI, the error/warning still remains.
tree: https://github.com/Xilinx/linux-xlnx pr/142
head: d7991de841c2c41ac347bf1f519941fcaa15df04
commit: a6aea4afc0f41390d36b593f455902b6fdd75685 [11850/12170] regulator: da9121: Use core regulator lock
config: x86_64-randconfig-a015-20210429 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 8f5a2a5836cc8e4c1def2bdeb022e7b496623439)
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 x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# https://github.com/Xilinx/linux-xlnx/commit/a6aea4afc0f41390d36b593f45590...
git remote add xlnx https://github.com/Xilinx/linux-xlnx
git fetch --no-tags xlnx pr/142
git checkout a6aea4afc0f41390d36b593f455902b6fdd75685
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
>> drivers/regulator/da9121-regulator.c:748:3: error: implicit declaration of function 'regulator_lock' [-Werror,-Wimplicit-function-declaration]
regulator_lock(rdev);
^
>> drivers/regulator/da9121-regulator.c:750:3: error: implicit declaration of function 'regulator_unlock' [-Werror,-Wimplicit-function-declaration]
regulator_unlock(rdev);
^
drivers/regulator/da9121-regulator.c:750:3: note: did you mean 'regulator_lock'?
drivers/regulator/da9121-regulator.c:748:3: note: 'regulator_lock' declared here
regulator_lock(rdev);
^
2 errors generated.
vim +/regulator_lock +748 drivers/regulator/da9121-regulator.c
676
677 static inline int da9121_handle_notifier(
678 struct da9121 *chip, struct regulator_dev *rdev,
679 unsigned int event_bank, unsigned int event, unsigned int ebit)
680 {
681 enum { R0 = 0, R1, R2, REG_MAX_NUM };
682 unsigned long notification = 0;
683 int ret = 0;
684
685 if (event & ebit) {
686 switch (event_bank) {
687 case DA9121_REG_SYS_EVENT_0:
688 switch (event & ebit) {
689 case DA9121_MASK_SYS_EVENT_0_E_TEMP_CRIT:
690 chip->persistent[R0] |= DA9121_MASK_SYS_EVENT_0_E_TEMP_CRIT;
691 notification |= REGULATOR_EVENT_OVER_TEMP |
692 REGULATOR_EVENT_DISABLE;
693 break;
694 case DA9121_MASK_SYS_EVENT_0_E_TEMP_WARN:
695 chip->persistent[R0] |= DA9121_MASK_SYS_EVENT_0_E_TEMP_WARN;
696 notification |= REGULATOR_EVENT_OVER_TEMP;
697 break;
698 default:
699 dev_warn(chip->dev,
700 "Unhandled event in bank0 0x%02x\n",
701 event & ebit);
702 ret = -EINVAL;
703 break;
704 }
705 break;
706 case DA9121_REG_SYS_EVENT_1:
707 switch (event & ebit) {
708 case DA9121_MASK_SYS_EVENT_1_E_OV1:
709 chip->persistent[R1] |= DA9121_MASK_SYS_EVENT_1_E_OV1;
710 notification |= REGULATOR_EVENT_REGULATION_OUT;
711 break;
712 case DA9121_MASK_SYS_EVENT_1_E_UV1:
713 chip->persistent[R1] |= DA9121_MASK_SYS_EVENT_1_E_UV1;
714 notification |= REGULATOR_EVENT_UNDER_VOLTAGE;
715 break;
716 case DA9121_MASK_SYS_EVENT_1_E_OC1:
717 chip->persistent[R1] |= DA9121_MASK_SYS_EVENT_1_E_OC1;
718 notification |= REGULATOR_EVENT_OVER_CURRENT;
719 break;
720 case DA9xxx_MASK_SYS_EVENT_1_E_OV2:
721 chip->persistent[R1] |= DA9xxx_MASK_SYS_EVENT_1_E_OV2;
722 notification |= REGULATOR_EVENT_REGULATION_OUT;
723 break;
724 case DA9xxx_MASK_SYS_EVENT_1_E_UV2:
725 chip->persistent[R1] |= DA9xxx_MASK_SYS_EVENT_1_E_UV2;
726 notification |= REGULATOR_EVENT_UNDER_VOLTAGE;
727 break;
728 case DA9xxx_MASK_SYS_EVENT_1_E_OC2:
729 chip->persistent[R1] |= DA9xxx_MASK_SYS_EVENT_1_E_OC2;
730 notification |= REGULATOR_EVENT_OVER_CURRENT;
731 break;
732 default:
733 dev_warn(chip->dev,
734 "Unhandled event in bank1 0x%02x\n",
735 event & ebit);
736 ret = -EINVAL;
737 break;
738 }
739 break;
740 default:
741 dev_warn(chip->dev,
742 "Unhandled event bank 0x%02x\n", event_bank);
743 ret = -EINVAL;
744 goto error;
745 break;
746 }
747
> 748 regulator_lock(rdev);
749 regulator_notifier_call_chain(rdev, notification, NULL);
> 750 regulator_unlock(rdev);
751 }
752
753 error:
754 return ret;
755 }
756
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
Re: [RFC PATCH v4 14/27] nvme-tcp-offload: Add IO level implementation
by kernel test robot
Hi Shai,
[FYI, it's a private test report for your RFC patch.]
[auto build test WARNING on ipvs/master]
[also build test WARNING on hch-configfs/for-next linus/master v5.12 next-20210430]
[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/Shai-Malin/NVMeTCP-Offload-ULP-a...
base: https://git.kernel.org/pub/scm/linux/kernel/git/horms/ipvs.git master
config: alpha-randconfig-r014-20210429 (attached as .config)
compiler: alpha-linux-gcc (GCC) 9.3.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/8f96123c694f82006e0946973a21196ec...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Shai-Malin/NVMeTCP-Offload-ULP-and-QEDN-Device-Driver/20210430-032713
git checkout 8f96123c694f82006e0946973a21196ec384d008
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross W=1 ARCH=alpha
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/nvme/host/tcp-offload.c:107:5: warning: no previous prototype for 'nvme_tcp_ofld_report_queue_err' [-Wmissing-prototypes]
107 | int nvme_tcp_ofld_report_queue_err(struct nvme_tcp_ofld_queue *queue)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/nvme/host/tcp-offload.c:126:6: warning: no previous prototype for 'nvme_tcp_ofld_req_done' [-Wmissing-prototypes]
126 | void nvme_tcp_ofld_req_done(struct nvme_tcp_ofld_req *req,
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/nvme/host/tcp-offload.c:137:1: warning: no previous prototype for 'nvme_tcp_ofld_lookup_dev' [-Wmissing-prototypes]
137 | nvme_tcp_ofld_lookup_dev(struct nvme_tcp_ofld_ctrl *ctrl)
| ^~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/nvme/host/tcp-offload.c:711:6: warning: no previous prototype for 'nvme_tcp_ofld_map_data' [-Wmissing-prototypes]
711 | void nvme_tcp_ofld_map_data(struct nvme_command *c, u32 data_len)
| ^~~~~~~~~~~~~~~~~~~~~~
vim +/nvme_tcp_ofld_map_data +711 drivers/nvme/host/tcp-offload.c
710
> 711 void nvme_tcp_ofld_map_data(struct nvme_command *c, u32 data_len)
712 {
713 struct nvme_sgl_desc *sg = &c->common.dptr.sgl;
714
715 sg->addr = 0;
716 sg->length = cpu_to_le32(data_len);
717 sg->type = (NVME_TRANSPORT_SGL_DATA_DESC << 4) | NVME_SGL_FMT_TRANSPORT_A;
718 }
719
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
Re: [PATCH v8 2/2] PCI: rockchip: Add Rockchip RK356X host controller driver
by kernel test robot
Hi Simon,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on pci/next]
[also build test ERROR on v5.12 next-20210430]
[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/Simon-Xue/dt-bindings-rockchip-A...
base: https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git next
config: microblaze-randconfig-r032-20210430 (attached as .config)
compiler: microblaze-linux-gcc (GCC) 9.3.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/d7f0227a3e8ea1c9594e9cec8fbd84715...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Simon-Xue/dt-bindings-rockchip-Add-DesignWare-based-PCIe-controller/20210430-092937
git checkout d7f0227a3e8ea1c9594e9cec8fbd84715a987f2a
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross W=1 ARCH=microblaze
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/pci/controller/dwc/pcie-designware-host.c:49:15: error: variable 'dw_pcie_msi_domain_info' has initializer but incomplete type
49 | static struct msi_domain_info dw_pcie_msi_domain_info = {
| ^~~~~~~~~~~~~~~
>> drivers/pci/controller/dwc/pcie-designware-host.c:50:3: error: 'struct msi_domain_info' has no member named 'flags'
50 | .flags = (MSI_FLAG_USE_DEF_DOM_OPS | MSI_FLAG_USE_DEF_CHIP_OPS |
| ^~~~~
>> drivers/pci/controller/dwc/pcie-designware-host.c:50:12: error: 'MSI_FLAG_USE_DEF_DOM_OPS' undeclared here (not in a function)
50 | .flags = (MSI_FLAG_USE_DEF_DOM_OPS | MSI_FLAG_USE_DEF_CHIP_OPS |
| ^~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/pci/controller/dwc/pcie-designware-host.c:50:39: error: 'MSI_FLAG_USE_DEF_CHIP_OPS' undeclared here (not in a function)
50 | .flags = (MSI_FLAG_USE_DEF_DOM_OPS | MSI_FLAG_USE_DEF_CHIP_OPS |
| ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/pci/controller/dwc/pcie-designware-host.c:51:6: error: 'MSI_FLAG_PCI_MSIX' undeclared here (not in a function)
51 | MSI_FLAG_PCI_MSIX | MSI_FLAG_MULTI_PCI_MSI),
| ^~~~~~~~~~~~~~~~~
>> drivers/pci/controller/dwc/pcie-designware-host.c:51:26: error: 'MSI_FLAG_MULTI_PCI_MSI' undeclared here (not in a function)
51 | MSI_FLAG_PCI_MSIX | MSI_FLAG_MULTI_PCI_MSI),
| ^~~~~~~~~~~~~~~~~~~~~~
>> drivers/pci/controller/dwc/pcie-designware-host.c:50:11: warning: excess elements in struct initializer
50 | .flags = (MSI_FLAG_USE_DEF_DOM_OPS | MSI_FLAG_USE_DEF_CHIP_OPS |
| ^
drivers/pci/controller/dwc/pcie-designware-host.c:50:11: note: (near initialization for 'dw_pcie_msi_domain_info')
>> drivers/pci/controller/dwc/pcie-designware-host.c:52:3: error: 'struct msi_domain_info' has no member named 'chip'
52 | .chip = &dw_pcie_msi_irq_chip,
| ^~~~
drivers/pci/controller/dwc/pcie-designware-host.c:52:10: warning: excess elements in struct initializer
52 | .chip = &dw_pcie_msi_irq_chip,
| ^
drivers/pci/controller/dwc/pcie-designware-host.c:52:10: note: (near initialization for 'dw_pcie_msi_domain_info')
drivers/pci/controller/dwc/pcie-designware-host.c: In function 'dw_pcie_allocate_domains':
>> drivers/pci/controller/dwc/pcie-designware-host.c:247:19: error: implicit declaration of function 'pci_msi_create_irq_domain'; did you mean 'pci_msi_get_device_domain'? [-Werror=implicit-function-declaration]
247 | pp->msi_domain = pci_msi_create_irq_domain(fwnode,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
| pci_msi_get_device_domain
>> drivers/pci/controller/dwc/pcie-designware-host.c:247:17: warning: assignment to 'struct irq_domain *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
247 | pp->msi_domain = pci_msi_create_irq_domain(fwnode,
| ^
drivers/pci/controller/dwc/pcie-designware-host.c: At top level:
>> drivers/pci/controller/dwc/pcie-designware-host.c:49:31: error: storage size of 'dw_pcie_msi_domain_info' isn't known
49 | static struct msi_domain_info dw_pcie_msi_domain_info = {
| ^~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for PCIE_DW_HOST
Depends on PCI && PCI_MSI_IRQ_DOMAIN
Selected by
- PCIE_ROCKCHIP_DW_HOST && PCI && (ARCH_ROCKCHIP || COMPILE_TEST && OF
vim +/dw_pcie_msi_domain_info +49 drivers/pci/controller/dwc/pcie-designware-host.c
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 48
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 @49 static struct msi_domain_info dw_pcie_msi_domain_info = {
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 @50 .flags = (MSI_FLAG_USE_DEF_DOM_OPS | MSI_FLAG_USE_DEF_CHIP_OPS |
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 @51 MSI_FLAG_PCI_MSIX | MSI_FLAG_MULTI_PCI_MSI),
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 @52 .chip = &dw_pcie_msi_irq_chip,
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 53 };
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 54
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 55 /* MSI int handler */
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 56 irqreturn_t dw_handle_msi_irq(struct pcie_port *pp)
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 57 {
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 58 int i, pos, irq;
1137e61dcb99f7 drivers/pci/controller/dwc/pcie-designware-host.c Niklas Cassel 2019-09-04 59 unsigned long val;
1137e61dcb99f7 drivers/pci/controller/dwc/pcie-designware-host.c Niklas Cassel 2019-09-04 60 u32 status, num_ctrls;
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 61 irqreturn_t ret = IRQ_NONE;
f81c770df72e72 drivers/pci/controller/dwc/pcie-designware-host.c Rob Herring 2020-08-20 62 struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 63
1f319cb0538a10 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 64 num_ctrls = pp->num_vectors / MAX_MSI_IRQS_PER_CTRL;
1f319cb0538a10 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 65
1f319cb0538a10 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 66 for (i = 0; i < num_ctrls; i++) {
f81c770df72e72 drivers/pci/controller/dwc/pcie-designware-host.c Rob Herring 2020-08-20 67 status = dw_pcie_readl_dbi(pci, PCIE_MSI_INTR0_STATUS +
f81c770df72e72 drivers/pci/controller/dwc/pcie-designware-host.c Rob Herring 2020-08-20 68 (i * MSI_REG_CTRL_BLOCK_SIZE));
1137e61dcb99f7 drivers/pci/controller/dwc/pcie-designware-host.c Niklas Cassel 2019-09-04 69 if (!status)
dbe4a09e8bbcf8 drivers/pci/dwc/pcie-designware-host.c Bjorn Helgaas 2017-03-16 70 continue;
dbe4a09e8bbcf8 drivers/pci/dwc/pcie-designware-host.c Bjorn Helgaas 2017-03-16 71
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 72 ret = IRQ_HANDLED;
1137e61dcb99f7 drivers/pci/controller/dwc/pcie-designware-host.c Niklas Cassel 2019-09-04 73 val = status;
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 74 pos = 0;
1137e61dcb99f7 drivers/pci/controller/dwc/pcie-designware-host.c Niklas Cassel 2019-09-04 75 while ((pos = find_next_bit(&val, MAX_MSI_IRQS_PER_CTRL,
76cbf066b1ab75 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-05-14 76 pos)) != MAX_MSI_IRQS_PER_CTRL) {
76cbf066b1ab75 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-05-14 77 irq = irq_find_mapping(pp->irq_domain,
76cbf066b1ab75 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-05-14 78 (i * MAX_MSI_IRQS_PER_CTRL) +
76cbf066b1ab75 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-05-14 79 pos);
8c934095fa2f33 drivers/pci/dwc/pcie-designware-host.c Faiz Abbas 2017-08-10 80 generic_handle_irq(irq);
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 81 pos++;
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 82 }
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 83 }
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 84
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 85 return ret;
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 86 }
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 87
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 88 /* Chained MSI interrupt service routine */
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 89 static void dw_chained_msi_isr(struct irq_desc *desc)
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 90 {
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 91 struct irq_chip *chip = irq_desc_get_chip(desc);
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 92 struct pcie_port *pp;
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 93
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 94 chained_irq_enter(chip, desc);
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 95
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 96 pp = irq_desc_get_handler_data(desc);
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 97 dw_handle_msi_irq(pp);
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 98
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 99 chained_irq_exit(chip, desc);
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 100 }
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 101
59ea68b3f17294 drivers/pci/controller/dwc/pcie-designware-host.c Gustavo Pimentel 2019-01-31 102 static void dw_pci_setup_msi_msg(struct irq_data *d, struct msi_msg *msg)
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 103 {
59ea68b3f17294 drivers/pci/controller/dwc/pcie-designware-host.c Gustavo Pimentel 2019-01-31 104 struct pcie_port *pp = irq_data_get_irq_chip_data(d);
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 105 struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 106 u64 msi_target;
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 107
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 108 msi_target = (u64)pp->msi_data;
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 109
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 110 msg->address_lo = lower_32_bits(msi_target);
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 111 msg->address_hi = upper_32_bits(msi_target);
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 112
59ea68b3f17294 drivers/pci/controller/dwc/pcie-designware-host.c Gustavo Pimentel 2019-01-31 113 msg->data = d->hwirq;
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 114
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 115 dev_dbg(pci->dev, "msi#%d address_hi %#x address_lo %#x\n",
59ea68b3f17294 drivers/pci/controller/dwc/pcie-designware-host.c Gustavo Pimentel 2019-01-31 116 (int)d->hwirq, msg->address_hi, msg->address_lo);
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 117 }
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 118
fd5288a362ab55 drivers/pci/controller/dwc/pcie-designware-host.c Gustavo Pimentel 2019-01-31 119 static int dw_pci_msi_set_affinity(struct irq_data *d,
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 120 const struct cpumask *mask, bool force)
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 121 {
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 122 return -EINVAL;
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 123 }
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 124
40e9892ef94ce8 drivers/pci/controller/dwc/pcie-designware-host.c Gustavo Pimentel 2019-01-31 125 static void dw_pci_bottom_mask(struct irq_data *d)
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 126 {
40e9892ef94ce8 drivers/pci/controller/dwc/pcie-designware-host.c Gustavo Pimentel 2019-01-31 127 struct pcie_port *pp = irq_data_get_irq_chip_data(d);
f81c770df72e72 drivers/pci/controller/dwc/pcie-designware-host.c Rob Herring 2020-08-20 128 struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 129 unsigned int res, bit, ctrl;
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 130 unsigned long flags;
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 131
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 132 raw_spin_lock_irqsave(&pp->lock, flags);
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 133
40e9892ef94ce8 drivers/pci/controller/dwc/pcie-designware-host.c Gustavo Pimentel 2019-01-31 134 ctrl = d->hwirq / MAX_MSI_IRQS_PER_CTRL;
76cbf066b1ab75 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-05-14 135 res = ctrl * MSI_REG_CTRL_BLOCK_SIZE;
40e9892ef94ce8 drivers/pci/controller/dwc/pcie-designware-host.c Gustavo Pimentel 2019-01-31 136 bit = d->hwirq % MAX_MSI_IRQS_PER_CTRL;
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 137
657722570a555c drivers/pci/controller/dwc/pcie-designware-host.c Gustavo Pimentel 2019-01-31 138 pp->irq_mask[ctrl] |= BIT(bit);
f81c770df72e72 drivers/pci/controller/dwc/pcie-designware-host.c Rob Herring 2020-08-20 139 dw_pcie_writel_dbi(pci, PCIE_MSI_INTR0_MASK + res, pp->irq_mask[ctrl]);
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 140
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 141 raw_spin_unlock_irqrestore(&pp->lock, flags);
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 142 }
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 143
40e9892ef94ce8 drivers/pci/controller/dwc/pcie-designware-host.c Gustavo Pimentel 2019-01-31 144 static void dw_pci_bottom_unmask(struct irq_data *d)
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 145 {
40e9892ef94ce8 drivers/pci/controller/dwc/pcie-designware-host.c Gustavo Pimentel 2019-01-31 146 struct pcie_port *pp = irq_data_get_irq_chip_data(d);
f81c770df72e72 drivers/pci/controller/dwc/pcie-designware-host.c Rob Herring 2020-08-20 147 struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 148 unsigned int res, bit, ctrl;
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 149 unsigned long flags;
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 150
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 151 raw_spin_lock_irqsave(&pp->lock, flags);
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 152
40e9892ef94ce8 drivers/pci/controller/dwc/pcie-designware-host.c Gustavo Pimentel 2019-01-31 153 ctrl = d->hwirq / MAX_MSI_IRQS_PER_CTRL;
76cbf066b1ab75 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-05-14 154 res = ctrl * MSI_REG_CTRL_BLOCK_SIZE;
40e9892ef94ce8 drivers/pci/controller/dwc/pcie-designware-host.c Gustavo Pimentel 2019-01-31 155 bit = d->hwirq % MAX_MSI_IRQS_PER_CTRL;
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 156
657722570a555c drivers/pci/controller/dwc/pcie-designware-host.c Gustavo Pimentel 2019-01-31 157 pp->irq_mask[ctrl] &= ~BIT(bit);
f81c770df72e72 drivers/pci/controller/dwc/pcie-designware-host.c Rob Herring 2020-08-20 158 dw_pcie_writel_dbi(pci, PCIE_MSI_INTR0_MASK + res, pp->irq_mask[ctrl]);
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 159
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 160 raw_spin_unlock_irqrestore(&pp->lock, flags);
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 161 }
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 162
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 163 static void dw_pci_bottom_ack(struct irq_data *d)
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 164 {
3f7bb2ec20ce07 drivers/pci/controller/dwc/pcie-designware-host.c Marc Zyngier 2018-11-13 165 struct pcie_port *pp = irq_data_get_irq_chip_data(d);
f81c770df72e72 drivers/pci/controller/dwc/pcie-designware-host.c Rob Herring 2020-08-20 166 struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
3f7bb2ec20ce07 drivers/pci/controller/dwc/pcie-designware-host.c Marc Zyngier 2018-11-13 167 unsigned int res, bit, ctrl;
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 168
3f7bb2ec20ce07 drivers/pci/controller/dwc/pcie-designware-host.c Marc Zyngier 2018-11-13 169 ctrl = d->hwirq / MAX_MSI_IRQS_PER_CTRL;
3f7bb2ec20ce07 drivers/pci/controller/dwc/pcie-designware-host.c Marc Zyngier 2018-11-13 170 res = ctrl * MSI_REG_CTRL_BLOCK_SIZE;
3f7bb2ec20ce07 drivers/pci/controller/dwc/pcie-designware-host.c Marc Zyngier 2018-11-13 171 bit = d->hwirq % MAX_MSI_IRQS_PER_CTRL;
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 172
f81c770df72e72 drivers/pci/controller/dwc/pcie-designware-host.c Rob Herring 2020-08-20 173 dw_pcie_writel_dbi(pci, PCIE_MSI_INTR0_STATUS + res, BIT(bit));
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 174 }
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 175
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 176 static struct irq_chip dw_pci_msi_bottom_irq_chip = {
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 177 .name = "DWPCI-MSI",
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 178 .irq_ack = dw_pci_bottom_ack,
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 179 .irq_compose_msi_msg = dw_pci_setup_msi_msg,
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 180 .irq_set_affinity = dw_pci_msi_set_affinity,
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 181 .irq_mask = dw_pci_bottom_mask,
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 182 .irq_unmask = dw_pci_bottom_unmask,
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 183 };
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 184
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 185 static int dw_pcie_irq_domain_alloc(struct irq_domain *domain,
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 186 unsigned int virq, unsigned int nr_irqs,
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 187 void *args)
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 188 {
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 189 struct pcie_port *pp = domain->host_data;
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 190 unsigned long flags;
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 191 u32 i;
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 192 int bit;
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 193
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 194 raw_spin_lock_irqsave(&pp->lock, flags);
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 195
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 196 bit = bitmap_find_free_region(pp->msi_irq_in_use, pp->num_vectors,
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 197 order_base_2(nr_irqs));
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 198
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 199 raw_spin_unlock_irqrestore(&pp->lock, flags);
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 200
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 201 if (bit < 0)
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 202 return -ENOSPC;
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 203
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 204 for (i = 0; i < nr_irqs; i++)
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 205 irq_domain_set_info(domain, virq + i, bit + i,
9f67437b3a0858 drivers/pci/controller/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2019-03-21 206 pp->msi_irq_chip,
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 207 pp, handle_edge_irq,
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 208 NULL, NULL);
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 209
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 210 return 0;
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 211 }
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 212
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 213 static void dw_pcie_irq_domain_free(struct irq_domain *domain,
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 214 unsigned int virq, unsigned int nr_irqs)
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 215 {
4cfae0f1f8ce16 drivers/pci/controller/dwc/pcie-designware-host.c Gustavo Pimentel 2019-01-31 216 struct irq_data *d = irq_domain_get_irq_data(domain, virq);
03f8c1b350d001 drivers/pci/controller/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2019-12-20 217 struct pcie_port *pp = domain->host_data;
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 218 unsigned long flags;
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 219
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 220 raw_spin_lock_irqsave(&pp->lock, flags);
b4a8a51caf7de4 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-05-14 221
4cfae0f1f8ce16 drivers/pci/controller/dwc/pcie-designware-host.c Gustavo Pimentel 2019-01-31 222 bitmap_release_region(pp->msi_irq_in_use, d->hwirq,
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 223 order_base_2(nr_irqs));
b4a8a51caf7de4 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-05-14 224
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 225 raw_spin_unlock_irqrestore(&pp->lock, flags);
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 226 }
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 227
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 228 static const struct irq_domain_ops dw_pcie_msi_domain_ops = {
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 229 .alloc = dw_pcie_irq_domain_alloc,
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 230 .free = dw_pcie_irq_domain_free,
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 231 };
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 232
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 233 int dw_pcie_allocate_domains(struct pcie_port *pp)
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 234 {
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 235 struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 236 struct fwnode_handle *fwnode = of_node_to_fwnode(pci->dev->of_node);
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 237
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 238 pp->irq_domain = irq_domain_create_linear(fwnode, pp->num_vectors,
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 239 &dw_pcie_msi_domain_ops, pp);
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 240 if (!pp->irq_domain) {
b4a8a51caf7de4 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-05-14 241 dev_err(pci->dev, "Failed to create IRQ domain\n");
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 242 return -ENOMEM;
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 243 }
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 244
0414b93e78d87e drivers/pci/controller/dwc/pcie-designware-host.c Marc Zyngier 2020-05-01 245 irq_domain_update_bus_token(pp->irq_domain, DOMAIN_BUS_NEXUS);
0414b93e78d87e drivers/pci/controller/dwc/pcie-designware-host.c Marc Zyngier 2020-05-01 246
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 @247 pp->msi_domain = pci_msi_create_irq_domain(fwnode,
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 248 &dw_pcie_msi_domain_info,
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 249 pp->irq_domain);
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 250 if (!pp->msi_domain) {
b4a8a51caf7de4 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-05-14 251 dev_err(pci->dev, "Failed to create MSI domain\n");
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 252 irq_domain_remove(pp->irq_domain);
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 253 return -ENOMEM;
7c5925afbc58c6 drivers/pci/dwc/pcie-designware-host.c Gustavo Pimentel 2018-03-06 254 }
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 255
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 256 return 0;
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 257 }
feb85d9b1c47ea drivers/pci/dwc/pcie-designware-host.c Kishon Vijay Abraham I 2017-02-15 258
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
[jpirko-mlxsw:linecards 65/92] drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:301:16: warning: variable 'end' set but not used
by kernel test robot
tree: https://github.com/jpirko/linux_mlxsw linecards
head: f1abf7385107a947646d6b6edaa9b7594894a53a
commit: f05b460b1c388ff8c4b01c3bbdb707168862a6b2 [65/92] mlxsw: core_linecards: Add line card objects and implement provisioning
config: sh-allmodconfig (attached as .config)
compiler: sh4-linux-gcc (GCC) 9.3.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/jpirko/linux_mlxsw/commit/f05b460b1c388ff8c4b01c3bbdb7...
git remote add jpirko-mlxsw https://github.com/jpirko/linux_mlxsw
git fetch --no-tags jpirko-mlxsw linecards
git checkout f05b460b1c388ff8c4b01c3bbdb707168862a6b2
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross W=1 ARCH=sh
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/net/ethernet/mellanox/mlxsw/core_linecards.c: In function 'mlxsw_linecard_unprovision_work':
>> drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:301:16: warning: variable 'end' set but not used [-Wunused-but-set-variable]
301 | unsigned long end;
| ^~~
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for SND_ATMEL_SOC_PDC
Depends on SOUND && !UML && SND && SND_SOC && SND_ATMEL_SOC && HAS_DMA
Selected by
- SND_ATMEL_SOC_SSC && SOUND && !UML && SND && SND_SOC && SND_ATMEL_SOC
- SND_ATMEL_SOC_SSC_PDC && SOUND && !UML && SND && SND_SOC && SND_ATMEL_SOC && ATMEL_SSC
vim +/end +301 drivers/net/ethernet/mellanox/mlxsw/core_linecards.c
293
294 static void mlxsw_linecard_unprovision_work(struct work_struct *work)
295 {
296 struct mlxsw_linecard *linecard =
297 container_of(work, struct mlxsw_linecard, provision_work);
298 struct mlxsw_linecards *linecards;
299 enum mlxsw_reg_mbct_status status;
300 struct mlxsw_core *mlxsw_core;
> 301 unsigned long end;
302 int err;
303
304 mutex_lock(&linecard->lock);
305
306 linecards = linecard->linecards;
307 mlxsw_core = linecard->linecards->mlxsw_core;
308
309 mlxsw_reg_mbct_pack(linecard->mbct_pl, linecard->slot_index,
310 MLXSW_REG_MBCT_OP_DEACTIVATE, 0, false, NULL);
311 err = mlxsw_reg_write(mlxsw_core, MLXSW_REG(mbct), linecard->mbct_pl);
312 if (err) {
313 dev_err(linecards->bus_info->dev, "linecard %u: Failed to deactivate INI",
314 linecard->slot_index);
315 goto err_out;
316 }
317 mlxsw_reg_mbct_unpack(linecard->mbct_pl, &status);
318 if (status == MLXSW_REG_MBCT_STATUS_DEACTIVATION_FAILED) {
319 dev_err(linecards->bus_info->dev, "linecard %u: Failed to deactivate INI",
320 linecard->slot_index);
321 goto err_out;
322 }
323
324 end = jiffies + msecs_to_jiffies(MLXSW_LINECARD_INI_ERASE_WAIT_MSECS);
325
326 mlxsw_reg_mbct_pack(linecard->mbct_pl, linecard->slot_index,
327 MLXSW_REG_MBCT_OP_ERASE_INI_IMAGE, 0,
328 false, NULL);
329 err = mlxsw_reg_write(mlxsw_core, MLXSW_REG(mbct),
330 linecard->mbct_pl);
331 if (err) {
332 dev_err(linecards->bus_info->dev, "linecard %u: Failed to erase INI",
333 linecard->slot_index);
334 goto err_out;
335 }
336 mlxsw_reg_mbct_unpack(linecard->mbct_pl, &status);
337 switch (status) {
338 case MLXSW_REG_MBCT_STATUS_ERASE_COMPLETE:
339 break;
340 default:
341 /* Should not happen, fall-through. */
342 case MLXSW_REG_MBCT_STATUS_ERASE_FAILED:
343 dev_err(linecards->bus_info->dev, "linecard %u: Failed to erase INI",
344 linecard->slot_index);
345 goto err_out;
346 case MLXSW_REG_MBCT_STATUS_INI_IN_USE:
347 dev_err(linecards->bus_info->dev, "linecard %u: Failed to wait for INI to be not used",
348 linecard->slot_index);
349 goto err_out;
350 }
351 goto out;
352
353 err_out:
354 mlxsw_linecard_provision_fail(linecard);
355 out:
356 mutex_unlock(&linecard->lock);
357 }
358
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
[stffrdhrn:litex-gpio-fix 11/26] drivers/hwmon/litex-hwmon.c:108:9: warning: no previous prototype for function 'litex_hwmon_is_visible'
by kernel test robot
tree: https://github.com/stffrdhrn/linux.git litex-gpio-fix
head: 6f903ad53b35652c15f91265053f437a6b6f17f0
commit: 2391dcc5ac25dc841509d23932dbfc4cad69a9a7 [11/26] LiteX: driver for XADC hwmon
config: powerpc64-randconfig-r015-20210429 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 9131a078901b00e68248a27a4f8c4b11bb1db1ae)
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 powerpc64 cross compiling tool for clang build
# apt-get install binutils-powerpc64-linux-gnu
# https://github.com/stffrdhrn/linux/commit/2391dcc5ac25dc841509d23932dbfc4...
git remote add stffrdhrn https://github.com/stffrdhrn/linux.git
git fetch --no-tags stffrdhrn litex-gpio-fix
git checkout 2391dcc5ac25dc841509d23932dbfc4cad69a9a7
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=powerpc64
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/hwmon/litex-hwmon.c:69:13: error: implicit declaration of function 'litex_get_reg' [-Werror,-Wimplicit-function-declaration]
raw_data = litex_get_reg(hwmon_s->membase + TEMP_REG_OFFSET, TEMP_REG_SIZE);
^
drivers/hwmon/litex-hwmon.c:69:13: note: did you mean '_litex_get_reg'?
include/linux/litex.h:102:19: note: '_litex_get_reg' declared here
static inline u64 _litex_get_reg(void __iomem *reg, size_t reg_size)
^
drivers/hwmon/litex-hwmon.c:101:13: error: implicit declaration of function 'litex_get_reg' [-Werror,-Wimplicit-function-declaration]
raw_data = litex_get_reg(hwmon_s->membase + offset, size);
^
>> drivers/hwmon/litex-hwmon.c:108:9: warning: no previous prototype for function 'litex_hwmon_is_visible' [-Wmissing-prototypes]
umode_t litex_hwmon_is_visible(const void *drvdata,
^
drivers/hwmon/litex-hwmon.c:108:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
umode_t litex_hwmon_is_visible(const void *drvdata,
^
static
>> drivers/hwmon/litex-hwmon.c:115:5: warning: no previous prototype for function 'litex_hwmon_read' [-Wmissing-prototypes]
int litex_hwmon_read(struct device *dev, enum hwmon_sensor_types type,
^
drivers/hwmon/litex-hwmon.c:115:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int litex_hwmon_read(struct device *dev, enum hwmon_sensor_types type,
^
static
2 warnings and 2 errors generated.
vim +/litex_hwmon_is_visible +108 drivers/hwmon/litex-hwmon.c
57
58 static inline int litex_read_temp(struct litex_hwmon *hwmon_s, u32 attr,
59 int channel, long *val)
60 {
61 unsigned long raw_data;
62
63 if (attr != hwmon_temp_input)
64 return -ENOTSUPP;
65
66 if (channel != CHANNEL_TEMP)
67 return -EINVAL;
68
> 69 raw_data = litex_get_reg(hwmon_s->membase + TEMP_REG_OFFSET, TEMP_REG_SIZE);
70 *val = litex_temp_transfer_fun(raw_data);
71 return 0;
72 }
73
74 static inline int litex_read_in(struct litex_hwmon *hwmon_s, u32 attr,
75 int channel, long *val)
76 {
77 int offset;
78 int size;
79 unsigned long raw_data;
80
81 if (attr != hwmon_in_input)
82 return -ENOTSUPP;
83
84 switch (channel) {
85 case CHANNEL_VCCINT:
86 offset = VCCINT_REG_OFFSET;
87 size = VCCINT_REG_SIZE;
88 break;
89 case CHANNEL_VCCAUX:
90 offset = VCCAUX_REG_OFFSET;
91 size = VCCAUX_REG_SIZE;
92 break;
93 case CHANNEL_VCCBRAM:
94 offset = VCCBRAM_REG_OFFSET;
95 size = VCCBRAM_REG_SIZE;
96 break;
97 default:
98 return -EINVAL;
99 }
100
101 raw_data = litex_get_reg(hwmon_s->membase + offset, size);
102 *val = litex_supp_transfer_fun(raw_data);
103 return 0;
104 }
105
106 /* API functions */
107
> 108 umode_t litex_hwmon_is_visible(const void *drvdata,
109 enum hwmon_sensor_types type,
110 u32 attr, int channel)
111 {
112 return 0444;
113 }
114
> 115 int litex_hwmon_read(struct device *dev, enum hwmon_sensor_types type,
116 u32 attr, int channel, long *val)
117 {
118 struct litex_hwmon *hwmon_s = dev_get_drvdata(dev);
119
120 switch (type) {
121 case hwmon_temp:
122 return litex_read_temp(hwmon_s, attr, channel, val);
123 case hwmon_in:
124 return litex_read_in(hwmon_s, attr, channel, val);
125 default:
126 return -ENOTSUPP;
127 }
128
129 return 0;
130 }
131
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
Re: [RFC PATCH v4 14/27] nvme-tcp-offload: Add IO level implementation
by kernel test robot
Hi Shai,
[FYI, it's a private test report for your RFC patch.]
[auto build test WARNING on ipvs/master]
[also build test WARNING on hch-configfs/for-next linus/master v5.12 next-20210429]
[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/Shai-Malin/NVMeTCP-Offload-ULP-a...
base: https://git.kernel.org/pub/scm/linux/kernel/git/horms/ipvs.git master
config: x86_64-randconfig-a011-20210429 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 9131a078901b00e68248a27a4f8c4b11bb1db1ae)
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 x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# https://github.com/0day-ci/linux/commit/8f96123c694f82006e0946973a21196ec...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Shai-Malin/NVMeTCP-Offload-ULP-and-QEDN-Device-Driver/20210430-032713
git checkout 8f96123c694f82006e0946973a21196ec384d008
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=x86_64
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/nvme/host/tcp-offload.c:107:5: warning: no previous prototype for function 'nvme_tcp_ofld_report_queue_err' [-Wmissing-prototypes]
int nvme_tcp_ofld_report_queue_err(struct nvme_tcp_ofld_queue *queue)
^
drivers/nvme/host/tcp-offload.c:107:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int nvme_tcp_ofld_report_queue_err(struct nvme_tcp_ofld_queue *queue)
^
static
drivers/nvme/host/tcp-offload.c:126:6: warning: no previous prototype for function 'nvme_tcp_ofld_req_done' [-Wmissing-prototypes]
void nvme_tcp_ofld_req_done(struct nvme_tcp_ofld_req *req,
^
drivers/nvme/host/tcp-offload.c:126:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void nvme_tcp_ofld_req_done(struct nvme_tcp_ofld_req *req,
^
static
drivers/nvme/host/tcp-offload.c:137:1: warning: no previous prototype for function 'nvme_tcp_ofld_lookup_dev' [-Wmissing-prototypes]
nvme_tcp_ofld_lookup_dev(struct nvme_tcp_ofld_ctrl *ctrl)
^
drivers/nvme/host/tcp-offload.c:136:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
struct nvme_tcp_ofld_dev *
^
static
>> drivers/nvme/host/tcp-offload.c:711:6: warning: no previous prototype for function 'nvme_tcp_ofld_map_data' [-Wmissing-prototypes]
void nvme_tcp_ofld_map_data(struct nvme_command *c, u32 data_len)
^
drivers/nvme/host/tcp-offload.c:711:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void nvme_tcp_ofld_map_data(struct nvme_command *c, u32 data_len)
^
static
drivers/nvme/host/tcp-offload.c:25:19: warning: unused function 'nvme_tcp_ofld_qid' [-Wunused-function]
static inline int nvme_tcp_ofld_qid(struct nvme_tcp_ofld_queue *queue)
^
5 warnings generated.
vim +/nvme_tcp_ofld_map_data +711 drivers/nvme/host/tcp-offload.c
710
> 711 void nvme_tcp_ofld_map_data(struct nvme_command *c, u32 data_len)
712 {
713 struct nvme_sgl_desc *sg = &c->common.dptr.sgl;
714
715 sg->addr = 0;
716 sg->length = cpu_to_le32(data_len);
717 sg->type = (NVME_TRANSPORT_SGL_DATA_DESC << 4) | NVME_SGL_FMT_TRANSPORT_A;
718 }
719
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months