2023-09-12 13:27:39

by Arnd Bergmann

[permalink] [raw]
Subject: [PATCH] media: fix VIDEO_CAMERA_SENSOR dependencies

From: Arnd Bergmann <[email protected]>

The new Kconfig submenu now guards the visibility of camera sensor drivers,
and any driver that selects one of them runs into a missing dependency warning
if it's disabled:

WARNING: unmet direct dependencies detected for VIDEO_OV2640
Depends on [n]: MEDIA_SUPPORT [=y] && VIDEO_DEV [=y] && VIDEO_CAMERA_SENSOR [=n]
Selected by [y]:
- VIDEO_EM28XX_V4L2 [=y] && USB [=y] && MEDIA_SUPPORT [=y] && MEDIA_USB_SUPPORT [=y] && (MEDIA_CAMERA_SUPPORT [=y] || MEDIA_ANALOG_TV_SUPPORT [=y] || MEDIA_DIGITAL_TV_SUPPORT [=y]) && VIDEO_EM28XX [=y] && MEDIA_SUBDRV_AUTOSELECT [=y] && MEDIA_CAMERA_SUPPORT [=y]
- VIDEO_GO7007 [=y] && MEDIA_SUPPORT [=y] && MEDIA_USB_SUPPORT [=y] && MEDIA_ANALOG_TV_SUPPORT [=y] && VIDEO_DEV [=y] && I2C [=y] && SND [=y] && USB [=y] && MEDIA_SUBDRV_AUTOSELECT [=y] && MEDIA_CAMERA_SUPPORT [=y]

WARNING: unmet direct dependencies detected for VIDEO_MT9V011
Depends on [n]: MEDIA_SUPPORT [=y] && VIDEO_DEV [=y] && VIDEO_CAMERA_SENSOR [=n]
Selected by [y]:
- VIDEO_EM28XX_V4L2 [=y] && USB [=y] && MEDIA_SUPPORT [=y] && MEDIA_USB_SUPPORT [=y] && (MEDIA_CAMERA_SUPPORT [=y] || MEDIA_ANALOG_TV_SUPPORT [=y] || MEDIA_DIGITAL_TV_SUPPORT [=y]) && VIDEO_EM28XX [=y] && MEDIA_SUBDRV_AUTOSELECT [=y] && MEDIA_CAMERA_SUPPORT [=y]

WARNING: unmet direct dependencies detected for VIDEO_OV7670
Depends on [n]: MEDIA_SUPPORT [=y] && VIDEO_DEV [=y] && VIDEO_CAMERA_SENSOR [=n]
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]
- VIDEO_MMP_CAMERA [=y] && MEDIA_SUPPORT [=y] && MEDIA_PLATFORM_SUPPORT [=y] && MEDIA_PLATFORM_DRIVERS [=y] && V4L_PLATFORM_DRIVERS [=y] && I2C [=y] && VIDEO_DEV [=y] && (ARCH_MMP [=y] || COMPILE_TEST [=y]) && COMMON_CLK [=y]
- VIDEO_VIA_CAMERA [=y] && MEDIA_SUPPORT [=y] && MEDIA_PLATFORM_SUPPORT [=y] && MEDIA_PLATFORM_DRIVERS [=y] && V4L_PLATFORM_DRIVERS [=y] && FB_VIA [=y] && VIDEO_DEV [=y]

Some of these are guarded by 'if MEDIA_SUBDRV_AUTOSELECT &&
MEDIA_CAMERA_SUPPORT', which seems to be the right approach, so update
those to use the new VIDEO_CAMERA_SENSOR symbol instead of
MEDIA_CAMERA_SUPPORT and add the same condition to the ones that
don't already have one.

