Re: [PATCH] media: Kconfig: Make DVB_CORE=m possible when MEDIA_SUPPORT=y

From: Lecopzer Chen
Date: Tue Oct 05 2021 - 23:26:46 EST


> > A case that we need VIDEO_DEV=y but DVB_CORE=m, and this doesn't
> > work since DVB_CORE is default MEDIA_DIGITAL_TV_SUPPORT and then
> > follows MEDIA_SUPPORT.
> >
> > Change to tristate to make DVB_CORE=m possible when MEDIA_SUPPORT=y
> >
> > Signed-off-by: Lecopzer Chen <lecopzer.chen@xxxxxxxxxxxx>
> > ---
> > drivers/media/Kconfig | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/media/Kconfig b/drivers/media/Kconfig
> > index b07812657cee..c3baf92b4d02 100644
> > --- a/drivers/media/Kconfig
> > +++ b/drivers/media/Kconfig
> > @@ -88,7 +88,7 @@ config MEDIA_ANALOG_TV_SUPPORT
> > will disable support for them.
> >
> > config MEDIA_DIGITAL_TV_SUPPORT
> > - bool
> > + tristate
> > prompt "Digital TV" if MEDIA_SUPPORT_FILTER
> > default y if !MEDIA_SUPPORT_FILTER
> > help
>
> While this change looks simple enough, not sure if this would work
> for all possibilities. If I'm not mistaken, someone proposed
> something similar to it, but it caused troubles with different
> configurations. I don't recall any patch addressing it, but I
> may be wrong.
>
> Tf I remember correctly, the problem rises when either V4L or DVB
> core is compiled as module and the other one is compiled builtin.
> On such scenario, all drivers that depend on both should be
> compiled as a module, or the build will fail.

I've had a quick test:

CONFIG_MEDIA_SUPPORT=y
CONFIG_MEDIA_SUPPORT_FILTER=y
CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
CONFIG_MEDIA_DIGITAL_TV_SUPPORT=m
CONFIG_DVB_CORE=m
In this set, all the module depends on DVB_CORE
will be =m even if I manually change .config.

I'm not sure which config or module would build failed if DVB is module,
but IMO, any module has explicitly depends on DVB_CORE would follow the
configuation of DVB_CORE, and
the only possible case which build failed should be those
modules need to depend on DVB_CORE but didn't explicitly write
in Kconfig.
Also, I have no idea why someone needs DVB_CORE=m but other modules
depend on it need =y.

If anything I can test please tell me, thanks.


Thanks,
Lecopzer