Re: [PATCH 7/7] [media] go7007: add MEDIA_CAMERA_SUPPORT dependency

From: Mauro Carvalho Chehab
Date: Tue Jan 26 2016 - 10:42:05 EST


Em Tue, 26 Jan 2016 13:04:03 -0200
Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx> escreveu:

> Em Tue, 26 Jan 2016 15:10:01 +0100
> Arnd Bergmann <arnd@xxxxxxxx> escreveu:
>
> > If MEDIA_SUBDRV_AUTOSELECT and VIDEO_GO7007 are both set, we
> > automatically select VIDEO_OV7640, but that depends on MEDIA_CAMERA_SUPPORT,
> > so we get a Kconfig warning if that is disabled:
> >
> > warning: (VIDEO_GO7007) selects VIDEO_OV7640 which has unmet direct dependencies (MEDIA_SUPPORT && I2C && VIDEO_V4L2 && MEDIA_CAMERA_SUPPORT)
> >
> > This adds another dependency so we don't accidentally select
> > it when it is unavailable.
>
> This is another bogus warning.
>
> The MEDIA_foo_SUPPORT actually controls what drivers are visible,
> but it doesn't enable any driver. They just control the visibility
> of the drivers, and the APIs that will be enabled (V4L2 and/or DVB).
>
> The aim of MEDIA_foo_SUPPORT is to make life easier to end users,
> making easier for them to filter the drivers that they may need.
>
> If one selects MEDIA_VIDEO_SUPPORT, the V4L2 API (and V4L core) will be
> enabled, and all drivers that support a camera should appear at the
> menu, including drivers that *also* support other features (like TV
> and/or stream support).
>
> That's the case of go7007.
>
> That has nothing to do with the features selection for such driver.
>
> Once go7007 driver is selected, if MEDIA_SUBDRV_AUTOSELECT, all
> i2c drivers that cope together with go7007 are selected, making the
> driver to fully support all devices it knows.
>
> Advanced users may unselect MEDIA_SUBDRV_AUTOSELECT and add there just
> the I2C driver(s) it needs for his specific hardware.
>
> Despite the warning, the Kconfig will do the right thing, not
> allowing invalid configurations.
>
> Regards,
> Mauro
>
>
> >
> > Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> > ---
> > drivers/media/usb/go7007/Kconfig | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/media/usb/go7007/Kconfig b/drivers/media/usb/go7007/Kconfig
> > index 95a3af644a92..af1d02430931 100644
> > --- a/drivers/media/usb/go7007/Kconfig
> > +++ b/drivers/media/usb/go7007/Kconfig
> > @@ -11,7 +11,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
> > + select VIDEO_OV7640 if MEDIA_SUBDRV_AUTOSELECT && MEDIA_CAMERA_SUPPORT

Hmm... on a second thought, it could make sense to only auto-select
the sensor drivers if MEDIA_CAMERA_SUPPORT, and to only auto-select
tuners if MEDIA_*_TV_SUPPORT is selected.

However, in this case, we'll need to dig into all Kconfig autoselect
options in order to make it right.

I guess we should also likely need to document to the user that the
driver won't be fully supported, as we'll be changing the behavior
of the menus.

Comments?

Regards,
Mauro