Fixes: 7d3c7d2a2914e ("media: i2c: Add a camera sensor top level menu")
Signed-off-by: Arnd Bergmann <[email protected]>
---
drivers/media/platform/marvell/Kconfig | 4 ++--
drivers/media/platform/via/Kconfig | 2 +-
drivers/media/usb/em28xx/Kconfig | 4 ++--
drivers/media/usb/go7007/Kconfig | 2 +-
4 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/media/platform/marvell/Kconfig b/drivers/media/platform/marvell/Kconfig
index ec1a16734a280..d6499ffe30e8b 100644
--- a/drivers/media/platform/marvell/Kconfig
+++ b/drivers/media/platform/marvell/Kconfig
@@ -7,7 +7,7 @@ config VIDEO_CAFE_CCIC
depends on V4L_PLATFORM_DRIVERS
depends on PCI && I2C && VIDEO_DEV
depends on COMMON_CLK
- select VIDEO_OV7670
+ select VIDEO_OV7670 if MEDIA_SUBDRV_AUTOSELECT && VIDEO_CAMERA_SENSOR
select VIDEOBUF2_VMALLOC
select VIDEOBUF2_DMA_CONTIG
select VIDEOBUF2_DMA_SG
@@ -22,7 +22,7 @@ config VIDEO_MMP_CAMERA
depends on I2C && VIDEO_DEV
depends on ARCH_MMP || COMPILE_TEST
depends on COMMON_CLK
- select VIDEO_OV7670
+ select VIDEO_OV7670 if MEDIA_SUBDRV_AUTOSELECT && VIDEO_CAMERA_SENSOR
select I2C_GPIO
select VIDEOBUF2_VMALLOC
select VIDEOBUF2_DMA_CONTIG
diff --git a/drivers/media/platform/via/Kconfig b/drivers/media/platform/via/Kconfig
index 8926eb0803b27..ea8dfc0a90756 100644
--- a/drivers/media/platform/via/Kconfig
+++ b/drivers/media/platform/via/Kconfig
@@ -7,7 +7,7 @@ config VIDEO_VIA_CAMERA
depends on V4L_PLATFORM_DRIVERS
depends on FB_VIA && VIDEO_DEV
select VIDEOBUF2_DMA_SG
- select VIDEO_OV7670
+ select VIDEO_OV7670 if MEDIA_SUBDRV_AUTOSELECT && VIDEO_CAMERA_SENSOR
help
Driver support for the integrated camera controller in VIA
Chrome9 chipsets. Currently only tested on OLPC xo-1.5 systems
diff --git a/drivers/media/usb/em28xx/Kconfig b/drivers/media/usb/em28xx/Kconfig
index b3c472b8c5a96..cb61fd6cc6c61 100644
--- a/drivers/media/usb/em28xx/Kconfig
+++ b/drivers/media/usb/em28xx/Kconfig
@@ -12,8 +12,8 @@ config VIDEO_EM28XX_V4L2
select VIDEO_SAA711X if MEDIA_SUBDRV_AUTOSELECT
select VIDEO_TVP5150 if MEDIA_SUBDRV_AUTOSELECT
select VIDEO_MSP3400 if MEDIA_SUBDRV_AUTOSELECT
- select VIDEO_MT9V011 if MEDIA_SUBDRV_AUTOSELECT && MEDIA_CAMERA_SUPPORT
- select VIDEO_OV2640 if MEDIA_SUBDRV_AUTOSELECT && MEDIA_CAMERA_SUPPORT
+ select VIDEO_MT9V011 if MEDIA_SUBDRV_AUTOSELECT && VIDEO_CAMERA_SENSOR
+ select VIDEO_OV2640 if MEDIA_SUBDRV_AUTOSELECT && VIDEO_CAMERA_SENSOR
help
This is a video4linux driver for Empia 28xx based TV cards.

diff --git a/drivers/media/usb/go7007/Kconfig b/drivers/media/usb/go7007/Kconfig
index 4ff79940ad8d4..478106b751267 100644
--- a/drivers/media/usb/go7007/Kconfig
+++ b/drivers/media/usb/go7007/Kconfig
@@ -12,7 +12,7 @@ config VIDEO_GO7007
select VIDEO_TW2804 if MEDIA_SUBDRV_AUTOSELECT
select VIDEO_TW9903 if MEDIA_SUBDRV_AUTOSELECT
select VIDEO_TW9906 if MEDIA_SUBDRV_AUTOSELECT
- select VIDEO_OV7640 if MEDIA_SUBDRV_AUTOSELECT && MEDIA_CAMERA_SUPPORT
+ select VIDEO_OV7640 if MEDIA_SUBDRV_AUTOSELECT && VIDEO_CAMERA_SENSOR
select VIDEO_UDA1342 if MEDIA_SUBDRV_AUTOSELECT
help
This is a video4linux driver for the WIS GO7007 MPEG
--
2.39.2


2023-09-12 16:12:13

by Sakari Ailus

[permalink] [raw]
Subject: Re: [PATCH] media: fix VIDEO_CAMERA_SENSOR dependencies

Hi Arnd,

