linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [patch] video: build fix for drivers/media/video/pvrusb2/
@ 2008-05-11  7:21 Ingo Molnar
  2008-05-11 12:34 ` Michael Krufky
  0 siblings, 1 reply; 10+ messages in thread
From: Ingo Molnar @ 2008-05-11  7:21 UTC (permalink / raw)
  To: linux-kernel, Mauro Carvalho Chehab
  Cc: Guennadi Liakhovetski, Michael Krufky, Mike Isely


x86.git testing found the following build failure:

  drivers/built-in.o: In function `pvr2_dvb_feed_thread':
  pvrusb2-dvb.c:(.text+0x127e78): undefined reference to `dvb_dmx_swfilter'
  drivers/built-in.o: In function `pvr2_dvb_adapter_exit':
  pvrusb2-dvb.c:(.text+0x128357): undefined reference to `dvb_net_release'
  pvrusb2-dvb.c:(.text+0x12836f): undefined reference to `dvb_dmxdev_release'
  [...]

with this config:

  http://redhat.com/~mingo/misc/config-Sun_May_11_07_06_35_CEST_2008.bad

the reason for the missing symbols is this combination:

  CONFIG_VIDEO_PVRUSB2=y
  CONFIG_DVB_CORE=m

i.e. pvrusb2 is built-in, dvb-core is modular.

This patch solves the problem by adding a dependency on DVB_CORE - this 
is used by other drivers such as au0828 as well. This way the pvrusb2 
driver can still be built, but if dvb-core is a module then it will 
correctly be a module as well and cannot be built-in.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
 drivers/media/video/pvrusb2/Kconfig |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux/drivers/media/video/pvrusb2/Kconfig
===================================================================
--- linux.orig/drivers/media/video/pvrusb2/Kconfig
+++ linux/drivers/media/video/pvrusb2/Kconfig
@@ -1,6 +1,6 @@
 config VIDEO_PVRUSB2
 	tristate "Hauppauge WinTV-PVR USB2 support"
-	depends on VIDEO_V4L2 && I2C
+	depends on VIDEO_V4L2 && I2C && DVB_CORE
 	select FW_LOADER
 	select MEDIA_TUNER
 	select VIDEO_TVEEPROM

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [patch] video: build fix for drivers/media/video/pvrusb2/
  2008-05-11  7:21 [patch] video: build fix for drivers/media/video/pvrusb2/ Ingo Molnar
@ 2008-05-11 12:34 ` Michael Krufky
  2008-05-13  2:54   ` Mauro Carvalho Chehab
  0 siblings, 1 reply; 10+ messages in thread
From: Michael Krufky @ 2008-05-11 12:34 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Mauro Carvalho Chehab, Guennadi Liakhovetski, Mike Isely

On Sun, May 11, 2008 at 3:21 AM, Ingo Molnar <mingo@elte.hu> wrote:
>
> x86.git testing found the following build failure:
>
>  drivers/built-in.o: In function `pvr2_dvb_feed_thread':
>  pvrusb2-dvb.c:(.text+0x127e78): undefined reference to `dvb_dmx_swfilter'
>  drivers/built-in.o: In function `pvr2_dvb_adapter_exit':
>  pvrusb2-dvb.c:(.text+0x128357): undefined reference to `dvb_net_release'
>  pvrusb2-dvb.c:(.text+0x12836f): undefined reference to `dvb_dmxdev_release'
>  [...]
>
> with this config:
>
>  http://redhat.com/~mingo/misc/config-Sun_May_11_07_06_35_CEST_2008.bad
>
> the reason for the missing symbols is this combination:
>
>  CONFIG_VIDEO_PVRUSB2=y
>  CONFIG_DVB_CORE=m
>
> i.e. pvrusb2 is built-in, dvb-core is modular.
>
> This patch solves the problem by adding a dependency on DVB_CORE - this
> is used by other drivers such as au0828 as well. This way the pvrusb2
> driver can still be built, but if dvb-core is a module then it will
> correctly be a module as well and cannot be built-in.
>
> Signed-off-by: Ingo Molnar <mingo@elte.hu>
> ---
>  drivers/media/video/pvrusb2/Kconfig |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> Index: linux/drivers/media/video/pvrusb2/Kconfig
> ===================================================================
> --- linux.orig/drivers/media/video/pvrusb2/Kconfig
> +++ linux/drivers/media/video/pvrusb2/Kconfig
> @@ -1,6 +1,6 @@
>  config VIDEO_PVRUSB2
>        tristate "Hauppauge WinTV-PVR USB2 support"
> -       depends on VIDEO_V4L2 && I2C
> +       depends on VIDEO_V4L2 && I2C && DVB_CORE
>        select FW_LOADER
>        select MEDIA_TUNER
>        select VIDEO_TVEEPROM
>

Ingo,

VIDEO_PVRUSB2 should not depend on DVB_CORE unless VIDEO_PVRUSB2_DVB
is selected, which already depends on DVB_CORE.

For example, if a user has VIDEO_PVRUSB2_DVB not selected, then your
patch would generate a false dependency on DVB_CORE.

Regards,

Mike Krufky

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [patch] video: build fix for drivers/media/video/pvrusb2/
  2008-05-11 12:34 ` Michael Krufky
