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