kernel_optimize_test/drivers/media/video/cx88
Mauro Carvalho Chehab e32fadc4c2 V4L/DVB (10190): cx88: Fix some Kbuild troubles
As Randy Dunlap <randy.dunlap@oracle.com> reported, cx88 has some compilation issues:

drivers/built-in.o: In function `cx88_call_i2c_clients':
(.text+0x20af17): undefined reference to `videobuf_dvb_get_frontend'
drivers/built-in.o: In function `cx8802_probe':
cx88-mpeg.c:(.devinit.text+0x268c4): undefined reference to `videobuf_dvb_alloc_frontend'
cx88-mpeg.c:(.devinit.text+0x268ea): undefined reference to `videobuf_dvb_dealloc_frontends'

With those configs:

CONFIG_VIDEO_CX88=y
CONFIG_VIDEO_CX88_BLACKBIRD=y
CONFIG_VIDEO_CX88_DVB=m
CONFIG_DVB_CORE=m

After carefully examining the code, with the current code, several cx88 drivers
(cx8800, cx8802, cx88_dvb and cx88_blackbird) should be compiled as a module,
if one of them is marked as such. Just fixing Kconfig could create a very complex
set of rules. Also, this hides a problem with the current approach where the dvb
functionality weren't confined inside dvb module.

What happens is that:
	- cx88-i2c (part of cx8800) has some special rules if DVB;
	- cx88-mpeg (cx8802 module) has also part of DVB init code;
	- cx88-dvb has the rest of the dvb code;
	- cx88-blackbird can be used with cx88-mpeg, having cx88-dvb or not.

So, instead of doing some tricks at Kconfig and wait for a next breakage,
this patch moves the dvb code inside cx88-i2c and cx88-mpeg into cx88-dvb.

Another problem is that cx8802 were being compiled, even without cx88-dvb
and cx88-blackbird modules.

While on this code, let's fix also a reported problem:
http://www.linuxtv.org/pipermail/linux-dvb/2009-January/031225.html

A solution for the issue were proposed here:
http://www.mail-archive.com/linux-media@vger.kernel.org/msg00021.html

Thanks to Randy, Andy, Gregoire and Thomas for helping us to detect
and solve the issues.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-01-07 22:18:56 -02:00
..
cx88-alsa.c V4L/DVB (9796): drivers/media/video/cx88/cx88-alsa.c: Adjust error-handling code 2008-12-30 09:38:26 -02:00
cx88-blackbird.c V4L/DVB (10135): v4l2: introduce v4l2_file_operations. 2009-01-02 17:11:12 -02:00
cx88-cards.c V4L/DVB (9536): WinFast DTV2000 H: add support for missing analog inputs 2008-12-29 17:53:28 -02:00
cx88-core.c V4L/DVB (9497): tda9887/cx88: Adds SECAM/BGH standards 2008-12-29 17:53:25 -02:00
cx88-dvb.c V4L/DVB (10190): cx88: Fix some Kbuild troubles 2009-01-07 22:18:56 -02:00
cx88-i2c.c V4L/DVB (10190): cx88: Fix some Kbuild troubles 2009-01-07 22:18:56 -02:00
cx88-input.c V4L/DVB (9223): MFE: Fix a number of bugs and some tidying up 2008-10-17 17:23:15 -03:00
cx88-mpeg.c V4L/DVB (10190): cx88: Fix some Kbuild troubles 2009-01-07 22:18:56 -02:00
cx88-reg.h V4L/DVB (6066): cx88-alsa: Change order of interrupt enabling, fix spurious IRQs 2007-10-09 22:05:55 -03:00
cx88-tvaudio.c V4L/DVB (9269): cx88: add I2S-ADC tvaudio method 2008-10-17 17:29:14 -03:00
cx88-vbi.c V4L/DVB (7094): static memory 2008-04-24 13:42:20 -03:00
cx88-video.c V4L/DVB (10141): v4l2: debugging API changed to match against driver name instead of ID. 2009-01-02 17:11:52 -02:00
cx88-vp3054-i2c.c v4l-dvb: remove legacy checks to allow support for kernels < 2.6.10 2008-07-20 07:17:52 -03:00
cx88-vp3054-i2c.h V4L/DVB (5629): Cx88: VP3054 support can't be a module when cx88 is compiled in 2007-07-18 14:23:11 -03:00
cx88.h V4L/DVB (10190): cx88: Fix some Kbuild troubles 2009-01-07 22:18:56 -02:00
Kconfig V4L/DVB (10190): cx88: Fix some Kbuild troubles 2009-01-07 22:18:56 -02:00
Makefile V4L/DVB (10190): cx88: Fix some Kbuild troubles 2009-01-07 22:18:56 -02:00