drivers/media/platform/marvell/cafe-driver.c:543: undefined reference to `v4l2_async_nf_init'

From: kernel test robot
Date: Mon Feb 12 2024 - 20:46:32 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: c664e16bb1ba1c8cf1d7ecf3df5fd83bbb8ac15a
commit: 7d3c7d2a2914e10bec3b9cdacdadb8e1f65f715a media: i2c: Add a camera sensor top level menu
date: 6 months ago
config: i386-randconfig-r011-20211227 (https://download.01.org/0day-ci/archive/20240213/202402130955.f6uxzdCA-lkp@xxxxxxxxx/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240213/202402130955.f6uxzdCA-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202402130955.f6uxzdCA-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

ld: drivers/media/i2c/ov7670.o: in function `ov7670_remove':
drivers/media/i2c/ov7670.c:2011: undefined reference to `v4l2_async_unregister_subdev'
ld: drivers/media/i2c/ov7670.o: in function `ov7670_parse_dt':
drivers/media/i2c/ov7670.c:1836: undefined reference to `v4l2_fwnode_endpoint_parse'
ld: drivers/media/i2c/ov7670.o: in function `ov7670_probe':
drivers/media/i2c/ov7670.c:1990: undefined reference to `v4l2_async_register_subdev'
ld: drivers/media/platform/marvell/cafe-driver.o: in function `cafe_pci_probe':
>> drivers/media/platform/marvell/cafe-driver.c:543: undefined reference to `v4l2_async_nf_init'
>> ld: drivers/media/platform/marvell/cafe-driver.c:545: undefined reference to `__v4l2_async_nf_add_i2c'
ld: drivers/media/platform/marvell/mcam-core.o: in function `mccic_shutdown':
>> drivers/media/platform/marvell/mcam-core.c:1931: undefined reference to `v4l2_async_nf_unregister'
>> ld: drivers/media/platform/marvell/mcam-core.c:1932: undefined reference to `v4l2_async_nf_cleanup'
ld: drivers/media/platform/marvell/mcam-core.o: in function `mccic_register':
drivers/media/platform/marvell/mcam-core.c:1910: undefined reference to `v4l2_async_nf_unregister'
ld: drivers/media/platform/marvell/mcam-core.c:1911: undefined reference to `v4l2_async_nf_cleanup'
>> ld: drivers/media/platform/marvell/mcam-core.c:1873: undefined reference to `v4l2_async_nf_register'

Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for VIDEO_OV7670
Depends on [n]: MEDIA_SUPPORT [=y] && VIDEO_CAMERA_SENSOR [=n] && I2C [=y] && VIDEO_DEV [=y]
Selected by [y]:
- VIDEO_CAFE_CCIC [=y] && MEDIA_SUPPORT [=y] && MEDIA_PLATFORM_SUPPORT [=y] && MEDIA_PLATFORM_DRIVERS [=y] && V4L_PLATFORM_DRIVERS [=y] && PCI [=y] && I2C [=y] && VIDEO_DEV [=y] && COMMON_CLK [=y]


vim +543 drivers/media/platform/marvell/cafe-driver.c

abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 469
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 470 /* -------------------------------------------------------------------------- */
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 471 /*
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 472 * PCI interface stuff.
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 473 */
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 474
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 475 static int cafe_pci_probe(struct pci_dev *pdev,
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 476 const struct pci_device_id *id)
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 477 {
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 478 int ret;
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 479 struct cafe_camera *cam;
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 480 struct mcam_camera *mcam;
adb2dcd5f2d49d drivers/media/platform/marvell/cafe-driver.c Sakari Ailus 2023-02-16 481 struct v4l2_async_connection *asd;
2b889a4afcacef drivers/media/platform/marvell-ccic/cafe-driver.c Evgeny Novikov 2021-05-26 482 struct i2c_client *i2c_dev;
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 483
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 484 /*
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 485 * Start putting together one of our big camera structures.
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 486 */
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 487 ret = -ENOMEM;
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 488 cam = kzalloc(sizeof(struct cafe_camera), GFP_KERNEL);
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 489 if (cam == NULL)
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 490 goto out;
953e41153a1662 drivers/media/platform/marvell-ccic/cafe-driver.c Lubomir Rintel 2020-08-18 491 pci_set_drvdata(pdev, cam);
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 492 cam->pdev = pdev;
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 493 mcam = &cam->mcam;
7486af1ae3ee34 drivers/media/platform/marvell-ccic/cafe-driver.c Hans Verkuil 2013-05-29 494 mcam->chip_id = MCAM_CAFE;
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 495 spin_lock_init(&mcam->dev_lock);
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 496 init_waitqueue_head(&cam->smbus_wait);
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 497 mcam->plat_power_up = cafe_ctlr_power_up;
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 498 mcam->plat_power_down = cafe_ctlr_power_down;
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 499 mcam->dev = &pdev->dev;
a9b36e850782db drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-20 500 /*
a9b36e850782db drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-20 501 * Vmalloc mode for buffers is traditional with this driver.
a9b36e850782db drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-20 502 * We *might* be able to run DMA_contig, especially on a system
a9b36e850782db drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-20 503 * with CMA in it.
a9b36e850782db drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-20 504 */
a9b36e850782db drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-20 505 mcam->buffer_mode = B_vmalloc;
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 506 /*
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 507 * Get set up on the PCI bus.
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 508 */
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 509 ret = pci_enable_device(pdev);
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 510 if (ret)
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 511 goto out_free;
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 512 pci_set_master(pdev);
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 513
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 514 ret = -EIO;
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 515 mcam->regs = pci_iomap(pdev, 0, 0);
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 516 if (!mcam->regs) {
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 517 printk(KERN_ERR "Unable to ioremap cafe-ccic regs\n");
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 518 goto out_disable;
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 519 }
4e032f3f58800a drivers/media/platform/marvell-ccic/cafe-driver.c Hans Verkuil 2013-05-29 520 mcam->regs_size = pci_resource_len(pdev, 0);
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 521 ret = request_irq(pdev->irq, cafe_irq, IRQF_SHARED, "cafe-ccic", cam);
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 522 if (ret)
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 523 goto out_iounmap;
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 524
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 525 /*
81a409bfd5517d drivers/media/platform/marvell-ccic/cafe-driver.c Lubomir Rintel 2019-05-28 526 * Initialize the controller.
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 527 */
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 528 cafe_ctlr_init(mcam);
81a409bfd5517d drivers/media/platform/marvell-ccic/cafe-driver.c Lubomir Rintel 2019-05-28 529
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 530 /*
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 531 * Set up I2C/SMBUS communications. We have to drop the mutex here
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 532 * because the sensor could attach in this call chain, leading to
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 533 * unsightly deadlocks.
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 534 */
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 535 ret = cafe_smbus_setup(cam);
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 536 if (ret)
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 537 goto out_pdown;
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 538
4af65141e38ea5 drivers/media/platform/marvell/cafe-driver.c Sakari Ailus 2023-03-29 539 ret = v4l2_device_register(mcam->dev, &mcam->v4l2_dev);
4af65141e38ea5 drivers/media/platform/marvell/cafe-driver.c Sakari Ailus 2023-03-29 540 if (ret)
4af65141e38ea5 drivers/media/platform/marvell/cafe-driver.c Sakari Ailus 2023-03-29 541 goto out_smbus_shutdown;
4af65141e38ea5 drivers/media/platform/marvell/cafe-driver.c Sakari Ailus 2023-03-29 542
b8ec754ae4c563 drivers/media/platform/marvell/cafe-driver.c Sakari Ailus 2023-02-23 @543 v4l2_async_nf_init(&mcam->notifier, &mcam->v4l2_dev);
50fe0de0fedbc2 drivers/media/platform/marvell-ccic/cafe-driver.c Ezequiel Garcia 2021-01-18 544
3c8c153914812a drivers/media/platform/marvell-ccic/cafe-driver.c Sakari Ailus 2021-03-05 @545 asd = v4l2_async_nf_add_i2c(&mcam->notifier,
50fe0de0fedbc2 drivers/media/platform/marvell-ccic/cafe-driver.c Ezequiel Garcia 2021-01-18 546 i2c_adapter_id(cam->i2c_adapter),
adb2dcd5f2d49d drivers/media/platform/marvell/cafe-driver.c Sakari Ailus 2023-02-16 547 ov7670_info.addr,
adb2dcd5f2d49d drivers/media/platform/marvell/cafe-driver.c Sakari Ailus 2023-02-16 548 struct v4l2_async_connection);
50fe0de0fedbc2 drivers/media/platform/marvell-ccic/cafe-driver.c Ezequiel Garcia 2021-01-18 549 if (IS_ERR(asd)) {
50fe0de0fedbc2 drivers/media/platform/marvell-ccic/cafe-driver.c Ezequiel Garcia 2021-01-18 550 ret = PTR_ERR(asd);
4af65141e38ea5 drivers/media/platform/marvell/cafe-driver.c Sakari Ailus 2023-03-29 551 goto out_v4l2_device_unregister;
50fe0de0fedbc2 drivers/media/platform/marvell-ccic/cafe-driver.c Ezequiel Garcia 2021-01-18 552 }
3eefe36cc00c53 drivers/media/platform/marvell-ccic/cafe-driver.c Lubomir Rintel 2019-05-28 553
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 554 ret = mccic_register(mcam);
3eefe36cc00c53 drivers/media/platform/marvell-ccic/cafe-driver.c Lubomir Rintel 2019-05-28 555 if (ret)
4af65141e38ea5 drivers/media/platform/marvell/cafe-driver.c Sakari Ailus 2023-03-29 556 goto out_v4l2_device_unregister;
3eefe36cc00c53 drivers/media/platform/marvell-ccic/cafe-driver.c Lubomir Rintel 2019-05-28 557
81a409bfd5517d drivers/media/platform/marvell-ccic/cafe-driver.c Lubomir Rintel 2019-05-28 558 clkdev_create(mcam->mclk, "xclk", "%d-%04x",
81a409bfd5517d drivers/media/platform/marvell-ccic/cafe-driver.c Lubomir Rintel 2019-05-28 559 i2c_adapter_id(cam->i2c_adapter), ov7670_info.addr);
81a409bfd5517d drivers/media/platform/marvell-ccic/cafe-driver.c Lubomir Rintel 2019-05-28 560
2b889a4afcacef drivers/media/platform/marvell-ccic/cafe-driver.c Evgeny Novikov 2021-05-26 561 i2c_dev = i2c_new_client_device(cam->i2c_adapter, &ov7670_info);
2b889a4afcacef drivers/media/platform/marvell-ccic/cafe-driver.c Evgeny Novikov 2021-05-26 562 if (IS_ERR(i2c_dev)) {
2b889a4afcacef drivers/media/platform/marvell-ccic/cafe-driver.c Evgeny Novikov 2021-05-26 563 ret = PTR_ERR(i2c_dev);
2b889a4afcacef drivers/media/platform/marvell-ccic/cafe-driver.c Evgeny Novikov 2021-05-26 564 goto out_mccic_shutdown;
2b889a4afcacef drivers/media/platform/marvell-ccic/cafe-driver.c Evgeny Novikov 2021-05-26 565 }
2b889a4afcacef drivers/media/platform/marvell-ccic/cafe-driver.c Evgeny Novikov 2021-05-26 566
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 567 cam->registered = 1;
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 568 return 0;
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 569
2b889a4afcacef drivers/media/platform/marvell-ccic/cafe-driver.c Evgeny Novikov 2021-05-26 570 out_mccic_shutdown:
3eefe36cc00c53 drivers/media/platform/marvell-ccic/cafe-driver.c Lubomir Rintel 2019-05-28 571 mccic_shutdown(mcam);
4af65141e38ea5 drivers/media/platform/marvell/cafe-driver.c Sakari Ailus 2023-03-29 572 out_v4l2_device_unregister:
4af65141e38ea5 drivers/media/platform/marvell/cafe-driver.c Sakari Ailus 2023-03-29 573 v4l2_device_unregister(&mcam->v4l2_dev);
3eefe36cc00c53 drivers/media/platform/marvell-ccic/cafe-driver.c Lubomir Rintel 2019-05-28 574 out_smbus_shutdown:
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 575 cafe_smbus_shutdown(cam);
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 576 out_pdown:
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 577 cafe_ctlr_power_down(mcam);
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 578 free_irq(pdev->irq, cam);
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 579 out_iounmap:
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 580 pci_iounmap(pdev, mcam->regs);
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 581 out_disable:
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 582 pci_disable_device(pdev);
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 583 out_free:
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 584 kfree(cam);
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 585 out:
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 586 return ret;
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 587 }
abfa3df36c01a3 drivers/media/video/marvell-ccic/cafe-driver.c Jonathan Corbet 2011-06-11 588

:::::: The code at line 543 was first introduced by commit
:::::: b8ec754ae4c563f6aab8c0cb47aeb2eae67f1da3 media: v4l: async: Set v4l2_device and subdev in async notifier init

:::::: TO: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx>
:::::: CC: Mauro Carvalho Chehab <mchehab@xxxxxxxxxx>

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