On Tue, Sep 12, 2023 at 02:01:42PM +0200, Arnd Bergmann wrote:
> From: Arnd Bergmann <[email protected]>
>
> The new Kconfig submenu now guards the visibility of camera sensor drivers,
> and any driver that selects one of them runs into a missing dependency warning
> if it's disabled:
>
> WARNING: unmet direct dependencies detected for VIDEO_OV2640
> Depends on [n]: MEDIA_SUPPORT [=y] && VIDEO_DEV [=y] && VIDEO_CAMERA_SENSOR [=n]
> Selected by [y]:
> - VIDEO_EM28XX_V4L2 [=y] && USB [=y] && MEDIA_SUPPORT [=y] && MEDIA_USB_SUPPORT [=y] && (MEDIA_CAMERA_SUPPORT [=y] || MEDIA_ANALOG_TV_SUPPORT [=y] || MEDIA_DIGITAL_TV_SUPPORT [=y]) && VIDEO_EM28XX [=y] && MEDIA_SUBDRV_AUTOSELECT [=y] && MEDIA_CAMERA_SUPPORT [=y]
> - VIDEO_GO7007 [=y] && MEDIA_SUPPORT [=y] && MEDIA_USB_SUPPORT [=y] && MEDIA_ANALOG_TV_SUPPORT [=y] && VIDEO_DEV [=y] && I2C [=y] && SND [=y] && USB [=y] && MEDIA_SUBDRV_AUTOSELECT [=y] && MEDIA_CAMERA_SUPPORT [=y]
>
> WARNING: unmet direct dependencies detected for VIDEO_MT9V011
> Depends on [n]: MEDIA_SUPPORT [=y] && VIDEO_DEV [=y] && VIDEO_CAMERA_SENSOR [=n]
> Selected by [y]:
> - VIDEO_EM28XX_V4L2 [=y] && USB [=y] && MEDIA_SUPPORT [=y] && MEDIA_USB_SUPPORT [=y] && (MEDIA_CAMERA_SUPPORT [=y] || MEDIA_ANALOG_TV_SUPPORT [=y] || MEDIA_DIGITAL_TV_SUPPORT [=y]) && VIDEO_EM28XX [=y] && MEDIA_SUBDRV_AUTOSELECT [=y] && MEDIA_CAMERA_SUPPORT [=y]
>
> WARNING: unmet direct dependencies detected for VIDEO_OV7670
> Depends on [n]: MEDIA_SUPPORT [=y] && VIDEO_DEV [=y] && VIDEO_CAMERA_SENSOR [=n]
> 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]
> - VIDEO_MMP_CAMERA [=y] && MEDIA_SUPPORT [=y] && MEDIA_PLATFORM_SUPPORT [=y] && MEDIA_PLATFORM_DRIVERS [=y] && V4L_PLATFORM_DRIVERS [=y] && I2C [=y] && VIDEO_DEV [=y] && (ARCH_MMP [=y] || COMPILE_TEST [=y]) && COMMON_CLK [=y]
> - VIDEO_VIA_CAMERA [=y] && MEDIA_SUPPORT [=y] && MEDIA_PLATFORM_SUPPORT [=y] && MEDIA_PLATFORM_DRIVERS [=y] && V4L_PLATFORM_DRIVERS [=y] && FB_VIA [=y] && VIDEO_DEV [=y]
>
> Some of these are guarded by 'if MEDIA_SUBDRV_AUTOSELECT &&
> MEDIA_CAMERA_SUPPORT', which seems to be the right approach, so update
> those to use the new VIDEO_CAMERA_SENSOR symbol instead of
> MEDIA_CAMERA_SUPPORT and add the same condition to the ones that
> don't already have one.
>
> Fixes: 7d3c7d2a2914e ("media: i2c: Add a camera sensor top level menu")
> Signed-off-by: Arnd Bergmann <[email protected]>

I believe these matters have been fixed, but the fixes are only in the
media stage tree so far (and not in the fixes branch). They should go to
v6.6, not v6.7.

--
Regards,

Sakari Ailus

2023-09-12 17:00:20

by Laurent Pinchart

[permalink] [raw]
Subject: Re: [PATCH] media: fix VIDEO_CAMERA_SENSOR dependencies