@ 2008-05-13  2:54   ` Mauro Carvalho Chehab
  2008-05-13  4:03     ` Michael Krufky
  0 siblings, 1 reply; 10+ messages in thread
From: Mauro Carvalho Chehab @ 2008-05-13  2:54 UTC (permalink / raw)
  To: Michael Krufky
  Cc: Ingo Molnar, linux-kernel, Guennadi Liakhovetski, Mike Isely

On Sun, 11 May 2008 08:34:06 -0400
"Michael Krufky" <mkrufky@linuxtv.org> wrote:

> On Sun, May 11, 2008 at 3:21 AM, Ingo Molnar <mingo@elte.hu> wrote:
> >
> > x86.git testing found the following build failure:
> >
> >  drivers/built-in.o: In function `pvr2_dvb_feed_thread':
> >  pvrusb2-dvb.c:(.text+0x127e78): undefined reference to `dvb_dmx_swfilter'
> >  drivers/built-in.o: In function `pvr2_dvb_adapter_exit':
> >  pvrusb2-dvb.c:(.text+0x128357): undefined reference to `dvb_net_release'
> >  pvrusb2-dvb.c:(.text+0x12836f): undefined reference to `dvb_dmxdev_release'
> >  [...]
> >
> > with this config:
> >
> >  http://redhat.com/~mingo/misc/config-Sun_May_11_07_06_35_CEST_2008.bad
> >
> > the reason for the missing symbols is this combination:
> >
> >  CONFIG_VIDEO_PVRUSB2=y
> >  CONFIG_DVB_CORE=m
> >
> > i.e. pvrusb2 is built-in, dvb-core is modular.
> >
> > This patch solves the problem by adding a dependency on DVB_CORE - this
> > is used by other drivers such as au0828 as well. This way the pvrusb2
> > driver can still be built, but if dvb-core is a module then it will
> > correctly be a module as well and cannot be built-in.
> >
> > Signed-off-by: Ingo Molnar <mingo@elte.hu>
> > ---
> >  drivers/media/video/pvrusb2/Kconfig |    2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > Index: linux/drivers/media/video/pvrusb2/Kconfig
> > ===================================================================
> > --- linux.orig/drivers/media/video/pvrusb2/Kconfig
> > +++ linux/drivers/media/video/pvrusb2/Kconfig
> > @@ -1,6 +1,6 @@
> >  config VIDEO_PVRUSB2
> >        tristate "Hauppauge WinTV-PVR USB2 support"
> > -       depends on VIDEO_V4L2 && I2C
> > +       depends on VIDEO_V4L2 && I2C && DVB_CORE
> >        select FW_LOADER
> >        select MEDIA_TUNER
> >        select VIDEO_TVEEPROM
> >
> 
> Ingo,
> 
> VIDEO_PVRUSB2 should not depend on DVB_CORE unless VIDEO_PVRUSB2_DVB
> is selected, which already depends on DVB_CORE.
> 
> For example, if a user has VIDEO_PVRUSB2_DVB not selected, then your
> patch would generate a false dependency on DVB_CORE.

Maybe we can make pvrusb2 dependent of VIDEO_MEDIA. This is a DVB_CORE ||
VIDEO_DEV. So, pvrusb should be 'm' in this case. 
> 
> Regards,
> 
> Mike Krufky




Cheers,
Mauro

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [patch] video: build fix for drivers/media/video/pvrusb2/
  2008-05-13  2:54   ` Mauro Carvalho Chehab
@ 2008-05-13  4:03     ` Michael Krufky
  2008-05-13 15:46       ` Mauro Carvalho Chehab
  0 siblings, 1 reply; 10+ messages in thread
From: Michael Krufky @ 2008-05-13  4:03 UTC (permalink / raw)
  To: Mauro Carvalho Chehab
  Cc: Ingo Molnar, linux-kernel, Guennadi Liakhovetski, Mike Isely

