All of lore.kernel.org
 help / color / mirror / Atom feed
From: mkrufky@linuxtv.org
To: mchehab@infradead.org
Cc: mingo@elte.hu, linux-kernel@vger.kernel.org,
	g.liakhovetski@pengutronix.de, isely@pobox.com
Subject: Re: [patch] video: build fix for drivers/media/video/pvrusb2/
Date: Tue, 13 May 2008 11:54:01 -0400	[thread overview]
Message-ID: <4829B999.2090108@linuxtv.org> (raw)
In-Reply-To: <20080513124630.111c465b@gaivota>

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

  reply	other threads:[~2008-05-13 15:54 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4829B999.2090108@linuxtv.org \
    --to=mkrufky@linuxtv.org \
    --cc=g.liakhovetski@pengutronix.de \
    --cc=isely@pobox.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mchehab@infradead.org \
    --cc=mingo@elte.hu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.