On Tue, Sep 12, 2023 at 12:16:03PM +0000, Sakari Ailus wrote:
> Hi Arnd,
>
> On Tue, Sep 12, 2023 at 02:01:42PM +0200, Arnd Bergmann wrote:
> > From: Arnd Bergmann <[email protected]>
> >
> > The new Kconfig submenu now guards the visibility of camera sensor drivers,
> > and any driver that selects one of them runs into a missing dependency warning
> > if it's disabled:
> >
> > WARNING: unmet direct dependencies detected for VIDEO_OV2640
> > Depends on [n]: MEDIA_SUPPORT [=y] && VIDEO_DEV [=y] && VIDEO_CAMERA_SENSOR [=n]
> > Selected by [y]:
> > - VIDEO_EM28XX_V4L2 [=y] && USB [=y] && MEDIA_SUPPORT [=y] && MEDIA_USB_SUPPORT [=y] && (MEDIA_CAMERA_SUPPORT [=y] || MEDIA_ANALOG_TV_SUPPORT [=y] || MEDIA_DIGITAL_TV_SUPPORT [=y]) && VIDEO_EM28XX [=y] && MEDIA_SUBDRV_AUTOSELECT [=y] && MEDIA_CAMERA_SUPPORT [=y]
> > - VIDEO_GO7007 [=y] && MEDIA_SUPPORT [=y] && MEDIA_USB_SUPPORT [=y] && MEDIA_ANALOG_TV_SUPPORT [=y] && VIDEO_DEV [=y] && I2C [=y] && SND [=y] && USB [=y] && MEDIA_SUBDRV_AUTOSELECT [=y] && MEDIA_CAMERA_SUPPORT [=y]
> >
> > WARNING: unmet direct dependencies detected for VIDEO_MT9V011
> > Depends on [n]: MEDIA_SUPPORT [=y] && VIDEO_DEV [=y] && VIDEO_CAMERA_SENSOR [=n]
> > Selected by [y]:
> > - VIDEO_EM28XX_V4L2 [=y] && USB [=y] && MEDIA_SUPPORT [=y] && MEDIA_USB_SUPPORT [=y] && (MEDIA_CAMERA_SUPPORT [=y] || MEDIA_ANALOG_TV_SUPPORT [=y] || MEDIA_DIGITAL_TV_SUPPORT [=y]) && VIDEO_EM28XX [=y] && MEDIA_SUBDRV_AUTOSELECT [=y] && MEDIA_CAMERA_SUPPORT [=y]
> >
> > WARNING: unmet direct dependencies detected for VIDEO_OV7670
> > Depends on [n]: MEDIA_SUPPORT [=y] && VIDEO_DEV [=y] && VIDEO_CAMERA_SENSOR [=n]
> > 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]
> > - VIDEO_MMP_CAMERA [=y] && MEDIA_SUPPORT [=y] && MEDIA_PLATFORM_SUPPORT [=y] && MEDIA_PLATFORM_DRIVERS [=y] && V4L_PLATFORM_DRIVERS [=y] && I2C [=y] && VIDEO_DEV [=y] && (ARCH_MMP [=y] || COMPILE_TEST [=y]) && COMMON_CLK [=y]
> > - VIDEO_VIA_CAMERA [=y] && MEDIA_SUPPORT [=y] && MEDIA_PLATFORM_SUPPORT [=y] && MEDIA_PLATFORM_DRIVERS [=y] && V4L_PLATFORM_DRIVERS [=y] && FB_VIA [=y] && VIDEO_DEV [=y]
> >
> > Some of these are guarded by 'if MEDIA_SUBDRV_AUTOSELECT &&
> > MEDIA_CAMERA_SUPPORT', which seems to be the right approach, so update
> > those to use the new VIDEO_CAMERA_SENSOR symbol instead of
> > MEDIA_CAMERA_SUPPORT and add the same condition to the ones that
> > don't already have one.
> >
> > Fixes: 7d3c7d2a2914e ("media: i2c: Add a camera sensor top level menu")
> > Signed-off-by: Arnd Bergmann <[email protected]>
>
> I believe these matters have been fixed, but the fixes are only in the
> media stage tree so far (and not in the fixes branch). They should go to
> v6.6, not v6.7.