On Mon, May 12, 2008 at 10:54 PM, Mauro Carvalho Chehab
<mchehab@infradead.org> wrote:
>
> On Sun, 11 May 2008 08:34:06 -0400
>  "Michael Krufky" <mkrufky@linuxtv.org> wrote:
>
>  > On Sun, May 11, 2008 at 3:21 AM, Ingo Molnar <mingo@elte.hu> wrote:
>  > >
>  > > x86.git testing found the following build failure:
>  > >
>  > >  drivers/built-in.o: In function `pvr2_dvb_feed_thread':
>  > >  pvrusb2-dvb.c:(.text+0x127e78): undefined reference to `dvb_dmx_swfilter'
>  > >  drivers/built-in.o: In function `pvr2_dvb_adapter_exit':
>  > >  pvrusb2-dvb.c:(.text+0x128357): undefined reference to `dvb_net_release'
>  > >  pvrusb2-dvb.c:(.text+0x12836f): undefined reference to `dvb_dmxdev_release'
>  > >  [...]
>  > >
>  > > with this config:
>  > >
>  > >  http://redhat.com/~mingo/misc/config-Sun_May_11_07_06_35_CEST_2008.bad
>  > >
>  > > the reason for the missing symbols is this combination:
>  > >
>  > >  CONFIG_VIDEO_PVRUSB2=y
>  > >  CONFIG_DVB_CORE=m
>  > >
>  > > i.e. pvrusb2 is built-in, dvb-core is modular.
>  > >
>  > > This patch solves the problem by adding a dependency on DVB_CORE - this
>  > > is used by other drivers such as au0828 as well. This way the pvrusb2
>  > > driver can still be built, but if dvb-core is a module then it will
>  > > correctly be a module as well and cannot be built-in.
>  > >
>  > > Signed-off-by: Ingo Molnar <mingo@elte.hu>
>  > > ---
>  > >  drivers/media/video/pvrusb2/Kconfig |    2 +-
>  > >  1 file changed, 1 insertion(+), 1 deletion(-)
>  > >
>  > > Index: linux/drivers/media/video/pvrusb2/Kconfig
>  > > ===================================================================
>  > > --- linux.orig/drivers/media/video/pvrusb2/Kconfig
>  > > +++ linux/drivers/media/video/pvrusb2/Kconfig
>  > > @@ -1,6 +1,6 @@
>  > >  config VIDEO_PVRUSB2
>  > >        tristate "Hauppauge WinTV-PVR USB2 support"
>  > > -       depends on VIDEO_V4L2 && I2C
>  > > +       depends on VIDEO_V4L2 && I2C && DVB_CORE
>  > >        select FW_LOADER
>  > >        select MEDIA_TUNER
>  > >        select VIDEO_TVEEPROM
>  > >
>  >
>  > Ingo,
>  >
>  > VIDEO_PVRUSB2 should not depend on DVB_CORE unless VIDEO_PVRUSB2_DVB
>  > is selected, which already depends on DVB_CORE.
>  >
>  > For example, if a user has VIDEO_PVRUSB2_DVB not selected, then your
>  > patch would generate a false dependency on DVB_CORE.
>
>  Maybe we can make pvrusb2 dependent of VIDEO_MEDIA. This is a DVB_CORE ||
>  VIDEO_DEV. So, pvrusb should be 'm' in this case.

That sounds like it would be OK, although something like this would
probably be better:

 config VIDEO_PVRUSB2
       tristate "Hauppauge WinTV-PVR USB2 support"
-       depends on VIDEO_V4L2 && I2C
+       depends on VIDEO_V4L2 && I2C && (DVB_CORE if VIDEO_PVRUSB2_DVB)
       select FW_LOADER
       select MEDIA_TUNER
       select VIDEO_TVEEPROM

I don't know if that syntax works for "depends on" , but it does work
for select.

if "depends on FOO if BAR" doesnt work, would adding "select DVB_CORE
if VIDEO_PVRUSB2_DVB" solve the problem?

-Mike

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [patch] video: build fix for drivers/media/video/pvrusb2/
  2008-05-13  4:03     ` Michael Krufky
@ 2008-05-13 15:46       ` Mauro Carvalho Chehab
  2008-05-13 15:54         ` mkrufky
  2008-05-13 15:56         ` Mike Isely
  0 siblings, 2 replies; 10+ messages in thread
From: Mauro Carvalho Chehab @ 2008-05-13 15:46 UTC (permalink / raw)
  To: Michael Krufky
  Cc: Ingo Molnar, linux-kernel, Guennadi Liakhovetski, Mike Isely

On Tue, 13 May 2008 00:03:02 -0400
"Michael Krufky" <mkrufky@linuxtv.org> wrote:

> On Mon, May 12, 2008 at 10:54 PM, Mauro Carvalho Chehab
> <mchehab@infradead.org> wrote:
> >
> > On Sun, 11 May 2008 08:34:06 -0400
> >  "Michael Krufky" <mkrufky@linuxtv.org> wrote:
> >
> >  > On Sun, May 11, 2008 at 3:21 AM, Ingo Molnar <mingo@elte.hu> wrote:
> >  > >
> >  > > x86.git testing found the following build failure:
> >  > >
> >  > >  drivers/built-in.o: In function `pvr2_dvb_feed_thread':
> >  > >  pvrusb2-dvb.c:(.text+0x127e78): undefined reference to `dvb_dmx_swfilter'
> >  > >  drivers/built-in.o: In function `pvr2_dvb_adapter_exit':
> >  > >  pvrusb2-dvb.c:(.text+0x128357): undefined reference to `dvb_net_release'
> >  > >  pvrusb2-dvb.c:(.text+0x12836f): undefined reference to `dvb_dmxdev_release'
> >  > >  [...]
> >  > >
> >  > > with this config:
> >  > >
> >  > >  http://redhat.com/~mingo/misc/config-Sun_May_11_07_06_35_CEST_2008.bad
> >  > >
> >  > > the reason for the missing symbols is this combination:
> >  > >
> >  > >  CONFIG_VIDEO_PVRUSB2=y
> >  > >  CONFIG_DVB_CORE=m
> >  > >
> >  > > i.e. pvrusb2 is built-in, dvb-core is modular.
> >  > >
> >  > > This patch solves the problem by adding a dependency on DVB_CORE - this
> >  > > is used by other drivers such as au0828 as well. This way the pvrusb2
> >  > > driver can still be built, but if dvb-core is a module then it will
> >  > > correctly be a module as well and cannot be built-in.
> >  > >
> >  > > Signed-off-by: Ingo Molnar <mingo@elte.hu>
> >  > > ---
> >  > >  drivers/media/video/pvrusb2/Kconfig |    2 +-
> >  > >  1 file changed, 1 insertion(+), 1 deletion(-)
> >  > >
> >  > > Index: linux/drivers/media/video/pvrusb2/Kconfig
> >  > > ===================================================================
> >  > > --- linux.orig/drivers/media/video/pvrusb2/Kconfig
> >  > > +++ linux/drivers/media/video/pvrusb2/Kconfig
> >  > > @@ -1,6 +1,6 @@
> >  > >  config VIDEO_PVRUSB2
> >  > >        tristate "Hauppauge WinTV-PVR USB2 support"
> >  > > -       depends on VIDEO_V4L2 && I2C
> >  > > +       depends on VIDEO_V4L2 && I2C && DVB_CORE
> >  > >        select FW_LOADER
> >  > >        select MEDIA_TUNER
> >  > >        select VIDEO_TVEEPROM
> >  > >
> >  >
> >  > Ingo,
> >  >
> >  > VIDEO_PVRUSB2 should not depend on DVB_CORE unless VIDEO_PVRUSB2_DVB
> >  > is selected, which already depends on DVB_CORE.
> >  >
> >  > For example, if a user has VIDEO_PVRUSB2_DVB not selected, then your
> >  > patch would generate a false dependency on DVB_CORE.
> >
> >  Maybe we can make pvrusb2 dependent of VIDEO_MEDIA. This is a DVB_CORE ||
> >  VIDEO_DEV. So, pvrusb should be 'm' in this case.
> 
> That sounds like it would be OK, although something like this would
> probably be better:
> 
>  config VIDEO_PVRUSB2
>        tristate "Hauppauge WinTV-PVR USB2 support"
> -       depends on VIDEO_V4L2 && I2C
> +       depends on VIDEO_V4L2 && I2C && (DVB_CORE if VIDEO_PVRUSB2_DVB)
>        select FW_LOADER
>        select MEDIA_TUNER
>        select VIDEO_TVEEPROM

