V4L/DVB (4387): Add Kconfig infrastructure for dvb_attach
Allow it to be en/disabled Disable it in < 2.6.17 due to symbol_xxx() bug Signed-off-by: Andrew de Quincey <adq_dvb@lidskialf.net> Acked-by: Michael Krufky <mkrufky@linuxtv.org> Acked-by: Trent Piepho <xyzzy@speakeasy.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
This commit is contained in:
parent
2bfe031df6
commit
102a342bb9
|
@ -1716,8 +1716,10 @@ static void dst_release(struct dvb_frontend *fe)
|
|||
{
|
||||
struct dst_state *state = fe->demodulator_priv;
|
||||
|
||||
#ifdef CONFIG_DVB_CORE_ATTACH
|
||||
if (state->dst_hw_cap & DST_TYPE_HAS_CA)
|
||||
symbol_put(dst_ca_attach);
|
||||
#endif
|
||||
|
||||
kfree(state);
|
||||
}
|
||||
|
|
|
@ -9,3 +9,14 @@ config DVB_CORE
|
|||
in-kernel drivers will select this automatically if needed.
|
||||
If unsure say N.
|
||||
|
||||
config DVB_CORE_ATTACH
|
||||
bool "Load and attach frontend modules as needed"
|
||||
depends on DVB_CORE
|
||||
depends on MODULES
|
||||
help
|
||||
Remove the static dependency of DVB card drivers on all
|
||||
frontend modules for all possible card variants. Instead,
|
||||
allow the card drivers to only load the frontend modules
|
||||
they require. This saves several KBytes of memory.
|
||||
|
||||
If unsure say Y.
|
||||
|
|
|
@ -86,10 +86,10 @@ config DVB_USB_UMT_010
|
|||
config DVB_USB_CXUSB
|
||||
tristate "Conexant USB2.0 hybrid reference design support"
|
||||
depends on DVB_USB
|
||||
select DVB_CX22702
|
||||
select DVB_LGDT330X
|
||||
select DVB_MT352
|
||||
select DVB_ZL10353
|
||||
select DVB_CX22702 if !DVB_FE_CUSTOMISE
|
||||
select DVB_LGDT330X if !DVB_FE_CUSTOMISE
|
||||
select DVB_MT352 if !DVB_FE_CUSTOMISE
|
||||
select DVB_ZL10353 if !DVB_FE_CUSTOMISE
|
||||
help
|
||||
Say Y here to support the Conexant USB2.0 hybrid reference design.
|
||||
Currently, only DVB and ATSC modes are supported, analog mode
|
||||
|
@ -101,8 +101,8 @@ config DVB_USB_CXUSB
|
|||
config DVB_USB_DIGITV
|
||||
tristate "Nebula Electronics uDigiTV DVB-T USB2.0 support"
|
||||
depends on DVB_USB
|
||||
select DVB_NXT6000
|
||||
select DVB_MT352
|
||||
select DVB_NXT6000 if !DVB_FE_CUSTOMISE
|
||||
select DVB_MT352 if !DVB_FE_CUSTOMISE
|
||||
help
|
||||
Say Y here to support the Nebula Electronics uDigitV USB2.0 DVB-T receiver.
|
||||
|
||||
|
|
|
@ -34,7 +34,16 @@ struct bcm3510_config
|
|||
int (*request_firmware)(struct dvb_frontend* fe, const struct firmware **fw, char* name);
|
||||
};
|
||||
|
||||
#if defined(CONFIG_DVB_BCM3510) || defined(CONFIG_DVB_BCM3510_MODULE)
|
||||
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)
|
||||
{
|
||||
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
|
||||
return NULL;
|
||||
}
|
||||
#endif // CONFIG_DVB_BCM3510
|
||||
|
||||
#endif
|
||||
|
|
|
@ -31,7 +31,16 @@ struct cx22700_config
|
|||
u8 demod_address;
|
||||
};
|
||||
|
||||
#if defined(CONFIG_DVB_CX22700) || defined(CONFIG_DVB_CX22700_MODULE)
|
||||
extern struct dvb_frontend* cx22700_attach(const struct cx22700_config* config,
|
||||
struct i2c_adapter* i2c);
|
||||
#else
|
||||
static inline struct dvb_frontend* cx22700_attach(const struct cx22700_config* config,
|
||||
struct i2c_adapter* i2c)
|
||||
{
|
||||
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
|
||||
return NULL;
|
||||
}
|
||||
#endif // CONFIG_DVB_CX22700
|
||||
|
||||
#endif // CX22700_H
|
||||
|
|
|
@ -41,7 +41,16 @@ struct cx22702_config
|
|||
u8 output_mode;
|
||||
};
|
||||
|
||||
#if defined(CONFIG_DVB_CX22702) || defined(CONFIG_DVB_CX22702_MODULE)
|
||||
extern struct dvb_frontend* cx22702_attach(const struct cx22702_config* config,
|
||||
struct i2c_adapter* i2c);
|
||||
#else
|
||||
static inline struct dvb_frontend* cx22702_attach(const struct cx22702_config* config,
|
||||
struct i2c_adapter* i2c)
|
||||
{
|
||||
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
|
||||
return NULL;
|
||||
}
|
||||
#endif // CONFIG_DVB_CX22702
|
||||
|
||||
#endif // CX22702_H
|
||||
|
|
|
@ -33,9 +33,6 @@ struct cx24110_config
|
|||
u8 demod_address;
|
||||
};
|
||||
|
||||
extern struct dvb_frontend* cx24110_attach(const struct cx24110_config* config,
|
||||
struct i2c_adapter* i2c);
|
||||
|
||||
static inline int cx24110_pll_write(struct dvb_frontend *fe, u32 val) {
|
||||
int r = 0;
|
||||
u8 buf[] = {(u8) (val>>24), (u8) (val>>16), (u8) (val>>8)};
|
||||
|
@ -44,4 +41,16 @@ static inline int cx24110_pll_write(struct dvb_frontend *fe, u32 val) {
|
|||
return r;
|
||||
}
|
||||
|
||||
#if defined(CONFIG_DVB_CX24110) || defined(CONFIG_DVB_CX24110_MODULE)
|
||||
extern struct dvb_frontend* cx24110_attach(const struct cx24110_config* config,
|
||||
struct i2c_adapter* i2c);
|
||||
#else
|
||||
static inline struct dvb_frontend* cx24110_attach(const struct cx24110_config* config,
|
||||
struct i2c_adapter* i2c)
|
||||
{
|
||||
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
|
||||
return NULL;
|
||||
}
|
||||
#endif // CONFIG_DVB_CX24110
|
||||
|
||||
#endif // CX24110_H
|
||||
|
|
|
@ -32,7 +32,16 @@ struct cx24123_config
|
|||
int (*set_ts_params)(struct dvb_frontend* fe, int is_punctured);
|
||||
};
|
||||
|
||||
#if defined(CONFIG_DVB_CX24123) || defined(CONFIG_DVB_CX24123_MODULE)
|
||||
extern struct dvb_frontend* cx24123_attach(const struct cx24123_config* config,
|
||||
struct i2c_adapter* i2c);
|
||||
#else
|
||||
static inline struct dvb_frontend* cx24123_attach(const struct cx24123_config* config,
|
||||
struct i2c_adapter* i2c)
|
||||
{
|
||||
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
|
||||
return NULL;
|
||||
}
|
||||
#endif // CONFIG_DVB_CX24123
|
||||
|
||||
#endif /* CX24123_H */
|
||||
|
|
|
@ -41,9 +41,28 @@ struct dib_fe_xfer_ops
|
|||
int (*tuner_pass_ctrl)(struct dvb_frontend *fe, int onoff, u8 pll_ctrl);
|
||||
};
|
||||
|
||||
#if defined(CONFIG_DVB_DIB3000MB) || defined(CONFIG_DVB_DIB3000MB_MODULE)
|
||||
extern struct dvb_frontend* dib3000mb_attach(const struct dib3000_config* config,
|
||||
struct i2c_adapter* i2c, struct dib_fe_xfer_ops *xfer_ops);
|
||||
#else
|
||||
static inline struct dvb_frontend* dib3000mb_attach(const struct dib3000_config* config,
|
||||
struct i2c_adapter* i2c, struct dib_fe_xfer_ops *xfer_ops)
|
||||
{
|
||||
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
|
||||
return NULL;
|
||||
}
|
||||
#endif // CONFIG_DVB_DIB3000MB
|
||||
|
||||
#if defined(CONFIG_DVB_DIB3000MC) || defined(CONFIG_DVB_DIB3000MC_MODULE)
|
||||
extern struct dvb_frontend* dib3000mc_attach(const struct dib3000_config* config,
|
||||
struct i2c_adapter* i2c, struct dib_fe_xfer_ops *xfer_ops);
|
||||
#else
|
||||
static inline struct dvb_frontend* dib3000mc_attach(const struct dib3000_config* config,
|
||||
struct i2c_adapter* i2c, struct dib_fe_xfer_ops *xfer_ops)
|
||||
{
|
||||
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
|
||||
return NULL;
|
||||
}
|
||||
#endif // CONFIG_DVB_DIB3000MC
|
||||
|
||||
#endif // DIB3000_H
|
||||
|
|
|
@ -39,8 +39,17 @@
|
|||
#define ISL6421_ISEL1 0x20
|
||||
#define ISL6421_DCL 0x40
|
||||
|
||||
#if defined(CONFIG_DVB_ISL6421) || defined(CONFIG_DVB_ISL6421_MODULE)
|
||||
/* override_set and override_clear control which system register bits (above) to always set & clear */
|
||||
extern struct dvb_frontend *isl6421_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c, u8 i2c_addr,
|
||||
u8 override_set, u8 override_clear);
|
||||
#else
|
||||
static inline struct dvb_frontend *isl6421_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c, u8 i2c_addr,
|
||||
u8 override_set, u8 override_clear)
|
||||
{
|
||||
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
|
||||
return NULL;
|
||||
}
|
||||
#endif // CONFIG_DVB_ISL6421
|
||||
|
||||
#endif
|
||||
|
|
|
@ -31,8 +31,16 @@ struct l64781_config
|
|||
u8 demod_address;
|
||||
};
|
||||
|
||||
|
||||
#if defined(CONFIG_DVB_L64781) || defined(CONFIG_DVB_L64781_MODULE)
|
||||
extern struct dvb_frontend* l64781_attach(const struct l64781_config* config,
|
||||
struct i2c_adapter* i2c);
|
||||
#else
|
||||
static inline struct dvb_frontend* l64781_attach(const struct l64781_config* config,
|
||||
struct i2c_adapter* i2c)
|
||||
{
|
||||
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
|
||||
return NULL;
|
||||
}
|
||||
#endif // CONFIG_DVB_L64781
|
||||
|
||||
#endif // L64781_H
|
||||
|
|
|
@ -52,8 +52,17 @@ struct lgdt330x_config
|
|||
int clock_polarity_flip;
|
||||
};
|
||||
|
||||
#if defined(CONFIG_DVB_LGDT330X) || defined(CONFIG_DVB_LGDT330X_MODULE)
|
||||
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)
|
||||
{
|
||||
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
|
||||
return NULL;
|
||||
}
|
||||
#endif // CONFIG_DVB_LGDT330X
|
||||
|
||||
#endif /* LGDT330X_H */
|
||||
|
||||
|
|
|
@ -39,7 +39,15 @@
|
|||
|
||||
#include <linux/dvb/frontend.h>
|
||||
|
||||
#if defined(CONFIG_DVB_LNBP21) || defined(CONFIG_DVB_LNBP21_MODULE)
|
||||
/* override_set and override_clear control which system register bits (above) to always set & clear */
|
||||
extern struct dvb_frontend *lnbp21_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c, u8 override_set, u8 override_clear);
|
||||
#else
|
||||
static inline struct dvb_frontend *lnbp21_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c, u8 override_set, u8 override_clear)
|
||||
{
|
||||
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
|
||||
return NULL;
|
||||
}
|
||||
#endif // CONFIG_DVB_LNBP21
|
||||
|
||||
#endif
|
||||
#endif // _LNBP21_H
|
||||
|
|
|
@ -34,8 +34,16 @@ struct mt312_config
|
|||
u8 demod_address;
|
||||
};
|
||||
|
||||
#if defined(CONFIG_DVB_MT312) || defined(CONFIG_DVB_MT312_MODULE)
|
||||
struct dvb_frontend* vp310_mt312_attach(const struct mt312_config* config,
|
||||
struct i2c_adapter* i2c);
|
||||
|
||||
#else
|
||||
static inline struct dvb_frontend* vp310_mt312_attach(const struct mt312_config* config,
|
||||
struct i2c_adapter* i2c)
|
||||
{
|
||||
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
|
||||
return NULL;
|
||||
}
|
||||
#endif // CONFIG_DVB_MT312
|
||||
|
||||
#endif // MT312_H
|
||||
|
|
|
@ -51,8 +51,17 @@ struct mt352_config
|
|||
int (*demod_init)(struct dvb_frontend* fe);
|
||||
};
|
||||
|
||||
#if defined(CONFIG_DVB_MT352) || defined(CONFIG_DVB_MT352_MODULE)
|
||||
extern struct dvb_frontend* mt352_attach(const struct mt352_config* config,
|
||||
struct i2c_adapter* i2c);
|
||||
#else
|
||||
static inline struct dvb_frontend* mt352_attach(const struct mt352_config* config,
|
||||
struct i2c_adapter* i2c)
|
||||
{
|
||||
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
|
||||
return NULL;
|
||||
}
|
||||
#endif // CONFIG_DVB_MT352
|
||||
|
||||
static inline int mt352_write(struct dvb_frontend *fe, u8 *buf, int len) {
|
||||
int r = 0;
|
||||
|
|
|
@ -45,8 +45,17 @@ struct nxt200x_config
|
|||
int (*set_ts_params)(struct dvb_frontend* fe, int is_punctured);
|
||||
};
|
||||
|
||||
#if defined(CONFIG_DVB_NXT200X) || defined(CONFIG_DVB_NXT200X_MODULE)
|
||||
extern struct dvb_frontend* nxt200x_attach(const struct nxt200x_config* config,
|
||||
struct i2c_adapter* i2c);
|
||||
#else
|
||||
static inline struct dvb_frontend* nxt200x_attach(const struct nxt200x_config* config,
|
||||
struct i2c_adapter* i2c)
|
||||
{
|
||||
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
|
||||
return NULL;
|
||||
}
|
||||
#endif // CONFIG_DVB_NXT200X
|
||||
|
||||
#endif /* NXT200X_H */
|
||||
|
||||
|
|
|
@ -33,7 +33,16 @@ struct nxt6000_config
|
|||
u8 clock_inversion:1;
|
||||
};
|
||||
|
||||
#if defined(CONFIG_DVB_NXT6000) || defined(CONFIG_DVB_NXT6000_MODULE)
|
||||
extern struct dvb_frontend* nxt6000_attach(const struct nxt6000_config* config,
|
||||
struct i2c_adapter* i2c);
|
||||
#else
|
||||
static inline struct dvb_frontend* nxt6000_attach(const struct nxt6000_config* config,
|
||||
struct i2c_adapter* i2c)
|
||||
{
|
||||
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
|
||||
return NULL;
|
||||
}
|
||||
#endif // CONFIG_DVB_NXT6000
|
||||
|
||||
#endif // NXT6000_H
|
||||
|
|
|
@ -34,8 +34,17 @@ struct or51132_config
|
|||
int (*set_ts_params)(struct dvb_frontend* fe, int is_punctured);
|
||||
};
|
||||
|
||||
#if defined(CONFIG_DVB_OR51132) || defined(CONFIG_DVB_OR51132_MODULE)
|
||||
extern struct dvb_frontend* or51132_attach(const struct or51132_config* config,
|
||||
struct i2c_adapter* i2c);
|
||||
#else
|
||||
static inline struct dvb_frontend* or51132_attach(const struct or51132_config* config,
|
||||
struct i2c_adapter* i2c)
|
||||
{
|
||||
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
|
||||
return NULL;
|
||||
}
|
||||
#endif // CONFIG_DVB_OR51132
|
||||
|
||||
#endif // OR51132_H
|
||||
|
||||
|
|
|
@ -37,8 +37,17 @@ struct or51211_config
|
|||
void (*sleep)(struct dvb_frontend * fe);
|
||||
};
|
||||
|
||||
#if defined(CONFIG_DVB_OR51211) || defined(CONFIG_DVB_OR51211_MODULE)
|
||||
extern struct dvb_frontend* or51211_attach(const struct or51211_config* config,
|
||||
struct i2c_adapter* i2c);
|
||||
#else
|
||||
static inline struct dvb_frontend* or51211_attach(const struct or51211_config* config,
|
||||
struct i2c_adapter* i2c)
|
||||
{
|
||||
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
|
||||
return NULL;
|
||||
}
|
||||
#endif // CONFIG_DVB_OR51211
|
||||
|
||||
#endif // OR51211_H
|
||||
|
||||
|
|
|
@ -34,7 +34,16 @@ struct s5h1420_config
|
|||
u8 invert:1;
|
||||
};
|
||||
|
||||
#if defined(CONFIG_DVB_S5H1420) || defined(CONFIG_DVB_S5H1420_MODULE)
|
||||
extern struct dvb_frontend* s5h1420_attach(const struct s5h1420_config* config,
|
||||
struct i2c_adapter* i2c);
|
||||
#else
|
||||
static inline struct dvb_frontend* s5h1420_attach(const struct s5h1420_config* config,
|
||||
struct i2c_adapter* i2c)
|
||||
{
|
||||
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
|
||||
return NULL;
|
||||
}
|
||||
#endif // CONFIG_DVB_S5H1420
|
||||
|
||||
#endif // S5H1420_H
|
||||
|
|
|
@ -35,7 +35,16 @@ struct sp8870_config
|
|||
int (*request_firmware)(struct dvb_frontend* fe, const struct firmware **fw, char* name);
|
||||
};
|
||||
|
||||
#if defined(CONFIG_DVB_SP8870) || defined(CONFIG_DVB_SP8870_MODULE)
|
||||
extern struct dvb_frontend* sp8870_attach(const struct sp8870_config* config,
|
||||
struct i2c_adapter* i2c);
|
||||
#else
|
||||
static inline struct dvb_frontend* sp8870_attach(const struct sp8870_config* config,
|
||||
struct i2c_adapter* i2c)
|
||||
{
|
||||
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
|
||||
return NULL;
|
||||
}
|
||||
#endif // CONFIG_DVB_SP8870
|
||||
|
||||
#endif // SP8870_H
|
||||
|
|
|
@ -17,7 +17,16 @@ struct sp887x_config
|
|||
int (*request_firmware)(struct dvb_frontend* fe, const struct firmware **fw, char* name);
|
||||
};
|
||||
|
||||
#if defined(CONFIG_DVB_SP887X) || defined(CONFIG_DVB_SP887X_MODULE)
|
||||
extern struct dvb_frontend* sp887x_attach(const struct sp887x_config* config,
|
||||
struct i2c_adapter* i2c);
|
||||
#else
|
||||
static inline struct dvb_frontend* sp887x_attach(const struct sp887x_config* config,
|
||||
struct i2c_adapter* i2c)
|
||||
{
|
||||
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
|
||||
return NULL;
|
||||
}
|
||||
#endif // CONFIG_DVB_SP887X
|
||||
|
||||
#endif // SP887X_H
|
||||
|
|
|
@ -42,7 +42,16 @@ struct stv0297_config
|
|||
u8 stop_during_read:1;
|
||||
};
|
||||
|
||||
#if defined(CONFIG_DVB_STV0297) || defined(CONFIG_DVB_STV0297_MODULE)
|
||||
extern struct dvb_frontend* stv0297_attach(const struct stv0297_config* config,
|
||||
struct i2c_adapter* i2c);
|
||||
#else
|
||||
static inline struct dvb_frontend* stv0297_attach(const struct stv0297_config* config,
|
||||
struct i2c_adapter* i2c)
|
||||
{
|
||||
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
|
||||
return NULL;
|
||||
}
|
||||
#endif // CONFIG_DVB_STV0297
|
||||
|
||||
#endif // STV0297_H
|
||||
|
|
|
@ -89,8 +89,17 @@ struct stv0299_config
|
|||
int (*set_symbol_rate)(struct dvb_frontend* fe, u32 srate, u32 ratio);
|
||||
};
|
||||
|
||||
#if defined(CONFIG_DVB_STV0299) || defined(CONFIG_DVB_STV0299_MODULE)
|
||||
extern struct dvb_frontend* stv0299_attach(const struct stv0299_config* config,
|
||||
struct i2c_adapter* i2c);
|
||||
#else
|
||||
static inline struct dvb_frontend* stv0299_attach(const struct stv0299_config* config,
|
||||
struct i2c_adapter* i2c)
|
||||
{
|
||||
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
|
||||
return NULL;
|
||||
}
|
||||
#endif // CONFIG_DVB_STV0299
|
||||
|
||||
static inline int stv0299_writereg(struct dvb_frontend *fe, u8 reg, u8 val) {
|
||||
int r = 0;
|
||||
|
|
|
@ -32,8 +32,17 @@ struct tda10021_config
|
|||
u8 demod_address;
|
||||
};
|
||||
|
||||
#if defined(CONFIG_DVB_TDA10021) || defined(CONFIG_DVB_TDA10021_MODULE)
|
||||
extern struct dvb_frontend* tda10021_attach(const struct tda10021_config* config,
|
||||
struct i2c_adapter* i2c, u8 pwm);
|
||||
#else
|
||||
static inline struct dvb_frontend* tda10021_attach(const struct tda10021_config* config,
|
||||
struct i2c_adapter* i2c, u8 pwm)
|
||||
{
|
||||
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
|
||||
return NULL;
|
||||
}
|
||||
#endif // CONFIG_DVB_TDA10021
|
||||
|
||||
static inline int tda10021_writereg(struct dvb_frontend *fe, u8 reg, u8 val) {
|
||||
int r = 0;
|
||||
|
|
|
@ -71,11 +71,26 @@ struct tda1004x_config
|
|||
int (*request_firmware)(struct dvb_frontend* fe, const struct firmware **fw, char* name);
|
||||
};
|
||||
|
||||
#if defined(CONFIG_DVB_TDA1004X) || defined(CONFIG_DVB_TDA1004X_MODULE)
|
||||
extern struct dvb_frontend* tda10045_attach(const struct tda1004x_config* config,
|
||||
struct i2c_adapter* i2c);
|
||||
|
||||
extern struct dvb_frontend* tda10046_attach(const struct tda1004x_config* config,
|
||||
struct i2c_adapter* i2c);
|
||||
#else
|
||||
static inline struct dvb_frontend* tda10045_attach(const struct tda1004x_config* config,
|
||||
struct i2c_adapter* i2c)
|
||||
{
|
||||
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
|
||||
return NULL;
|
||||
}
|
||||
static inline struct dvb_frontend* tda10046_attach(const struct tda1004x_config* config,
|
||||
struct i2c_adapter* i2c)
|
||||
{
|
||||
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
|
||||
return NULL;
|
||||
}
|
||||
#endif // CONFIG_DVB_TDA1004X
|
||||
|
||||
static inline int tda1004x_writereg(struct dvb_frontend *fe, u8 reg, u8 val) {
|
||||
int r = 0;
|
||||
|
|
|
@ -35,7 +35,16 @@ struct tda8083_config
|
|||
u8 demod_address;
|
||||
};
|
||||
|
||||
#if defined(CONFIG_DVB_TDA8083) || defined(CONFIG_DVB_TDA8083_MODULE)
|
||||
extern struct dvb_frontend* tda8083_attach(const struct tda8083_config* config,
|
||||
struct i2c_adapter* i2c);
|
||||
#else
|
||||
static inline struct dvb_frontend* tda8083_attach(const struct tda8083_config* config,
|
||||
struct i2c_adapter* i2c)
|
||||
{
|
||||
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
|
||||
return NULL;
|
||||
}
|
||||
#endif // CONFIG_DVB_TDA8083
|
||||
|
||||
#endif // TDA8083_H
|
||||
|
|
|
@ -41,7 +41,16 @@ struct ves1820_config
|
|||
u8 selagc:1;
|
||||
};
|
||||
|
||||
#if defined(CONFIG_DVB_VES1820) || defined(CONFIG_DVB_VES1820_MODULE)
|
||||
extern struct dvb_frontend* ves1820_attach(const struct ves1820_config* config,
|
||||
struct i2c_adapter* i2c, u8 pwm);
|
||||
#else
|
||||
static inline struct dvb_frontend* ves1820_attach(const struct ves1820_config* config,
|
||||
struct i2c_adapter* i2c, u8 pwm)
|
||||
{
|
||||
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
|
||||
return NULL;
|
||||
}
|
||||
#endif // CONFIG_DVB_VES1820
|
||||
|
||||
#endif // VES1820_H
|
||||
|
|
|
@ -40,7 +40,16 @@ struct ves1x93_config
|
|||
u8 invert_pwm:1;
|
||||
};
|
||||
|
||||
#if defined(CONFIG_DVB_VES1X93) || defined(CONFIG_DVB_VES1X93_MODULE)
|
||||
extern struct dvb_frontend* ves1x93_attach(const struct ves1x93_config* config,
|
||||
struct i2c_adapter* i2c);
|
||||
#else
|
||||
static inline struct dvb_frontend* ves1x93_attach(const struct ves1x93_config* config,
|
||||
struct i2c_adapter* i2c)
|
||||
{
|
||||
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
|
||||
return NULL;
|
||||
}
|
||||
#endif // CONFIG_DVB_VES1X93
|
||||
|
||||
#endif // VES1X93_H
|
||||
|
|
|
@ -33,7 +33,16 @@ struct zl10353_config
|
|||
int no_tuner;
|
||||
};
|
||||
|
||||
#if defined(CONFIG_DVB_ZL10353) || defined(CONFIG_DVB_ZL10353_MODULE)
|
||||
extern struct dvb_frontend* zl10353_attach(const struct zl10353_config *config,
|
||||
struct i2c_adapter *i2c);
|
||||
#else
|
||||
static inline struct dvb_frontend* zl10353_attach(const struct zl10353_config *config,
|
||||
struct i2c_adapter *i2c)
|
||||
{
|
||||
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
|
||||
return NULL;
|
||||
}
|
||||
#endif // CONFIG_DVB_ZL10353
|
||||
|
||||
#endif /* ZL10353_H */
|
||||
|
|
|
@ -1,7 +1,3 @@
|
|||
config VIDEO_CX88_VP3054
|
||||
tristate
|
||||
depends on VIDEO_CX88_DVB && DVB_MT352
|
||||
|
||||
config VIDEO_CX88
|
||||
tristate "Conexant 2388x (bt878 successor) support"
|
||||
depends on VIDEO_DEV && PCI && I2C
|
||||
|
@ -52,6 +48,14 @@ config VIDEO_CX88_DVB
|
|||
depends on VIDEO_CX88 && DVB_CORE
|
||||
select VIDEO_BUF_DVB
|
||||
select DVB_PLL
|
||||
select DVB_MT352 if !DVB_FE_CUSTOMISE
|
||||
select DVB_ZL10353 if !DVB_FE_CUSTOMISE
|
||||
select DVB_OR51132 if !DVB_FE_CUSTOMISE
|
||||
select DVB_CX22702 if !DVB_FE_CUSTOMISE
|
||||
select DVB_LGDT330X if !DVB_FE_CUSTOMISE
|
||||
select DVB_NXT200X if !DVB_FE_CUSTOMISE
|
||||
select DVB_CX24123 if !DVB_FE_CUSTOMISE
|
||||
select DVB_ISL6421 if !DVB_FE_CUSTOMISE
|
||||
---help---
|
||||
This adds support for DVB/ATSC cards based on the
|
||||
Conexant 2388x chip.
|
||||
|
@ -59,101 +63,12 @@ config VIDEO_CX88_DVB
|
|||
To compile this driver as a module, choose M here: the
|
||||
module will be called cx88-dvb.
|
||||
|
||||
You must also select one or more DVB/ATSC demodulators.
|
||||
If you are unsure which you need, choose all of them.
|
||||
|
||||
config VIDEO_CX88_DVB_ALL_FRONTENDS
|
||||
bool "Build all supported frontends for cx2388x based TV cards"
|
||||
default y
|
||||
depends on VIDEO_CX88_DVB
|
||||
select DVB_MT352
|
||||
select VIDEO_CX88_VP3054
|
||||
select DVB_ZL10353
|
||||
select DVB_OR51132
|
||||
select DVB_CX22702
|
||||
select DVB_LGDT330X
|
||||
select DVB_NXT200X
|
||||
select DVB_CX24123
|
||||
select DVB_ISL6421
|
||||
---help---
|
||||
This builds cx88-dvb with all currently supported frontend
|
||||
demodulators. If you wish to tweak your configuration, and
|
||||
only include support for the hardware that you need, choose N here.
|
||||
|
||||
If you are unsure, choose Y.
|
||||
|
||||
config VIDEO_CX88_DVB_MT352
|
||||
bool "Zarlink MT352 DVB-T Support"
|
||||
default y
|
||||
depends on VIDEO_CX88_DVB && !VIDEO_CX88_DVB_ALL_FRONTENDS
|
||||
select DVB_MT352
|
||||
---help---
|
||||
This adds DVB-T support for cards based on the
|
||||
Connexant 2388x chip and the MT352 demodulator.
|
||||
|
||||
config VIDEO_CX88_DVB_VP3054
|
||||
bool "VP-3054 Secondary I2C Bus Support"
|
||||
default y
|
||||
depends on VIDEO_CX88_DVB_MT352
|
||||
select VIDEO_CX88_VP3054
|
||||
config VIDEO_CX88_VP3054
|
||||
tristate "VP-3054 Secondary I2C Bus Support"
|
||||
default m
|
||||
depends on VIDEO_CX88_DVB && DVB_MT352
|
||||
---help---
|
||||
This adds DVB-T support for cards based on the
|
||||
Connexant 2388x chip and the MT352 demodulator,
|
||||
which also require support for the VP-3054
|
||||
Secondary I2C bus, such at DNTV Live! DVB-T Pro.
|
||||
|
||||
config VIDEO_CX88_DVB_ZL10353
|
||||
bool "Zarlink ZL10353 DVB-T Support"
|
||||
default y
|
||||
depends on VIDEO_CX88_DVB && !VIDEO_CX88_DVB_ALL_FRONTENDS
|
||||
select DVB_ZL10353
|
||||
---help---
|
||||
This adds DVB-T support for cards based on the
|
||||
Connexant 2388x chip and the ZL10353 demodulator,
|
||||
successor to the Zarlink MT352.
|
||||
|
||||
config VIDEO_CX88_DVB_OR51132
|
||||
bool "OR51132 ATSC Support"
|
||||
default y
|
||||
depends on VIDEO_CX88_DVB && !VIDEO_CX88_DVB_ALL_FRONTENDS
|
||||
select DVB_OR51132
|
||||
---help---
|
||||
This adds ATSC 8VSB and QAM64/256 support for cards based on the
|
||||
Connexant 2388x chip and the OR51132 demodulator.
|
||||
|
||||
config VIDEO_CX88_DVB_CX22702
|
||||
bool "Conexant CX22702 DVB-T Support"
|
||||
default y
|
||||
depends on VIDEO_CX88_DVB && !VIDEO_CX88_DVB_ALL_FRONTENDS
|
||||
select DVB_CX22702
|
||||
---help---
|
||||
This adds DVB-T support for cards based on the
|
||||
Connexant 2388x chip and the CX22702 demodulator.
|
||||
|
||||
config VIDEO_CX88_DVB_LGDT330X
|
||||
bool "LG Electronics DT3302/DT3303 ATSC Support"
|
||||
default y
|
||||
depends on VIDEO_CX88_DVB && !VIDEO_CX88_DVB_ALL_FRONTENDS
|
||||
select DVB_LGDT330X
|
||||
---help---
|
||||
This adds ATSC 8VSB and QAM64/256 support for cards based on the
|
||||
Connexant 2388x chip and the LGDT3302/LGDT3303 demodulator.
|
||||
|
||||
config VIDEO_CX88_DVB_NXT200X
|
||||
bool "NXT2002/NXT2004 ATSC Support"
|
||||
default y
|
||||
depends on VIDEO_CX88_DVB && !VIDEO_CX88_DVB_ALL_FRONTENDS
|
||||
select DVB_NXT200X
|
||||
---help---
|
||||
This adds ATSC 8VSB and QAM64/256 support for cards based on the
|
||||
Connexant 2388x chip and the NXT2002/NXT2004 demodulator.
|
||||
|
||||
config VIDEO_CX88_DVB_CX24123
|
||||
bool "Conexant CX24123 DVB-S Support"
|
||||
default y
|
||||
depends on VIDEO_CX88_DVB && !VIDEO_CX88_DVB_ALL_FRONTENDS
|
||||
select DVB_CX24123
|
||||
select DVB_ISL6421
|
||||
---help---
|
||||
This adds DVB-S support for cards based on the
|
||||
Connexant 2388x chip and the CX24123 demodulator.
|
||||
|
|
|
@ -41,53 +41,15 @@ config VIDEO_SAA7134_DVB
|
|||
select VIDEO_BUF_DVB
|
||||
select FW_LOADER
|
||||
select DVB_PLL
|
||||
select DVB_MT352 if !DVB_FE_CUSTOMISE
|
||||
select DVB_TDA1004X if !DVB_FE_CUSTOMISE
|
||||
select DVB_NXT200X if !DVB_FE_CUSTOMISE
|
||||
select DVB_TDA10086 if !DVB_FE_CUSTOMISE
|
||||
select DVB_TDA826X if !DVB_FE_CUSTOMISE
|
||||
select DVB_ISL6421 if !DVB_FE_CUSTOMISE
|
||||
---help---
|
||||
This adds support for DVB cards based on the
|
||||
Philips saa7134 chip.
|
||||
|
||||
To compile this driver as a module, choose M here: the
|
||||
module will be called saa7134-dvb.
|
||||
|
||||
You must also select one or more DVB demodulators.
|
||||
If you are unsure which you need, choose all of them.
|
||||
|
||||
config VIDEO_SAA7134_DVB_ALL_FRONTENDS
|
||||
bool "Build all supported frontends for saa7134 based TV cards"
|
||||
default y
|
||||
depends on VIDEO_SAA7134_DVB
|
||||
select DVB_MT352
|
||||
select DVB_TDA1004X
|
||||
select DVB_NXT200X
|
||||
---help---
|
||||
This builds saa7134-dvb with all currently supported frontend
|
||||
demodulators. If you wish to tweak your configuration, and
|
||||
only include support for the hardware that you need, choose N here.
|
||||
|
||||
If you are unsure, choose Y.
|
||||
|
||||
config VIDEO_SAA7134_DVB_MT352
|
||||
bool "Zarlink MT352 DVB-T Support"
|
||||
default y
|
||||
depends on VIDEO_SAA7134_DVB && !VIDEO_SAA7134_DVB_ALL_FRONTENDS
|
||||
select DVB_MT352
|
||||
---help---
|
||||
This adds DVB-T support for cards based on the
|
||||
Philips saa7134 chip and the MT352 demodulator.
|
||||
|
||||
config VIDEO_SAA7134_DVB_TDA1004X
|
||||
bool "Phillips TDA10045H/TDA10046H DVB-T Support"
|
||||
default y
|
||||
depends on VIDEO_SAA7134_DVB && !VIDEO_SAA7134_DVB_ALL_FRONTENDS
|
||||
select DVB_TDA1004X
|
||||
---help---
|
||||
This adds DVB-T support for cards based on the
|
||||
Philips saa7134 chip and the TDA10045H/TDA10046H demodulator.
|
||||
|
||||
config VIDEO_SAA7134_DVB_NXT200X
|
||||
bool "NXT2002/NXT2004 ATSC Support"
|
||||
default y
|
||||
depends on VIDEO_SAA7134_DVB && !VIDEO_SAA7134_DVB_ALL_FRONTENDS
|
||||
select DVB_NXT200X
|
||||
---help---
|
||||
This adds ATSC 8VSB and QAM64/256 support for cards based on the
|
||||
Philips saa7134 chip and the NXT2002/NXT2004 demodulator.
|
||||
|
|
Loading…
Reference in New Issue