diff -urd dvb.old/b2c2/flexcop-fe-tuner.c dvb/b2c2/flexcop-fe-tuner.c --- dvb.old/b2c2/flexcop-fe-tuner.c 2005-12-06 19:55:39.060449080 +0100 +++ dvb/b2c2/flexcop-fe-tuner.c 2005-12-06 20:29:55.144876736 +0100 @@ -293,8 +293,12 @@ static int flexcop_fe_request_firmware(struct dvb_frontend* fe, const struct firmware **fw, char* name) { +#ifdef CONFIG_FW_LOADER struct flexcop_device *fc = fe->dvb->priv; return request_firmware(fw, name, fc->dev); +#else + return -EINVAL; +#endif } static int lgdt3303_pll_set(struct dvb_frontend* fe, diff -urd dvb.old/b2c2/Kconfig dvb/b2c2/Kconfig --- dvb.old/b2c2/Kconfig 2005-12-06 19:55:39.060449080 +0100 +++ dvb/b2c2/Kconfig 2005-12-06 20:36:36.751823200 +0100 @@ -1,6 +1,15 @@ config DVB_B2C2_FLEXCOP tristate "Technisat/B2C2 FlexCopII(b) and FlexCopIII adapters" depends on DVB_CORE + help + Support for the digital TV receiver chip made by B2C2 Inc. included in + Technisats PCI cards and USB boxes. + + Say Y if you own such a device and want to use it. + +config DVB_B2C2_FLEXCOP_ALL_FRONTENDS + bool "Select all supported front-ends" + depends on DVB_B2C2_FLEXCOP select DVB_STV0299 select DVB_MT352 select DVB_MT312 @@ -9,10 +18,12 @@ select DVB_BCM3510 select DVB_LGDT330X help - Support for the digital TV receiver chip made by B2C2 Inc. included in - Technisats PCI cards and USB boxes. + Selects all supported front-ends by Technisat/B2C2 driver. + If you don't select this option, you must select the correct + front-end by hand. + + Say Y if you don't know your front-end. - Say Y if you own such a device and want to use it. config DVB_B2C2_FLEXCOP_PCI tristate "Technisat/B2C2 Air/Sky/Cable2PC PCI" diff -urd dvb.old/frontends/bcm3510.h dvb/frontends/bcm3510.h --- dvb.old/frontends/bcm3510.h 2005-12-06 19:55:39.445390560 +0100 +++ dvb/frontends/bcm3510.h 2005-12-06 20:09:37.878929288 +0100 @@ -34,7 +34,15 @@ int (*request_firmware)(struct dvb_frontend* fe, const struct firmware **fw, char* name); }; +#ifdef CONFIG_DVB_BCM3510 extern struct dvb_frontend* bcm3510_attach(const struct bcm3510_config* config, struct i2c_adapter* i2c); +#else +static inline struct dvb_frontend* bcm3510_attach(const struct bcm3510_config* config, + struct i2c_adapter* i2c) +{ + return NULL; +} +#endif #endif diff -urd dvb.old/frontends/lgdt330x.h dvb/frontends/lgdt330x.h --- dvb.old/frontends/lgdt330x.h 2005-12-06 19:55:39.645360160 +0100 +++ dvb/frontends/lgdt330x.h 2005-12-06 20:00:10.309213000 +0100 @@ -53,8 +53,16 @@ int clock_polarity_flip; }; +#ifdef CONFIG_DVB_LGDT330X extern struct dvb_frontend* lgdt330x_attach(const struct lgdt330x_config* config, struct i2c_adapter* i2c); +#else +static inline struct dvb_frontend* lgdt330x_attach(const struct lgdt330x_config* config, + struct i2c_adapter* i2c) +{ + return NULL; +} +#endif #endif /* LGDT330X_H */ diff -urd dvb.old/frontends/mt312.h dvb/frontends/mt312.h --- dvb.old/frontends/mt312.h 2005-12-06 19:55:39.503381744 +0100 +++ dvb/frontends/mt312.h 2005-12-06 20:04:07.191201464 +0100 @@ -38,10 +38,24 @@ int (*pll_set)(struct dvb_frontend* fe, struct dvb_frontend_parameters* params); }; +#ifdef CONFIG_DVB_MT312 extern struct dvb_frontend* mt312_attach(const struct mt312_config* config, struct i2c_adapter* i2c); extern struct dvb_frontend* vp310_attach(const struct mt312_config* config, struct i2c_adapter* i2c); +#else +static inline struct dvb_frontend* mt312_attach(const struct mt312_config* config, + struct i2c_adapter* i2c) +{ + return NULL; +} + +static inline struct dvb_frontend* vp310_attach(const struct mt312_config* config, + struct i2c_adapter* i2c) +{ + return NULL; +} +#endif #endif // MT312_H diff -urd dvb.old/frontends/mt352.h dvb/frontends/mt352.h --- dvb.old/frontends/mt352.h 2005-12-06 19:55:39.540376120 +0100 +++ dvb/frontends/mt352.h 2005-12-06 20:04:21.881968128 +0100 @@ -57,9 +57,22 @@ int (*pll_set)(struct dvb_frontend* fe, struct dvb_frontend_parameters* params, u8* pllbuf); }; +#ifdef CONFIG_DVB_MT352 extern struct dvb_frontend* mt352_attach(const struct mt352_config* config, struct i2c_adapter* i2c); extern int mt352_write(struct dvb_frontend* fe, u8* ibuf, int ilen); +#else +static inline struct dvb_frontend* mt352_attach(const struct mt352_config* config, + struct i2c_adapter* i2c) +{ + return NULL; +} + +static inline int mt352_write(struct dvb_frontend* fe, u8* ibuf, int ilen) +{ + return 0; +} +#endif #endif // MT352_H diff -urd dvb.old/frontends/nxt2002.h dvb/frontends/nxt2002.h --- dvb.old/frontends/nxt2002.h 2005-12-06 19:55:39.540376120 +0100 +++ dvb/frontends/nxt2002.h 2005-12-06 20:08:39.722770368 +0100 @@ -17,7 +17,15 @@ int (*request_firmware)(struct dvb_frontend* fe, const struct firmware **fw, char* name); }; +#ifdef CONFIG_DVB_NXT2002 extern struct dvb_frontend* nxt2002_attach(const struct nxt2002_config* config, struct i2c_adapter* i2c); +#else +static inline struct dvb_frontend* nxt2002_attach(const struct nxt2002_config* config, + struct i2c_adapter* i2c) +{ + return NULL; +} +#endif #endif // NXT2002_H diff -urd dvb.old/frontends/stv0297.h dvb/frontends/stv0297.h --- dvb.old/frontends/stv0297.h 2005-12-06 19:55:39.577370496 +0100 +++ dvb/frontends/stv0297.h 2005-12-06 20:06:34.959737232 +0100 @@ -43,8 +43,21 @@ int (*pll_set)(struct dvb_frontend* fe, struct dvb_frontend_parameters* params); }; +#ifdef CONFIG_DVB_STV0297 extern struct dvb_frontend* stv0297_attach(const struct stv0297_config* config, struct i2c_adapter* i2c); extern int stv0297_enable_plli2c(struct dvb_frontend* fe); +#else +static inline struct dvb_frontend* stv0297_attach(const struct stv0297_config* config, + struct i2c_adapter* i2c) +{ + return NULL; +} + +static inline int stv0297_enable_plli2c(struct dvb_frontend* fe) +{ + return 0; +} +#endif #endif // STV0297_H diff -urd dvb.old/frontends/stv0299.h dvb/frontends/stv0299.h --- dvb.old/frontends/stv0299.h 2005-12-06 19:55:39.681354688 +0100 +++ dvb/frontends/stv0299.h 2005-12-06 19:59:45.158036560 +0100 @@ -93,9 +93,22 @@ int (*pll_set)(struct dvb_frontend *fe, struct i2c_adapter *i2c, struct dvb_frontend_parameters *params); }; +#ifdef CONFIG_DVB_STV0299 extern int stv0299_writereg (struct dvb_frontend* fe, u8 reg, u8 data); extern struct dvb_frontend* stv0299_attach(const struct stv0299_config* config, struct i2c_adapter* i2c); +#else +static inline int stv0299_writereg (struct dvb_frontend* fe, u8 reg, u8 data) +{ + return 0; +} + +static inline struct dvb_frontend* stv0299_attach(const struct stv0299_config* config, + struct i2c_adapter* i2c) +{ + return NULL; +} +#endif #endif // STV0299_H