This doesn't look to be a good idea, since VIDEO_PVRUSB2_DVB depends on
VIDEO_PVRUSB2. So, you'll create a circular dependency. The syntax I've
proposed seems cleaner. Of course, it needs to be tested. IMO, all hybrid
devices should be dependent of VIDEO_MEDIA. This will help to avoid this kind
of issue.

> I don't know if that syntax works for "depends on" , but it does work
> for select.
> 
> if "depends on FOO if BAR" doesnt work, would adding "select DVB_CORE
> if VIDEO_PVRUSB2_DVB" solve the problem?

Also, this leads into a circular reference.

Cheers,
Mauro

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [patch] video: build fix for drivers/media/video/pvrusb2/
  2008-05-13 15:46       ` Mauro Carvalho Chehab
@ 2008-05-13 15:54         ` mkrufky
  2008-05-13 16:30           ` mkrufky
  2008-05-13 15:56         ` Mike Isely
  1 sibling, 1 reply; 10+ messages in thread
From: mkrufky @ 2008-05-13 15:54 UTC (permalink / raw)
  To: mchehab; +Cc: mingo, linux-kernel, g.liakhovetski, isely

Mauro Carvalho Chehab wrote:
> On Tue, 13 May 2008 00:03:02 -0400
> "Michael Krufky" <mkrufky@linuxtv.org> wrote:
>
>   
>> On Mon, May 12, 2008 at 10:54 PM, Mauro Carvalho Chehab
>> <mchehab@infradead.org> wrote:
>>     
>>> On Sun, 11 May 2008 08:34:06 -0400
>>>  "Michael Krufky" <mkrufky@linuxtv.org> wrote:
>>>
>>>  > On Sun, May 11, 2008 at 3:21 AM, Ingo Molnar <mingo@elte.hu> wrote:
>>>  > >
>>>  > > x86.git testing found the following build failure:
>>>  > >
>>>  > >  drivers/built-in.o: In function `pvr2_dvb_feed_thread':
>>>  > >  pvrusb2-dvb.c:(.text+0x127e78): undefined reference to
`dvb_dmx_swfilter'
>>>  > >  drivers/built-in.o: In function `pvr2_dvb_adapter_exit':
>>>  > >  pvrusb2-dvb.c:(.text+0x128357): undefined reference to
`dvb_net_release'
>>>  > >  pvrusb2-dvb.c:(.text+0x12836f): undefined reference to
`dvb_dmxdev_release'
>>>  > >  [...]
>>>  > >
>>>  > > with this config:
>>>  > >
>>>  > >
http://redhat.com/~mingo/misc/config-Sun_May_11_07_06_35_CEST_2008.bad
>>>  > >
>>>  > > the reason for the missing symbols is this combination:
>>>  > >
>>>  > >  CONFIG_VIDEO_PVRUSB2=y
>>>  > >  CONFIG_DVB_CORE=m
>>>  > >
>>>  > > i.e. pvrusb2 is built-in, dvb-core is modular.
>>>  > >
>>>  > > This patch solves the problem by adding a dependency on DVB_CORE -
this
>>>  > > is used by other drivers such as au0828 as well. This way the
pvrusb2
>>>  > > driver can still be built, but if dvb-core is a module then it will
>>>  > > correctly be a module as well and cannot be built-in.
>>>  > >
>>>  > > Signed-off-by: Ingo Molnar <mingo@elte.hu>
>>>  > > ---
>>>  > >  drivers/media/video/pvrusb2/Kconfig |    2 +-
>>>  > >  1 file changed, 1 insertion(+), 1 deletion(-)
>>>  > >
>>>  > > Index: linux/drivers/media/video/pvrusb2/Kconfig
>>>  > > ===================================================================
>>>  > > --- linux.orig/drivers/media/video/pvrusb2/Kconfig
>>>  > > +++ linux/drivers/media/video/pvrusb2/Kconfig
>>>  > > @@ -1,6 +1,6 @@
>>>  > >  config VIDEO_PVRUSB2
>>>  > >        tristate "Hauppauge WinTV-PVR USB2 support"
>>>  > > -       depends on VIDEO_V4L2 && I2C
>>>  > > +       depends on VIDEO_V4L2 && I2C && DVB_CORE
>>>  > >        select FW_LOADER
>>>  > >        select MEDIA_TUNER
>>>  > >        select VIDEO_TVEEPROM
>>>  > >
>>>  >
>>>  > Ingo,
>>>  >
>>>  > VIDEO_PVRUSB2 should not depend on DVB_CORE unless VIDEO_PVRUSB2_DVB
>>>  > is selected, which already depends on DVB_CORE.
>>>  >
>>>  > For example, if a user has VIDEO_PVRUSB2_DVB not selected, then your
>>>  > patch would generate a false dependency on DVB_CORE.
>>>
>>>  Maybe we can make pvrusb2 dependent of VIDEO_MEDIA. This is a DVB_CORE
||
>>>  VIDEO_DEV. So, pvrusb should be 'm' in this case.
>>>       
>> That sounds like it would be OK, although something like this would
>> probably be better:
>>
>>  config VIDEO_PVRUSB2
>>        tristate "Hauppauge WinTV-PVR USB2 support"
>> -       depends on VIDEO_V4L2 && I2C
>> +       depends on VIDEO_V4L2 && I2C && (DVB_CORE if VIDEO_PVRUSB2_DVB)
>>        select FW_LOADER
>>        select MEDIA_TUNER
>>        select VIDEO_TVEEPROM
>>     
>
> This doesn't look to be a good idea, since VIDEO_PVRUSB2_DVB depends on
> VIDEO_PVRUSB2. So, you'll create a circular dependency. The syntax I've
> proposed seems cleaner. Of course, it needs to be tested. IMO, all hybrid
> devices should be dependent of VIDEO_MEDIA. This will help to avoid this
kind
> of issue.
>
>   
>> I don't know if that syntax works for "depends on" , but it does work
>> for select.
>>
>> if "depends on FOO if BAR" doesnt work, would adding "select DVB_CORE
>> if VIDEO_PVRUSB2_DVB" solve the problem?
>>     
>
> Also, this leads into a circular reference.
Mauro,

You're right -- I didn't consider the circular dependency.

Your suggestion (depends on VIDEO_MEDIA) seems like the right way to go.

Regards,

Mike Krufky

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [patch] video: build fix for drivers/media/video/pvrusb2/
  2008-05-13 15:46       ` Mauro Carvalho Chehab
  2008-05-13 15:54         ` mkrufky
@ 2008-05-13 15:56         ` Mike Isely
  2008-05-13 16:02           ` Mike Isely
  1 sibling, 1 reply; 10+ messages in thread
From: Mike Isely @ 2008-05-13 15:56 UTC (permalink / raw)
  To: Mauro Carvalho Chehab
  Cc: Michael Krufky, Ingo Molnar, linux-kernel, Guennadi Liakhovetski

On Tue, 13 May 2008, Mauro Carvalho Chehab wrote:

> On Tue, 13 May 2008 00:03:02 -0400
> "Michael Krufky" <mkrufky@linuxtv.org> wrote:
> 
> > 
> > That sounds like it would be OK, although something like this would
> > probably be better:
> > 
> >  config VIDEO_PVRUSB2
> >        tristate "Hauppauge WinTV-PVR USB2 support"
> > -       depends on VIDEO_V4L2 && I2C
> > +       depends on VIDEO_V4L2 && I2C && (DVB_CORE if VIDEO_PVRUSB2_DVB)
> >        select FW_LOADER
> >        select MEDIA_TUNER
> >        select VIDEO_TVEEPROM
> 
> This doesn't look to be a good idea, since VIDEO_PVRUSB2_DVB depends on
> VIDEO_PVRUSB2. So, you'll create a circular dependency. The syntax I've
> proposed seems cleaner. Of course, it needs to be tested. IMO, all hybrid
> devices should be dependent of VIDEO_MEDIA. This will help to avoid this kind
> of issue.
> 
> > I don't know if that syntax works for "depends on" , but it does work
> > for select.
> > 
> > if "depends on FOO if BAR" doesnt work, would adding "select DVB_CORE
> > if VIDEO_PVRUSB2_DVB" solve the problem?
> 
> Also, this leads into a circular reference.

Mauro:

Where is the loop that results in a circular reference?  No part of V4L 
or DVB depends (or otherwise has any reliance) on VIDEO_PVRUSB2.  All 
Mike Krufky is trying to set up is that VIDEO_PVRUSB2 should only depend 
on DVB_CORE if the DVB part of the driver (i.e. VIDEO_PVRUSB2_DVB) has 
been enabled.  Without VIDEO_PVRUSB2_DVB selected, then DVB_CORE is not 
required by the driver.

I've been quiet about this issue because I'm not a kconfig expert, but 
you've lost me with this conclusion.

  -Mike


-- 

Mike Isely
isely @ pobox (dot) com
PGP: 03 54 43 4D 75 E5 CC 92 71 16 01 E2 B5 F5 C1 E8

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [patch] video: build fix for drivers/media/video/pvrusb2/
  2008-05-13 15:56         ` Mike Isely
