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

From: Hans Verkuil
Date: Wed Feb 14 2024 - 07:53:14 EST


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 <lkp@xxxxxxxxx>
> Closes: https://lore.kernel.org/oe-kbuild-all/202402130955.f6uxzdCA-lkp@xxxxxxxxx/
> Signed-off-by: Dawei Li <dawei.li@xxxxxxxxxxxx>

This is a duplicate of:

https://patchwork.linuxtv.org/project/linux-media/patch/20240213095555.454392-1-arnd@xxxxxxxxxx/

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