That would be commits f59933e8b1d1 ("media: via: Use correct dependency
for camera sensor drivers") and 8ba283f6c929 ("media: v4l: Use correct
dependency for camera sensor drivers"). The latter is identical to the
corresponding changes in this patch, but the former lacks the
MEDIA_SUBDRV_AUTOSELECT check. Is this intentional ?


--
Regards,

Laurent Pinchart

2023-09-13 14:35:30

by Sakari Ailus

[permalink] [raw]
Subject: Re: [PATCH] media: fix VIDEO_CAMERA_SENSOR dependencies

Hi Laurent,

On Tue, Sep 12, 2023 at 06:59:56PM +0300, Laurent Pinchart wrote:
> On Tue, Sep 12, 2023 at 12:16:03PM +0000, Sakari Ailus wrote:
> > Hi Arnd,
> >
> > On Tue, Sep 12, 2023 at 02:01:42PM +0200, Arnd Bergmann wrote:
> > > From: Arnd Bergmann <[email protected]>
> > >
> > > The new Kconfig submenu now guards the visibility of camera sensor drivers,
> > > and any driver that selects one of them runs into a missing dependency warning
> > > if it's disabled:
> > >
> > > WARNING: unmet direct dependencies detected for VIDEO_OV2640
> > > Depends on [n]: MEDIA_SUPPORT [=y] && VIDEO_DEV [=y] && VIDEO_CAMERA_SENSOR [=n]
> > > Selected by [y]:
> > > - VIDEO_EM28XX_V4L2 [=y] && USB [=y] && MEDIA_SUPPORT [=y] && MEDIA_USB_SUPPORT [=y] && (MEDIA_CAMERA_SUPPORT [=y] || MEDIA_ANALOG_TV_SUPPORT [=y] || MEDIA_DIGITAL_TV_SUPPORT [=y]) && VIDEO_EM28XX [=y] && MEDIA_SUBDRV_AUTOSELECT [=y] && MEDIA_CAMERA_SUPPORT [=y]
> > > - VIDEO_GO7007 [=y] && MEDIA_SUPPORT [=y] && MEDIA_USB_SUPPORT [=y] && MEDIA_ANALOG_TV_SUPPORT [=y] && VIDEO_DEV [=y] && I2C [=y] && SND [=y] && USB [=y] && MEDIA_SUBDRV_AUTOSELECT [=y] && MEDIA_CAMERA_SUPPORT [=y]
> > >
> > > WARNING: unmet direct dependencies detected for VIDEO_MT9V011
> > > Depends on [n]: MEDIA_SUPPORT [=y] && VIDEO_DEV [=y] && VIDEO_CAMERA_SENSOR [=n]
> > > Selected by [y]:
> > > - VIDEO_EM28XX_V4L2 [=y] && USB [=y] && MEDIA_SUPPORT [=y] && MEDIA_USB_SUPPORT [=y] && (MEDIA_CAMERA_SUPPORT [=y] || MEDIA_ANALOG_TV_SUPPORT [=y] || MEDIA_DIGITAL_TV_SUPPORT [=y]) && VIDEO_EM28XX [=y] && MEDIA_SUBDRV_AUTOSELECT [=y] && MEDIA_CAMERA_SUPPORT [=y]
> > >
> > > WARNING: unmet direct dependencies detected for VIDEO_OV7670
> > > Depends on [n]: MEDIA_SUPPORT [=y] && VIDEO_DEV [=y] && VIDEO_CAMERA_SENSOR [=n]
> > > 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]
> > > - VIDEO_MMP_CAMERA [=y] && MEDIA_SUPPORT [=y] && MEDIA_PLATFORM_SUPPORT [=y] && MEDIA_PLATFORM_DRIVERS [=y] && V4L_PLATFORM_DRIVERS [=y] && I2C [=y] && VIDEO_DEV [=y] && (ARCH_MMP [=y] || COMPILE_TEST [=y]) && COMMON_CLK [=y]
> > > - VIDEO_VIA_CAMERA [=y] && MEDIA_SUPPORT [=y] && MEDIA_PLATFORM_SUPPORT [=y] && MEDIA_PLATFORM_DRIVERS [=y] && V4L_PLATFORM_DRIVERS [=y] && FB_VIA [=y] && VIDEO_DEV [=y]
> > >
> > > Some of these are guarded by 'if MEDIA_SUBDRV_AUTOSELECT &&
> > > MEDIA_CAMERA_SUPPORT', which seems to be the right approach, so update
> > > those to use the new VIDEO_CAMERA_SENSOR symbol instead of
> > > MEDIA_CAMERA_SUPPORT and add the same condition to the ones that
> > > don't already have one.
> > >
> > > Fixes: 7d3c7d2a2914e ("media: i2c: Add a camera sensor top level menu")
> > > Signed-off-by: Arnd Bergmann <[email protected]>
> >
> > I believe these matters have been fixed, but the fixes are only in the
> > media stage tree so far (and not in the fixes branch). They should go to
> > v6.6, not v6.7.
>
> That would be commits f59933e8b1d1 ("media: via: Use correct dependency
> for camera sensor drivers") and 8ba283f6c929 ("media: v4l: Use correct
> dependency for camera sensor drivers"). The latter is identical to the
> corresponding changes in this patch, but the former lacks the
> MEDIA_SUBDRV_AUTOSELECT check. Is this intentional ?

This is a bit grey area.

The via parallel receiver driver has been apparently used with a single
camera, the ov7670. It's a very old driver so I don't necessarily expect
this to change.

Changing this either way would have fixed the core issue.

Ideally there should be no connection between the via parallel receiver
driver and any sensor driver.

--
Regards,

Sakari Ailus