@ 2008-05-13 16:02           ` Mike Isely
  2008-05-14  6:01             ` Mauro Carvalho Chehab
  0 siblings, 1 reply; 10+ messages in thread
From: Mike Isely @ 2008-05-13 16:02 UTC (permalink / raw)
  To: Mauro Carvalho Chehab, Michael Krufky, Ingo Molnar,
	Linux Kernel Mailing List, Guennadi Liakhovetski
  Cc: Mike Isely at pobox

On Tue, 13 May 2008, Mike Isely wrote:

> On Tue, 13 May 2008, Mauro Carvalho Chehab wrote:
> 
> > On Tue, 13 May 2008 00:03:02 -0400
> > "Michael Krufky" <mkrufky@linuxtv.org> wrote:
> > 
> > > 
> > > That sounds like it would be OK, although something like this would
> > > probably be better:
> > > 
> > >  config VIDEO_PVRUSB2
> > >        tristate "Hauppauge WinTV-PVR USB2 support"
> > > -       depends on VIDEO_V4L2 && I2C
> > > +       depends on VIDEO_V4L2 && I2C && (DVB_CORE if VIDEO_PVRUSB2_DVB)
> > >        select FW_LOADER
> > >        select MEDIA_TUNER
> > >        select VIDEO_TVEEPROM
> > 
> > This doesn't look to be a good idea, since VIDEO_PVRUSB2_DVB depends on
> > VIDEO_PVRUSB2. So, you'll create a circular dependency. The syntax I've
> > proposed seems cleaner. Of course, it needs to be tested. IMO, all hybrid
> > devices should be dependent of VIDEO_MEDIA. This will help to avoid this kind
> > of issue.
> > 
> > > I don't know if that syntax works for "depends on" , but it does work
> > > for select.
> > > 
> > > if "depends on FOO if BAR" doesnt work, would adding "select DVB_CORE
> > > if VIDEO_PVRUSB2_DVB" solve the problem?
> > 
> > Also, this leads into a circular reference.
> 
> Mauro:
> 
> Where is the loop that results in a circular reference?  No part of V4L 
> or DVB depends (or otherwise has any reliance) on VIDEO_PVRUSB2.  All 
> Mike Krufky is trying to set up is that VIDEO_PVRUSB2 should only depend 
> on DVB_CORE if the DVB part of the driver (i.e. VIDEO_PVRUSB2_DVB) has 
> been enabled.  Without VIDEO_PVRUSB2_DVB selected, then DVB_CORE is not 
> required by the driver.
> 
> I've been quiet about this issue because I'm not a kconfig expert, but 
> you've lost me with this conclusion.
> 
>   -Mike

