media: i2c: select V4L2_ASYNC where needed
authorArnd Bergmann <arnd@arndb.de>
Mon, 20 Sep 2021 09:58:24 +0000 (10:58 +0100)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Tue, 19 Oct 2021 07:08:38 +0000 (08:08 +0100)
I came across a link failure from randconfig builds:

x86_64-linux-ld: drivers/media/i2c/ths8200.o: in function `ths8200_remove':
ths8200.c:(.text+0x491): undefined reference to `v4l2_async_unregister_subdev'
x86_64-linux-ld: drivers/media/i2c/ths8200.o: in function `ths8200_probe':
ths8200.c:(.text+0xe49): undefined reference to `v4l2_async_register_subdev'
x86_64-linux-ld: drivers/media/i2c/tw9910.o: in function `tw9910_remove':
tw9910.c:(.text+0x467): undefined reference to `v4l2_async_unregister_subdev'
x86_64-linux-ld: drivers/media/i2c/tw9910.o: in function `tw9910_probe':
tw9910.c:(.text+0x1123): undefined reference to `v4l2_async_register_subdev'

These clearly lack a 'select' statement, but I don't know why
this started happening only now. I had a bit of a look around to find
other configs that have the same problem, but could not come up with
a reliable way and found nothing else through experimentation.
It is likely that other symbols like these exist that need an extra
select.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/i2c/Kconfig

index 0e56489..d6a5d4c 100644 (file)
@@ -450,6 +450,7 @@ config VIDEO_TW9906
 config VIDEO_TW9910
        tristate "Techwell TW9910 video decoder"
        depends on VIDEO_V4L2 && I2C
+       select V4L2_ASYNC
        help
          Support for Techwell TW9910 NTSC/PAL/SECAM video decoder.
 
@@ -611,6 +612,7 @@ menu "Video improvement chips"
 config VIDEO_UPD64031A
        tristate "NEC Electronics uPD64031A Ghost Reduction"
        depends on VIDEO_V4L2 && I2C
+       select V4L2_ASYNC
        help
          Support for the NEC Electronics uPD64031A Ghost Reduction
          video chip. It is most often found in NTSC TV cards made for