2021-10-05 10:52:55

by Lecopzer Chen

[permalink] [raw]
Subject: [PATCH] media: Kconfig: Make DVB_CORE=m possible when MEDIA_SUPPORT=y

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 <[email protected]>
---
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
--
2.18.0


2021-10-05 16:34:16

by Mauro Carvalho Chehab

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

Em Tue, 5 Oct 2021 18:51:10 +0800
Lecopzer Chen <[email protected]> escreveu:

> 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 <[email protected]>
> ---
> 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.

Thanks,
Mauro

2021-10-06 03:31:35

by Lecopzer Chen

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

> > 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 <[email protected]>
> > ---
> > 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


2021-10-12 08:27:39

by Hans Verkuil

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

On 05/10/2021 12:51, Lecopzer Chen wrote:
> 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 <[email protected]>
> ---
> 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
>

I don't think this is the right approach.

I think the following patch would fix the issue, and it is also in line
with what config VIDEO_DEV does.

What do you think, Mauro?

Regards,

Hans

Signed-off-by: Hans Verkuil <[email protected]>
---
diff --git a/drivers/media/Kconfig b/drivers/media/Kconfig
index c3baf92b4d02..46f7b1f75630 100644
--- a/drivers/media/Kconfig
+++ b/drivers/media/Kconfig
@@ -179,8 +179,7 @@ config MEDIA_CONTROLLER
#

config DVB_CORE
- tristate
- depends on MEDIA_DIGITAL_TV_SUPPORT
+ tristate "DVB core"
depends on (I2C || I2C=n)
default MEDIA_DIGITAL_TV_SUPPORT
select CRC32

2021-11-03 08:07:52

by Lecopzer Chen

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

> On 05/10/2021 12:51, Lecopzer Chen wrote:
> > 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 <[email protected]>
> > ---
> > 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
> >
>
> I don't think this is the right approach.
>
> I think the following patch would fix the issue, and it is also in line
> with what config VIDEO_DEV does.
>
> What do you think, Mauro?
>
> Regards,
>
> Hans
>
> Signed-off-by: Hans Verkuil <[email protected]>
> ---
> diff --git a/drivers/media/Kconfig b/drivers/media/Kconfig
> index c3baf92b4d02..46f7b1f75630 100644
> --- a/drivers/media/Kconfig
> +++ b/drivers/media/Kconfig
> @@ -179,8 +179,7 @@ config MEDIA_CONTROLLER
> #
>
> config DVB_CORE
> - tristate
> - depends on MEDIA_DIGITAL_TV_SUPPORT
> + tristate "DVB core"
> depends on (I2C || I2C=n)
> default MEDIA_DIGITAL_TV_SUPPORT
> select CRC32

Hi Hans

Thanks for the patch, both patches work in my test.
But I think your is more intuitive, I've pushed v2 with this patch
with your sign-off-by for the further discussion and reviewing.

Thanks
Lecopzer