Never mind.  I think I see it, and will figure out the rest off-line.

  -Mike

-- 

Mike Isely
isely @ pobox (dot) com
PGP: 03 54 43 4D 75 E5 CC 92 71 16 01 E2 B5 F5 C1 E8

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [patch] video: build fix for drivers/media/video/pvrusb2/
  2008-05-13 15:54         ` mkrufky
@ 2008-05-13 16:30           ` mkrufky
  0 siblings, 0 replies; 10+ messages in thread
From: mkrufky @ 2008-05-13 16:30 UTC (permalink / raw)
  To: mchehab; +Cc: mingo, linux-kernel, g.liakhovetski, isely

Michael Krufky wrote:
> Mauro Carvalho Chehab wrote:
>> On Tue, 13 May 2008 00:03:02 -0400
>> "Michael Krufky" <mkrufky@linuxtv.org> wrote:
>>
>>  
>>> On Mon, May 12, 2008 at 10:54 PM, Mauro Carvalho Chehab
>>> <mchehab@infradead.org> wrote:
>>>    
>>>> On Sun, 11 May 2008 08:34:06 -0400
>>>>  "Michael Krufky" <mkrufky@linuxtv.org> wrote:
>>>>
>>>>  > On Sun, May 11, 2008 at 3:21 AM, Ingo Molnar <mingo@elte.hu> wrote:
>>>>  > >
>>>>  > > x86.git testing found the following build failure:
>>>>  > >
>>>>  > >  drivers/built-in.o: In function `pvr2_dvb_feed_thread':
>>>>  > >  pvrusb2-dvb.c:(.text+0x127e78): undefined reference to 
>>>> `dvb_dmx_swfilter'
>>>>  > >  drivers/built-in.o: In function `pvr2_dvb_adapter_exit':
>>>>  > >  pvrusb2-dvb.c:(.text+0x128357): undefined reference to 
>>>> `dvb_net_release'
>>>>  > >  pvrusb2-dvb.c:(.text+0x12836f): undefined reference to 
>>>> `dvb_dmxdev_release'
>>>>  > >  [...]
>>>>  > >
>>>>  > > with this config:
>>>>  > >
>>>>  > >  
>>>> http://redhat.com/~mingo/misc/config-Sun_May_11_07_06_35_CEST_2008.bad
>>>>  > >
>>>>  > > the reason for the missing symbols is this combination:
>>>>  > >
>>>>  > >  CONFIG_VIDEO_PVRUSB2=y
>>>>  > >  CONFIG_DVB_CORE=m
>>>>  > >
>>>>  > > i.e. pvrusb2 is built-in, dvb-core is modular.
>>>>  > >
>>>>  > > This patch solves the problem by adding a dependency on 
>>>> DVB_CORE - this
>>>>  > > is used by other drivers such as au0828 as well. This way the 
>>>> pvrusb2
>>>>  > > driver can still be built, but if dvb-core is a module then it 
>>>> will
>>>>  > > correctly be a module as well and cannot be built-in.
>>>>  > >
>>>>  > > Signed-off-by: Ingo Molnar <mingo@elte.hu>
>>>>  > > ---
>>>>  > >  drivers/media/video/pvrusb2/Kconfig |    2 +-
>>>>  > >  1 file changed, 1 insertion(+), 1 deletion(-)
>>>>  > >
>>>>  > > Index: linux/drivers/media/video/pvrusb2/Kconfig
>>>>  > > 
>>>> ===================================================================
>>>>  > > --- linux.orig/drivers/media/video/pvrusb2/Kconfig
>>>>  > > +++ linux/drivers/media/video/pvrusb2/Kconfig
>>>>  > > @@ -1,6 +1,6 @@
>>>>  > >  config VIDEO_PVRUSB2
>>>>  > >        tristate "Hauppauge WinTV-PVR USB2 support"
>>>>  > > -       depends on VIDEO_V4L2 && I2C
>>>>  > > +       depends on VIDEO_V4L2 && I2C && DVB_CORE
>>>>  > >        select FW_LOADER
>>>>  > >        select MEDIA_TUNER
>>>>  > >        select VIDEO_TVEEPROM
>>>>  > >
>>>>  >
>>>>  > Ingo,
>>>>  >
>>>>  > VIDEO_PVRUSB2 should not depend on DVB_CORE unless 
>>>> VIDEO_PVRUSB2_DVB
>>>>  > is selected, which already depends on DVB_CORE.
>>>>  >
>>>>  > For example, if a user has VIDEO_PVRUSB2_DVB not selected, then 
>>>> your
>>>>  > patch would generate a false dependency on DVB_CORE.
>>>>
>>>>  Maybe we can make pvrusb2 dependent of VIDEO_MEDIA. This is a 
>>>> DVB_CORE ||
>>>>  VIDEO_DEV. So, pvrusb should be 'm' in this case.
>>>>       
>>> That sounds like it would be OK, although something like this would
>>> probably be better:
>>>
>>>  config VIDEO_PVRUSB2
>>>        tristate "Hauppauge WinTV-PVR USB2 support"
>>> -       depends on VIDEO_V4L2 && I2C
>>> +       depends on VIDEO_V4L2 && I2C && (DVB_CORE if VIDEO_PVRUSB2_DVB)
>>>        select FW_LOADER
>>>        select MEDIA_TUNER
>>>        select VIDEO_TVEEPROM
>>>     
>>
>> This doesn't look to be a good idea, since VIDEO_PVRUSB2_DVB depends on
>> VIDEO_PVRUSB2. So, you'll create a circular dependency. The syntax I've
>> proposed seems cleaner. Of course, it needs to be tested. IMO, all 
>> hybrid
>> devices should be dependent of VIDEO_MEDIA. This will help to avoid 
>> this kind
>> of issue.
>>
>>  
>>> I don't know if that syntax works for "depends on" , but it does work
>>> for select.
>>>
>>> if "depends on FOO if BAR" doesnt work, would adding "select DVB_CORE
>>> if VIDEO_PVRUSB2_DVB" solve the problem?
>>>     
>>
>> Also, this leads into a circular reference.
> Mauro,
>
> You're right -- I didn't consider the circular dependency.
>
> Your suggestion (depends on VIDEO_MEDIA) seems like the right way to go. 
Mauro,

It has just occurred to me -- there is yet another issue that is created 
by the dependency on VIDEO_MEDIA .....

The pvrusb2 driver *always* has a V4L2 interface exposed, and optionally 
can have a DVB interface.

So, VIDEO_PVRUSB2 will *always* depend on VIDEO_DEV, but conditionally 
depend on DVB_CORE.

...Sounds like the correct clause should be:

depends on VIDEO_V4L2 && I2C && VIDEO_DEV && VIDEO_MEDIA

...what do you think?

-Mike Krufky

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [patch] video: build fix for drivers/media/video/pvrusb2/
  2008-05-13 16:02           ` Mike Isely
@ 2008-05-14  6:01             ` Mauro Carvalho Chehab
  0 siblings, 0 replies; 10+ messages in thread
From: Mauro Carvalho Chehab @ 2008-05-14  6:01 UTC (permalink / raw)
  To: Mike Isely
  Cc: isely, Michael Krufky, Ingo Molnar, Linux Kernel Mailing List,
	Guennadi Liakhovetski

On Tue, 13 May 2008 11:02:05 -0500 (CDT)
Mike Isely <isely@isely.net> wrote:

> On Tue, 13 May 2008, Mike Isely wrote:
> 
> > On Tue, 13 May 2008, Mauro Carvalho Chehab wrote:
> > 
> > > On Tue, 13 May 2008 00:03:02 -0400
> > > "Michael Krufky" <mkrufky@linuxtv.org> wrote:
> > > 
> > > > 
> > > > That sounds like it would be OK, although something like this would
> > > > probably be better:
> > > > 
> > > >  config VIDEO_PVRUSB2
> > > >        tristate "Hauppauge WinTV-PVR USB2 support"
> > > > -       depends on VIDEO_V4L2 && I2C
> > > > +       depends on VIDEO_V4L2 && I2C && (DVB_CORE if VIDEO_PVRUSB2_DVB)
> > > >        select FW_LOADER
> > > >        select MEDIA_TUNER
> > > >        select VIDEO_TVEEPROM
> > > 
> > > This doesn't look to be a good idea, since VIDEO_PVRUSB2_DVB depends on
> > > VIDEO_PVRUSB2. So, you'll create a circular dependency. The syntax I've
> > > proposed seems cleaner. Of course, it needs to be tested. IMO, all hybrid
> > > devices should be dependent of VIDEO_MEDIA. This will help to avoid this kind
> > > of issue.
> > > 
> > > > I don't know if that syntax works for "depends on" , but it does work
> > > > for select.
> > > > 
> > > > if "depends on FOO if BAR" doesnt work, would adding "select DVB_CORE
> > > > if VIDEO_PVRUSB2_DVB" solve the problem?
> > > 
> > > Also, this leads into a circular reference.
> > 
> > Mauro:
> > 
> > Where is the loop that results in a circular reference?  No part of V4L 
> > or DVB depends (or otherwise has any reliance) on VIDEO_PVRUSB2.  All 
> > Mike Krufky is trying to set up is that VIDEO_PVRUSB2 should only depend 
> > on DVB_CORE if the DVB part of the driver (i.e. VIDEO_PVRUSB2_DVB) has 
> > been enabled.  Without VIDEO_PVRUSB2_DVB selected, then DVB_CORE is not 
> > required by the driver.
> > 
> > I've been quiet about this issue because I'm not a kconfig expert, but 
> > you've lost me with this conclusion.
> > 
> >   -Mike
> 
> Never mind.  I think I see it, and will figure out the rest off-line.

The solution were not as easy as I've originally imagined. VIDEO_MEDIA logic
were broken. So, all tuners were still broken.

I needed to fix VIDEO_MEDIA logic first, to obey to this truth table:

CONFIG_VIDEO_DEV        CONFIG_DVB_CORE         CONFIG_VIDEO_MEDIA
        N                       N                       N
        N                       M                       M
        N                       Y                       Y
        M                       N                       M
        M                       M                       M
        M                       Y                       M
        Y                       N                       Y
        Y                       M                       M
        Y                       Y                       Y

After this change, a simple dependency add solved the reported issue:

 config VIDEO_PVRUSB2
	tristate "Hauppauge WinTV-PVR USB2 support"
	depends on VIDEO_V4L2 && I2C
+	depends on VIDEO_MEDIA  # Avoids pvrusb = Y / DVB = M

I've tested the logic. seems fine now.

I did a quick review at the other modules that has hybrid support (cx88,
saa7134, em28xx, bttv) and they seemed ok to my eyes. Yet, I didn't test.

---

There are other configurations that seem to be broken. For example, if
V4L_CORE=m and DVB_CORE=y, a V4L driver should be 'M'. So, a tuner should also
be 'M', otherwise, it will break compilation. a DVB support for that card will
also be 'M', at the drivers I've reviewed.

However, a DVB-only driver can be 'Y', but can select a tuner. This will cause
a breakage.

I'll try to simulate some of those issues and see what happens.

Anyway, I've added severak Kbuild fixes at my -git tree:

http://www.kernel.org/git/?p=linux/kernel/git/mchehab/v4l-dvb.git

I intend to send the fixes I have later today. Now, I need to sleep ;)

Cheers,
Mauro

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2008-05-14  6:01 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-05-11  7:21 [patch] video: build fix for drivers/media/video/pvrusb2/ Ingo Molnar
2008-05-11 12:34 ` Michael Krufky
2008-05-13  2:54   ` Mauro Carvalho Chehab
2008-05-13  4:03     ` Michael Krufky
2008-05-13 15:46       ` Mauro Carvalho Chehab
2008-05-13 15:54         ` mkrufky
2008-05-13 16:30           ` mkrufky
2008-05-13 15:56         ` Mike Isely
2008-05-13 16:02           ` Mike Isely
2008-05-14  6:01             ` Mauro Carvalho Chehab

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).