mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-30 05:15:03 +00:00
V4L/DVB (5629): Cx88: VP3054 support can't be a module when cx88 is compiled in
If cx88 support is compiled into the kernel while vp3054 is left as a module, the kernel will fail to link. Adjust the existing "#if" code in cx88 so that it won't consider vp3054 to be supported in this case. It might make sense to move vp3054 selection into the "customisation" menu instead of a cx88 sub-option (though this is a cx88 feature, there is no extra chip involved). It might also make sense to use dvb_attach() to load vp3054 support. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
This commit is contained in:
parent
8573a9e6a8
commit
ecf854df72
@ -35,9 +35,7 @@
|
||||
|
||||
#include "mt352.h"
|
||||
#include "mt352_priv.h"
|
||||
#if defined(CONFIG_VIDEO_CX88_VP3054) || defined(CONFIG_VIDEO_CX88_VP3054_MODULE)
|
||||
# include "cx88-vp3054-i2c.h"
|
||||
#endif
|
||||
#include "cx88-vp3054-i2c.h"
|
||||
#include "zl10353.h"
|
||||
#include "cx22702.h"
|
||||
#include "or51132.h"
|
||||
@ -199,7 +197,7 @@ static struct mt352_config dvico_fusionhdtv_dual = {
|
||||
.demod_init = dvico_dual_demod_init,
|
||||
};
|
||||
|
||||
#if defined(CONFIG_VIDEO_CX88_VP3054) || defined(CONFIG_VIDEO_CX88_VP3054_MODULE)
|
||||
#if defined(CONFIG_VIDEO_CX88_VP3054) || (defined(CONFIG_VIDEO_CX88_VP3054_MODULE) && defined(MODULE))
|
||||
static int dntv_live_dvbt_pro_demod_init(struct dvb_frontend* fe)
|
||||
{
|
||||
static u8 clock_config [] = { 0x89, 0x38, 0x38 };
|
||||
@ -544,7 +542,7 @@ static int dvb_register(struct cx8802_dev *dev)
|
||||
}
|
||||
break;
|
||||
case CX88_BOARD_DNTV_LIVE_DVB_T_PRO:
|
||||
#if defined(CONFIG_VIDEO_CX88_VP3054) || defined(CONFIG_VIDEO_CX88_VP3054_MODULE)
|
||||
#if defined(CONFIG_VIDEO_CX88_VP3054) || (defined(CONFIG_VIDEO_CX88_VP3054_MODULE) && defined(MODULE))
|
||||
dev->core->pll_addr = 0x61;
|
||||
dev->core->pll_desc = &dvb_pll_fmd1216me;
|
||||
dev->dvb.frontend = dvb_attach(mt352_attach, &dntv_live_dvbt_pro_config,
|
||||
@ -778,11 +776,10 @@ static int cx8802_dvb_probe(struct cx8802_driver *drv)
|
||||
if (!(cx88_boards[core->board].mpeg & CX88_MPEG_DVB))
|
||||
goto fail_core;
|
||||
|
||||
#if defined(CONFIG_VIDEO_CX88_VP3054) || defined(CONFIG_VIDEO_CX88_VP3054_MODULE)
|
||||
/* If vp3054 isn't enabled, a stub will just return 0 */
|
||||
err = vp3054_i2c_probe(dev);
|
||||
if (0 != err)
|
||||
goto fail_core;
|
||||
#endif
|
||||
|
||||
/* dvb stuff */
|
||||
printk("%s/2: cx2388x based dvb card\n", core->name);
|
||||
@ -807,9 +804,7 @@ static int cx8802_dvb_remove(struct cx8802_driver *drv)
|
||||
/* dvb */
|
||||
videobuf_dvb_unregister(&dev->dvb);
|
||||
|
||||
#if defined(CONFIG_VIDEO_CX88_VP3054) || defined(CONFIG_VIDEO_CX88_VP3054_MODULE)
|
||||
vp3054_i2c_remove(dev);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -30,5 +30,12 @@ struct vp3054_i2c_state {
|
||||
};
|
||||
|
||||
/* ----------------------------------------------------------------------- */
|
||||
#if defined(CONFIG_VIDEO_CX88_VP3054) || (defined(CONFIG_VIDEO_CX88_VP3054_MODULE) && defined(MODULE))
|
||||
int vp3054_i2c_probe(struct cx8802_dev *dev);
|
||||
void vp3054_i2c_remove(struct cx8802_dev *dev);
|
||||
#else
|
||||
static inline int vp3054_i2c_probe(struct cx8802_dev *dev)
|
||||
{ return 0; }
|
||||
static inline void vp3054_i2c_remove(struct cx8802_dev *dev)
|
||||
{ }
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user