tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 2ccbdf43d5e758f8493a95252073cf9078a5fea5
commit: 33116eb12c6b29889cc161058ae0ee4124821b6f media: ivsc: csi: Use IPU bridge
date: 6 weeks ago
config: x86_64-randconfig-003-20231130 (https://download.01.org/0day-ci/archive/20240613/[email protected]/config)
compiler: gcc-13 (Ubuntu 13.2.0-4ubuntu3) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240613/[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/pci/intel/ivsc/mei_csi.o: in function `mei_csi_probe':
>> drivers/media/pci/intel/ivsc/mei_csi.c:679:(.text+0xd8e): undefined reference to `ipu_bridge_parse_ssdb'
>> ld: drivers/media/pci/intel/ivsc/mei_csi.c:679:(.text+0xd93): undefined reference to `ipu_bridge_init'
vim +679 drivers/media/pci/intel/ivsc/mei_csi.c
662
663 static int mei_csi_probe(struct mei_cl_device *cldev,
664 const struct mei_cl_device_id *id)
665 {
666 struct device *dev = &cldev->dev;
667 struct pci_dev *ipu;
668 struct mei_csi *csi;
669 unsigned int i;
670 int ret;
671
672 for (i = 0, ipu = NULL; !ipu && ipu6_pci_tbl[i].vendor; i++)
673 ipu = pci_get_device(ipu6_pci_tbl[i].vendor,
674 ipu6_pci_tbl[i].device, NULL);
675
676 if (!ipu)
677 return -ENODEV;
678
> 679 ret = ipu_bridge_init(&ipu->dev, ipu_bridge_parse_ssdb);
680 if (ret < 0)
681 return ret;
682 if (WARN_ON(!dev_fwnode(dev)))
683 return -ENXIO;
684
685 csi = devm_kzalloc(dev, sizeof(struct mei_csi), GFP_KERNEL);
686 if (!csi)
687 return -ENOMEM;
688
689 csi->cldev = cldev;
690 mutex_init(&csi->lock);
691 init_completion(&csi->cmd_completion);
692
693 mei_cldev_set_drvdata(cldev, csi);
694
695 ret = mei_cldev_enable(cldev);
696 if (ret < 0) {
697 dev_err(dev, "mei_cldev_enable failed: %d\n", ret);
698 goto destroy_mutex;
699 }
700
701 ret = mei_cldev_register_rx_cb(cldev, mei_csi_rx);
702 if (ret) {
703 dev_err(dev, "event cb registration failed: %d\n", ret);
704 goto err_disable;
705 }
706
707 ret = mei_csi_parse_firmware(csi);
708 if (ret)
709 goto err_disable;
710
711 csi->subdev.dev = &cldev->dev;
712 csi->subdev.state_lock = &csi->lock;
713 v4l2_subdev_init(&csi->subdev, &mei_csi_subdev_ops);
714 csi->subdev.internal_ops = &mei_csi_internal_ops;
715 v4l2_set_subdevdata(&csi->subdev, csi);
716 csi->subdev.flags = V4L2_SUBDEV_FL_HAS_DEVNODE |
717 V4L2_SUBDEV_FL_HAS_EVENTS;
718 csi->subdev.entity.function = MEDIA_ENT_F_VID_IF_BRIDGE;
719 csi->subdev.entity.ops = &mei_csi_entity_ops;
720
721 snprintf(csi->subdev.name, sizeof(csi->subdev.name),
722 MEI_CSI_ENTITY_NAME);
723
724 ret = mei_csi_init_controls(csi);
725 if (ret)
726 goto err_ctrl_handler;
727
728 csi->pads[CSI_PAD_SOURCE].flags = MEDIA_PAD_FL_SOURCE;
729 csi->pads[CSI_PAD_SINK].flags = MEDIA_PAD_FL_SINK;
730 ret = media_entity_pads_init(&csi->subdev.entity, CSI_NUM_PADS,
731 csi->pads);
732 if (ret)
733 goto err_ctrl_handler;
734
735 ret = v4l2_subdev_init_finalize(&csi->subdev);
736 if (ret < 0)
737 goto err_entity;
738
739 ret = v4l2_async_register_subdev(&csi->subdev);
740 if (ret < 0)
741 goto err_subdev;
742
743 pm_runtime_enable(&cldev->dev);
744
745 return 0;
746
747 err_subdev:
748 v4l2_subdev_cleanup(&csi->subdev);
749
750 err_entity:
751 media_entity_cleanup(&csi->subdev.entity);
752
753 err_ctrl_handler:
754 v4l2_ctrl_handler_free(&csi->ctrl_handler);
755 v4l2_async_nf_unregister(&csi->notifier);
756 v4l2_async_nf_cleanup(&csi->notifier);
757
758 err_disable:
759 mei_cldev_disable(cldev);
760
761 destroy_mutex:
762 mutex_destroy(&csi->lock);
763
764 return ret;
765 }
766
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki