• M
    V4L/DVB (10190): cx88: Fix some Kbuild troubles · e32fadc4
    Mauro Carvalho Chehab 提交于
    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: NMauro Carvalho Chehab <mchehab@redhat.com>
    e32fadc4
cx88-dvb.c 37.7 KB