2024-02-13 02:10:53

by kernel test robot

[permalink] [raw]
Subject: drivers/media/platform/marvell/cafe-driver.c:543: undefined reference to `v4l2_async_nf_init'

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/[email protected]/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/[email protected]/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 <[email protected]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/

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 <[email protected]>
:::::: CC: Mauro Carvalho Chehab <[email protected]>

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


2024-02-14 11:42:57

by Dawei Li

[permalink] [raw]
Subject: [PATCH] media: Add dependency of ov7670/mcam/cafe on CONFIG_V4L2_ASYNC explicitly

Kernel test robot reports:
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'

Add explicit dependency on CONFIG_V4L2_ASYNC to mute ld errors.

Reported-by: kernel test robot <[email protected]>
Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/
Signed-off-by: Dawei Li <[email protected]>
---
drivers/media/i2c/Kconfig | 1 +
drivers/media/platform/marvell/Kconfig | 2 ++
2 files changed, 3 insertions(+)

diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig
index 4c3435921f19..453cb4b81d6f 100644
--- a/drivers/media/i2c/Kconfig
+++ b/drivers/media/i2c/Kconfig
@@ -523,6 +523,7 @@ config VIDEO_OV7640
module will be called ov7640.

config VIDEO_OV7670
+ select V4L2_ASYNC
tristate "OmniVision OV7670 sensor support"
help
This is a Video4Linux2 sensor driver for the OmniVision
diff --git a/drivers/media/platform/marvell/Kconfig b/drivers/media/platform/marvell/Kconfig
index d6499ffe30e8..48f5484478a0 100644
--- a/drivers/media/platform/marvell/Kconfig
+++ b/drivers/media/platform/marvell/Kconfig
@@ -11,6 +11,7 @@ config VIDEO_CAFE_CCIC
select VIDEOBUF2_VMALLOC
select VIDEOBUF2_DMA_CONTIG
select VIDEOBUF2_DMA_SG
+ select V4L2_ASYNC
help
This is a video4linux2 driver for the Marvell 88ALP01 integrated
CMOS camera controller. This is the controller found on first-
@@ -27,6 +28,7 @@ config VIDEO_MMP_CAMERA
select VIDEOBUF2_VMALLOC
select VIDEOBUF2_DMA_CONTIG
select VIDEOBUF2_DMA_SG
+ select V4L2_ASYNC
help
This is a Video4Linux2 driver for the integrated camera
controller found on Marvell Armada 610 application
--
2.27.0


2024-02-14 12:53:15

by Hans Verkuil

[permalink] [raw]
Subject: Re: [PATCH] media: Add dependency of ov7670/mcam/cafe on CONFIG_V4L2_ASYNC explicitly

On 14/02/2024 12:38, Dawei Li wrote:
> Kernel test robot reports:
> 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'
>
> Add explicit dependency on CONFIG_V4L2_ASYNC to mute ld errors.
>
> Reported-by: kernel test robot <[email protected]>
> Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/
> Signed-off-by: Dawei Li <[email protected]>

This is a duplicate of:

https://patchwork.linuxtv.org/project/linux-media/patch/[email protected]/

The ov7670 undefined reference has been resolved quite some time ago, this
kernel test robot build is from a 6 months old tree.

I'll take Arnd's patch instead of yours.

Regards,

Hans

> ---
> drivers/media/i2c/Kconfig | 1 +
> drivers/media/platform/marvell/Kconfig | 2 ++
> 2 files changed, 3 insertions(+)
>
> diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig
> index 4c3435921f19..453cb4b81d6f 100644
> --- a/drivers/media/i2c/Kconfig
> +++ b/drivers/media/i2c/Kconfig
> @@ -523,6 +523,7 @@ config VIDEO_OV7640
> module will be called ov7640.
>
> config VIDEO_OV7670
> + select V4L2_ASYNC
> tristate "OmniVision OV7670 sensor support"
> help
> This is a Video4Linux2 sensor driver for the OmniVision
> diff --git a/drivers/media/platform/marvell/Kconfig b/drivers/media/platform/marvell/Kconfig
> index d6499ffe30e8..48f5484478a0 100644
> --- a/drivers/media/platform/marvell/Kconfig
> +++ b/drivers/media/platform/marvell/Kconfig
> @@ -11,6 +11,7 @@ config VIDEO_CAFE_CCIC
> select VIDEOBUF2_VMALLOC
> select VIDEOBUF2_DMA_CONTIG
> select VIDEOBUF2_DMA_SG
> + select V4L2_ASYNC
> help
> This is a video4linux2 driver for the Marvell 88ALP01 integrated
> CMOS camera controller. This is the controller found on first-
> @@ -27,6 +28,7 @@ config VIDEO_MMP_CAMERA
> select VIDEOBUF2_VMALLOC
> select VIDEOBUF2_DMA_CONTIG
> select VIDEOBUF2_DMA_SG
> + select V4L2_ASYNC
> help
> This is a Video4Linux2 driver for the integrated camera
> controller found on Marvell Armada 610 application