diff options
author | Andrew de Quincey <adq_dvb@lidskialf.net> | 2006-08-08 08:10:08 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2006-09-26 10:53:25 -0400 |
commit | 102a342bb9672f67a34fd185803aaded4ce8dd0f (patch) | |
tree | 2dffbcbe618d16036c5e3227e8bd003714553b0b /drivers/media/dvb | |
parent | 2bfe031df6bd5e3b8e503eba8e3b6461d7c2c27e (diff) |
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>
Diffstat (limited to 'drivers/media/dvb')
30 files changed, 281 insertions, 12 deletions
diff --git a/drivers/media/dvb/bt8xx/dst.c b/drivers/media/dvb/bt8xx/dst.c index 91dea91b1a43..a853c14c61d3 100644 --- a/drivers/media/dvb/bt8xx/dst.c +++ b/drivers/media/dvb/bt8xx/dst.c | |||
@@ -1716,8 +1716,10 @@ static void dst_release(struct dvb_frontend *fe) | |||
1716 | { | 1716 | { |
1717 | struct dst_state *state = fe->demodulator_priv; | 1717 | struct dst_state *state = fe->demodulator_priv; |
1718 | 1718 | ||
1719 | #ifdef CONFIG_DVB_CORE_ATTACH | ||
1719 | if (state->dst_hw_cap & DST_TYPE_HAS_CA) | 1720 | if (state->dst_hw_cap & DST_TYPE_HAS_CA) |
1720 | symbol_put(dst_ca_attach); | 1721 | symbol_put(dst_ca_attach); |
1722 | #endif | ||
1721 | 1723 | ||
1722 | kfree(state); | 1724 | kfree(state); |
1723 | } | 1725 | } |
diff --git a/drivers/media/dvb/dvb-core/Kconfig b/drivers/media/dvb/dvb-core/Kconfig index 12ee912a5705..7853880617fc 100644 --- a/drivers/media/dvb/dvb-core/Kconfig +++ b/drivers/media/dvb/dvb-core/Kconfig | |||
@@ -9,3 +9,14 @@ config DVB_CORE | |||
9 | in-kernel drivers will select this automatically if needed. | 9 | in-kernel drivers will select this automatically if needed. |
10 | If unsure say N. | 10 | If unsure say N. |
11 | 11 | ||
12 | config DVB_CORE_ATTACH | ||
13 | bool "Load and attach frontend modules as needed" | ||
14 | depends on DVB_CORE | ||
15 | depends on MODULES | ||
16 | help | ||
17 | Remove the static dependency of DVB card drivers on all | ||
18 | frontend modules for all possible card variants. Instead, | ||
19 | allow the card drivers to only load the frontend modules | ||
20 | they require. This saves several KBytes of memory. | ||
21 | |||
22 | If unsure say Y. | ||
diff --git a/drivers/media/dvb/dvb-usb/Kconfig b/drivers/media/dvb/dvb-usb/Kconfig index 75824b77198a..d9f13adc87a8 100644 --- a/drivers/media/dvb/dvb-usb/Kconfig +++ b/drivers/media/dvb/dvb-usb/Kconfig | |||
@@ -86,10 +86,10 @@ config DVB_USB_UMT_010 | |||
86 | config DVB_USB_CXUSB | 86 | config DVB_USB_CXUSB |
87 | tristate "Conexant USB2.0 hybrid reference design support" | 87 | tristate "Conexant USB2.0 hybrid reference design support" |
88 | depends on DVB_USB | 88 | depends on DVB_USB |
89 | select DVB_CX22702 | 89 | select DVB_CX22702 if !DVB_FE_CUSTOMISE |
90 | select DVB_LGDT330X | 90 | select DVB_LGDT330X if !DVB_FE_CUSTOMISE |
91 | select DVB_MT352 | 91 | select DVB_MT352 if !DVB_FE_CUSTOMISE |
92 | select DVB_ZL10353 | 92 | select DVB_ZL10353 if !DVB_FE_CUSTOMISE |
93 | help | 93 | help |
94 | Say Y here to support the Conexant USB2.0 hybrid reference design. | 94 | Say Y here to support the Conexant USB2.0 hybrid reference design. |
95 | Currently, only DVB and ATSC modes are supported, analog mode | 95 | Currently, only DVB and ATSC modes are supported, analog mode |
@@ -101,8 +101,8 @@ config DVB_USB_CXUSB | |||
101 | config DVB_USB_DIGITV | 101 | config DVB_USB_DIGITV |
102 | tristate "Nebula Electronics uDigiTV DVB-T USB2.0 support" | 102 | tristate "Nebula Electronics uDigiTV DVB-T USB2.0 support" |
103 | depends on DVB_USB | 103 | depends on DVB_USB |
104 | select DVB_NXT6000 | 104 | select DVB_NXT6000 if !DVB_FE_CUSTOMISE |
105 | select DVB_MT352 | 105 | select DVB_MT352 if !DVB_FE_CUSTOMISE |
106 | help | 106 | help |
107 | Say Y here to support the Nebula Electronics uDigitV USB2.0 DVB-T receiver. | 107 | Say Y here to support the Nebula Electronics uDigitV USB2.0 DVB-T receiver. |
108 | 108 | ||
diff --git a/drivers/media/dvb/frontends/bcm3510.h b/drivers/media/dvb/frontends/bcm3510.h index 80f5d0953d02..6dfa839a7022 100644 --- a/drivers/media/dvb/frontends/bcm3510.h +++ b/drivers/media/dvb/frontends/bcm3510.h | |||
@@ -34,7 +34,16 @@ struct bcm3510_config | |||
34 | int (*request_firmware)(struct dvb_frontend* fe, const struct firmware **fw, char* name); | 34 | int (*request_firmware)(struct dvb_frontend* fe, const struct firmware **fw, char* name); |
35 | }; | 35 | }; |
36 | 36 | ||
37 | #if defined(CONFIG_DVB_BCM3510) || defined(CONFIG_DVB_BCM3510_MODULE) | ||
37 | extern struct dvb_frontend* bcm3510_attach(const struct bcm3510_config* config, | 38 | extern struct dvb_frontend* bcm3510_attach(const struct bcm3510_config* config, |
38 | struct i2c_adapter* i2c); | 39 | struct i2c_adapter* i2c); |
40 | #else | ||
41 | static inline struct dvb_frontend* bcm3510_attach(const struct bcm3510_config* config, | ||
42 | struct i2c_adapter* i2c) | ||
43 | { | ||
44 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); | ||
45 | return NULL; | ||
46 | } | ||
47 | #endif // CONFIG_DVB_BCM3510 | ||
39 | 48 | ||
40 | #endif | 49 | #endif |
diff --git a/drivers/media/dvb/frontends/cx22700.h b/drivers/media/dvb/frontends/cx22700.h index dcd8979c1a15..10286cc29fb4 100644 --- a/drivers/media/dvb/frontends/cx22700.h +++ b/drivers/media/dvb/frontends/cx22700.h | |||
@@ -31,7 +31,16 @@ struct cx22700_config | |||
31 | u8 demod_address; | 31 | u8 demod_address; |
32 | }; | 32 | }; |
33 | 33 | ||
34 | #if defined(CONFIG_DVB_CX22700) || defined(CONFIG_DVB_CX22700_MODULE) | ||
34 | extern struct dvb_frontend* cx22700_attach(const struct cx22700_config* config, | 35 | extern struct dvb_frontend* cx22700_attach(const struct cx22700_config* config, |
35 | struct i2c_adapter* i2c); | 36 | struct i2c_adapter* i2c); |
37 | #else | ||
38 | static inline struct dvb_frontend* cx22700_attach(const struct cx22700_config* config, | ||
39 | struct i2c_adapter* i2c) | ||
40 | { | ||
41 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); | ||
42 | return NULL; | ||
43 | } | ||
44 | #endif // CONFIG_DVB_CX22700 | ||
36 | 45 | ||
37 | #endif // CX22700_H | 46 | #endif // CX22700_H |
diff --git a/drivers/media/dvb/frontends/cx22702.h b/drivers/media/dvb/frontends/cx22702.h index 7f2f241e5d44..bc217ddf02c0 100644 --- a/drivers/media/dvb/frontends/cx22702.h +++ b/drivers/media/dvb/frontends/cx22702.h | |||
@@ -41,7 +41,16 @@ struct cx22702_config | |||
41 | u8 output_mode; | 41 | u8 output_mode; |
42 | }; | 42 | }; |
43 | 43 | ||
44 | #if defined(CONFIG_DVB_CX22702) || defined(CONFIG_DVB_CX22702_MODULE) | ||
44 | extern struct dvb_frontend* cx22702_attach(const struct cx22702_config* config, | 45 | extern struct dvb_frontend* cx22702_attach(const struct cx22702_config* config, |
45 | struct i2c_adapter* i2c); | 46 | struct i2c_adapter* i2c); |
47 | #else | ||
48 | static inline struct dvb_frontend* cx22702_attach(const struct cx22702_config* config, | ||
49 | struct i2c_adapter* i2c) | ||
50 | { | ||
51 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); | ||
52 | return NULL; | ||
53 | } | ||
54 | #endif // CONFIG_DVB_CX22702 | ||
46 | 55 | ||
47 | #endif // CX22702_H | 56 | #endif // CX22702_H |
diff --git a/drivers/media/dvb/frontends/cx24110.h b/drivers/media/dvb/frontends/cx24110.h index 9c2b76e784f3..c9d5ae250ebb 100644 --- a/drivers/media/dvb/frontends/cx24110.h +++ b/drivers/media/dvb/frontends/cx24110.h | |||
@@ -33,9 +33,6 @@ struct cx24110_config | |||
33 | u8 demod_address; | 33 | u8 demod_address; |
34 | }; | 34 | }; |
35 | 35 | ||
36 | extern struct dvb_frontend* cx24110_attach(const struct cx24110_config* config, | ||
37 | struct i2c_adapter* i2c); | ||
38 | |||
39 | static inline int cx24110_pll_write(struct dvb_frontend *fe, u32 val) { | 36 | static inline int cx24110_pll_write(struct dvb_frontend *fe, u32 val) { |
40 | int r = 0; | 37 | int r = 0; |
41 | u8 buf[] = {(u8) (val>>24), (u8) (val>>16), (u8) (val>>8)}; | 38 | 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) { | |||
44 | return r; | 41 | return r; |
45 | } | 42 | } |
46 | 43 | ||
44 | #if defined(CONFIG_DVB_CX24110) || defined(CONFIG_DVB_CX24110_MODULE) | ||
45 | extern struct dvb_frontend* cx24110_attach(const struct cx24110_config* config, | ||
46 | struct i2c_adapter* i2c); | ||
47 | #else | ||
48 | static inline struct dvb_frontend* cx24110_attach(const struct cx24110_config* config, | ||
49 | struct i2c_adapter* i2c) | ||
50 | { | ||
51 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); | ||
52 | return NULL; | ||
53 | } | ||
54 | #endif // CONFIG_DVB_CX24110 | ||
55 | |||
47 | #endif // CX24110_H | 56 | #endif // CX24110_H |
diff --git a/drivers/media/dvb/frontends/cx24123.h b/drivers/media/dvb/frontends/cx24123.h index 9606f825935c..6a8cb4c41adf 100644 --- a/drivers/media/dvb/frontends/cx24123.h +++ b/drivers/media/dvb/frontends/cx24123.h | |||
@@ -32,7 +32,16 @@ struct cx24123_config | |||
32 | int (*set_ts_params)(struct dvb_frontend* fe, int is_punctured); | 32 | int (*set_ts_params)(struct dvb_frontend* fe, int is_punctured); |
33 | }; | 33 | }; |
34 | 34 | ||
35 | #if defined(CONFIG_DVB_CX24123) || defined(CONFIG_DVB_CX24123_MODULE) | ||
35 | extern struct dvb_frontend* cx24123_attach(const struct cx24123_config* config, | 36 | extern struct dvb_frontend* cx24123_attach(const struct cx24123_config* config, |
36 | struct i2c_adapter* i2c); | 37 | struct i2c_adapter* i2c); |
38 | #else | ||
39 | static inline struct dvb_frontend* cx24123_attach(const struct cx24123_config* config, | ||
40 | struct i2c_adapter* i2c) | ||
41 | { | ||
42 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); | ||
43 | return NULL; | ||
44 | } | ||
45 | #endif // CONFIG_DVB_CX24123 | ||
37 | 46 | ||
38 | #endif /* CX24123_H */ | 47 | #endif /* CX24123_H */ |
diff --git a/drivers/media/dvb/frontends/dib3000.h b/drivers/media/dvb/frontends/dib3000.h index ec927628d273..d2ab7479012a 100644 --- a/drivers/media/dvb/frontends/dib3000.h +++ b/drivers/media/dvb/frontends/dib3000.h | |||
@@ -41,9 +41,28 @@ struct dib_fe_xfer_ops | |||
41 | int (*tuner_pass_ctrl)(struct dvb_frontend *fe, int onoff, u8 pll_ctrl); | 41 | int (*tuner_pass_ctrl)(struct dvb_frontend *fe, int onoff, u8 pll_ctrl); |
42 | }; | 42 | }; |
43 | 43 | ||
44 | #if defined(CONFIG_DVB_DIB3000MB) || defined(CONFIG_DVB_DIB3000MB_MODULE) | ||
44 | extern struct dvb_frontend* dib3000mb_attach(const struct dib3000_config* config, | 45 | extern struct dvb_frontend* dib3000mb_attach(const struct dib3000_config* config, |
45 | struct i2c_adapter* i2c, struct dib_fe_xfer_ops *xfer_ops); | 46 | struct i2c_adapter* i2c, struct dib_fe_xfer_ops *xfer_ops); |
47 | #else | ||
48 | static inline struct dvb_frontend* dib3000mb_attach(const struct dib3000_config* config, | ||
49 | struct i2c_adapter* i2c, struct dib_fe_xfer_ops *xfer_ops) | ||
50 | { | ||
51 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); | ||
52 | return NULL; | ||
53 | } | ||
54 | #endif // CONFIG_DVB_DIB3000MB | ||
46 | 55 | ||
56 | #if defined(CONFIG_DVB_DIB3000MC) || defined(CONFIG_DVB_DIB3000MC_MODULE) | ||
47 | extern struct dvb_frontend* dib3000mc_attach(const struct dib3000_config* config, | 57 | extern struct dvb_frontend* dib3000mc_attach(const struct dib3000_config* config, |
48 | struct i2c_adapter* i2c, struct dib_fe_xfer_ops *xfer_ops); | 58 | struct i2c_adapter* i2c, struct dib_fe_xfer_ops *xfer_ops); |
59 | #else | ||
60 | static inline struct dvb_frontend* dib3000mc_attach(const struct dib3000_config* config, | ||
61 | struct i2c_adapter* i2c, struct dib_fe_xfer_ops *xfer_ops) | ||
62 | { | ||
63 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); | ||
64 | return NULL; | ||
65 | } | ||
66 | #endif // CONFIG_DVB_DIB3000MC | ||
67 | |||
49 | #endif // DIB3000_H | 68 | #endif // DIB3000_H |
diff --git a/drivers/media/dvb/frontends/isl6421.h b/drivers/media/dvb/frontends/isl6421.h index b5deacfe6d2f..1916e3eb2df3 100644 --- a/drivers/media/dvb/frontends/isl6421.h +++ b/drivers/media/dvb/frontends/isl6421.h | |||
@@ -39,8 +39,17 @@ | |||
39 | #define ISL6421_ISEL1 0x20 | 39 | #define ISL6421_ISEL1 0x20 |
40 | #define ISL6421_DCL 0x40 | 40 | #define ISL6421_DCL 0x40 |
41 | 41 | ||
42 | #if defined(CONFIG_DVB_ISL6421) || defined(CONFIG_DVB_ISL6421_MODULE) | ||
42 | /* override_set and override_clear control which system register bits (above) to always set & clear */ | 43 | /* override_set and override_clear control which system register bits (above) to always set & clear */ |
43 | extern struct dvb_frontend *isl6421_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c, u8 i2c_addr, | 44 | extern struct dvb_frontend *isl6421_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c, u8 i2c_addr, |
44 | u8 override_set, u8 override_clear); | 45 | u8 override_set, u8 override_clear); |
46 | #else | ||
47 | static inline struct dvb_frontend *isl6421_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c, u8 i2c_addr, | ||
48 | u8 override_set, u8 override_clear) | ||
49 | { | ||
50 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); | ||
51 | return NULL; | ||
52 | } | ||
53 | #endif // CONFIG_DVB_ISL6421 | ||
45 | 54 | ||
46 | #endif | 55 | #endif |
diff --git a/drivers/media/dvb/frontends/l64781.h b/drivers/media/dvb/frontends/l64781.h index 83b8bc210274..21ba4a230760 100644 --- a/drivers/media/dvb/frontends/l64781.h +++ b/drivers/media/dvb/frontends/l64781.h | |||
@@ -31,8 +31,16 @@ struct l64781_config | |||
31 | u8 demod_address; | 31 | u8 demod_address; |
32 | }; | 32 | }; |
33 | 33 | ||
34 | 34 | #if defined(CONFIG_DVB_L64781) || defined(CONFIG_DVB_L64781_MODULE) | |
35 | extern struct dvb_frontend* l64781_attach(const struct l64781_config* config, | 35 | extern struct dvb_frontend* l64781_attach(const struct l64781_config* config, |
36 | struct i2c_adapter* i2c); | 36 | struct i2c_adapter* i2c); |
37 | #else | ||
38 | static inline struct dvb_frontend* l64781_attach(const struct l64781_config* config, | ||
39 | struct i2c_adapter* i2c) | ||
40 | { | ||
41 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); | ||
42 | return NULL; | ||
43 | } | ||
44 | #endif // CONFIG_DVB_L64781 | ||
37 | 45 | ||
38 | #endif // L64781_H | 46 | #endif // L64781_H |
diff --git a/drivers/media/dvb/frontends/lgdt330x.h b/drivers/media/dvb/frontends/lgdt330x.h index bad903c6f0f8..3f96b485584c 100644 --- a/drivers/media/dvb/frontends/lgdt330x.h +++ b/drivers/media/dvb/frontends/lgdt330x.h | |||
@@ -52,8 +52,17 @@ struct lgdt330x_config | |||
52 | int clock_polarity_flip; | 52 | int clock_polarity_flip; |
53 | }; | 53 | }; |
54 | 54 | ||
55 | #if defined(CONFIG_DVB_LGDT330X) || defined(CONFIG_DVB_LGDT330X_MODULE) | ||
55 | extern struct dvb_frontend* lgdt330x_attach(const struct lgdt330x_config* config, | 56 | extern struct dvb_frontend* lgdt330x_attach(const struct lgdt330x_config* config, |
56 | struct i2c_adapter* i2c); | 57 | struct i2c_adapter* i2c); |
58 | #else | ||
59 | static inline struct dvb_frontend* lgdt330x_attach(const struct lgdt330x_config* config, | ||
60 | struct i2c_adapter* i2c) | ||
61 | { | ||
62 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); | ||
63 | return NULL; | ||
64 | } | ||
65 | #endif // CONFIG_DVB_LGDT330X | ||
57 | 66 | ||
58 | #endif /* LGDT330X_H */ | 67 | #endif /* LGDT330X_H */ |
59 | 68 | ||
diff --git a/drivers/media/dvb/frontends/lnbp21.h b/drivers/media/dvb/frontends/lnbp21.h index 8c2df67d81ee..1fe1dd179312 100644 --- a/drivers/media/dvb/frontends/lnbp21.h +++ b/drivers/media/dvb/frontends/lnbp21.h | |||
@@ -39,7 +39,15 @@ | |||
39 | 39 | ||
40 | #include <linux/dvb/frontend.h> | 40 | #include <linux/dvb/frontend.h> |
41 | 41 | ||
42 | #if defined(CONFIG_DVB_LNBP21) || defined(CONFIG_DVB_LNBP21_MODULE) | ||
42 | /* override_set and override_clear control which system register bits (above) to always set & clear */ | 43 | /* override_set and override_clear control which system register bits (above) to always set & clear */ |
43 | extern struct dvb_frontend *lnbp21_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c, u8 override_set, u8 override_clear); | 44 | extern struct dvb_frontend *lnbp21_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c, u8 override_set, u8 override_clear); |
45 | #else | ||
46 | static inline struct dvb_frontend *lnbp21_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c, u8 override_set, u8 override_clear) | ||
47 | { | ||
48 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); | ||
49 | return NULL; | ||
50 | } | ||
51 | #endif // CONFIG_DVB_LNBP21 | ||
44 | 52 | ||
45 | #endif | 53 | #endif // _LNBP21_H |
diff --git a/drivers/media/dvb/frontends/mt312.h b/drivers/media/dvb/frontends/mt312.h index 666a1bd1c244..7112fb4d58ac 100644 --- a/drivers/media/dvb/frontends/mt312.h +++ b/drivers/media/dvb/frontends/mt312.h | |||
@@ -34,8 +34,16 @@ struct mt312_config | |||
34 | u8 demod_address; | 34 | u8 demod_address; |
35 | }; | 35 | }; |
36 | 36 | ||
37 | #if defined(CONFIG_DVB_MT312) || defined(CONFIG_DVB_MT312_MODULE) | ||
37 | struct dvb_frontend* vp310_mt312_attach(const struct mt312_config* config, | 38 | struct dvb_frontend* vp310_mt312_attach(const struct mt312_config* config, |
38 | struct i2c_adapter* i2c); | 39 | struct i2c_adapter* i2c); |
39 | 40 | #else | |
41 | static inline struct dvb_frontend* vp310_mt312_attach(const struct mt312_config* config, | ||
42 | struct i2c_adapter* i2c) | ||
43 | { | ||
44 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); | ||
45 | return NULL; | ||
46 | } | ||
47 | #endif // CONFIG_DVB_MT312 | ||
40 | 48 | ||
41 | #endif // MT312_H | 49 | #endif // MT312_H |
diff --git a/drivers/media/dvb/frontends/mt352.h b/drivers/media/dvb/frontends/mt352.h index 0de2057f9d9c..0035c2e2d7c2 100644 --- a/drivers/media/dvb/frontends/mt352.h +++ b/drivers/media/dvb/frontends/mt352.h | |||
@@ -51,8 +51,17 @@ struct mt352_config | |||
51 | int (*demod_init)(struct dvb_frontend* fe); | 51 | int (*demod_init)(struct dvb_frontend* fe); |
52 | }; | 52 | }; |
53 | 53 | ||
54 | #if defined(CONFIG_DVB_MT352) || defined(CONFIG_DVB_MT352_MODULE) | ||
54 | extern struct dvb_frontend* mt352_attach(const struct mt352_config* config, | 55 | extern struct dvb_frontend* mt352_attach(const struct mt352_config* config, |
55 | struct i2c_adapter* i2c); | 56 | struct i2c_adapter* i2c); |
57 | #else | ||
58 | static inline struct dvb_frontend* mt352_attach(const struct mt352_config* config, | ||
59 | struct i2c_adapter* i2c) | ||
60 | { | ||
61 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); | ||
62 | return NULL; | ||
63 | } | ||
64 | #endif // CONFIG_DVB_MT352 | ||
56 | 65 | ||
57 | static inline int mt352_write(struct dvb_frontend *fe, u8 *buf, int len) { | 66 | static inline int mt352_write(struct dvb_frontend *fe, u8 *buf, int len) { |
58 | int r = 0; | 67 | int r = 0; |
diff --git a/drivers/media/dvb/frontends/nxt200x.h b/drivers/media/dvb/frontends/nxt200x.h index 34d61735845b..2eb220e98062 100644 --- a/drivers/media/dvb/frontends/nxt200x.h +++ b/drivers/media/dvb/frontends/nxt200x.h | |||
@@ -45,8 +45,17 @@ struct nxt200x_config | |||
45 | int (*set_ts_params)(struct dvb_frontend* fe, int is_punctured); | 45 | int (*set_ts_params)(struct dvb_frontend* fe, int is_punctured); |
46 | }; | 46 | }; |
47 | 47 | ||
48 | #if defined(CONFIG_DVB_NXT200X) || defined(CONFIG_DVB_NXT200X_MODULE) | ||
48 | extern struct dvb_frontend* nxt200x_attach(const struct nxt200x_config* config, | 49 | extern struct dvb_frontend* nxt200x_attach(const struct nxt200x_config* config, |
49 | struct i2c_adapter* i2c); | 50 | struct i2c_adapter* i2c); |
51 | #else | ||
52 | static inline struct dvb_frontend* nxt200x_attach(const struct nxt200x_config* config, | ||
53 | struct i2c_adapter* i2c) | ||
54 | { | ||
55 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); | ||
56 | return NULL; | ||
57 | } | ||
58 | #endif // CONFIG_DVB_NXT200X | ||
50 | 59 | ||
51 | #endif /* NXT200X_H */ | 60 | #endif /* NXT200X_H */ |
52 | 61 | ||
diff --git a/drivers/media/dvb/frontends/nxt6000.h b/drivers/media/dvb/frontends/nxt6000.h index 117031d11708..9397393a6bd1 100644 --- a/drivers/media/dvb/frontends/nxt6000.h +++ b/drivers/media/dvb/frontends/nxt6000.h | |||
@@ -33,7 +33,16 @@ struct nxt6000_config | |||
33 | u8 clock_inversion:1; | 33 | u8 clock_inversion:1; |
34 | }; | 34 | }; |
35 | 35 | ||
36 | #if defined(CONFIG_DVB_NXT6000) || defined(CONFIG_DVB_NXT6000_MODULE) | ||
36 | extern struct dvb_frontend* nxt6000_attach(const struct nxt6000_config* config, | 37 | extern struct dvb_frontend* nxt6000_attach(const struct nxt6000_config* config, |
37 | struct i2c_adapter* i2c); | 38 | struct i2c_adapter* i2c); |
39 | #else | ||
40 | static inline struct dvb_frontend* nxt6000_attach(const struct nxt6000_config* config, | ||
41 | struct i2c_adapter* i2c) | ||
42 | { | ||
43 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); | ||
44 | return NULL; | ||
45 | } | ||
46 | #endif // CONFIG_DVB_NXT6000 | ||
38 | 47 | ||
39 | #endif // NXT6000_H | 48 | #endif // NXT6000_H |
diff --git a/drivers/media/dvb/frontends/or51132.h b/drivers/media/dvb/frontends/or51132.h index 89658883abf5..9718be4fb835 100644 --- a/drivers/media/dvb/frontends/or51132.h +++ b/drivers/media/dvb/frontends/or51132.h | |||
@@ -34,8 +34,17 @@ struct or51132_config | |||
34 | int (*set_ts_params)(struct dvb_frontend* fe, int is_punctured); | 34 | int (*set_ts_params)(struct dvb_frontend* fe, int is_punctured); |
35 | }; | 35 | }; |
36 | 36 | ||
37 | #if defined(CONFIG_DVB_OR51132) || defined(CONFIG_DVB_OR51132_MODULE) | ||
37 | extern struct dvb_frontend* or51132_attach(const struct or51132_config* config, | 38 | extern struct dvb_frontend* or51132_attach(const struct or51132_config* config, |
38 | struct i2c_adapter* i2c); | 39 | struct i2c_adapter* i2c); |
40 | #else | ||
41 | static inline struct dvb_frontend* or51132_attach(const struct or51132_config* config, | ||
42 | struct i2c_adapter* i2c) | ||
43 | { | ||
44 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); | ||
45 | return NULL; | ||
46 | } | ||
47 | #endif // CONFIG_DVB_OR51132 | ||
39 | 48 | ||
40 | #endif // OR51132_H | 49 | #endif // OR51132_H |
41 | 50 | ||
diff --git a/drivers/media/dvb/frontends/or51211.h b/drivers/media/dvb/frontends/or51211.h index 13a5a3afbf8b..10a5419f9e00 100644 --- a/drivers/media/dvb/frontends/or51211.h +++ b/drivers/media/dvb/frontends/or51211.h | |||
@@ -37,8 +37,17 @@ struct or51211_config | |||
37 | void (*sleep)(struct dvb_frontend * fe); | 37 | void (*sleep)(struct dvb_frontend * fe); |
38 | }; | 38 | }; |
39 | 39 | ||
40 | #if defined(CONFIG_DVB_OR51211) || defined(CONFIG_DVB_OR51211_MODULE) | ||
40 | extern struct dvb_frontend* or51211_attach(const struct or51211_config* config, | 41 | extern struct dvb_frontend* or51211_attach(const struct or51211_config* config, |
41 | struct i2c_adapter* i2c); | 42 | struct i2c_adapter* i2c); |
43 | #else | ||
44 | static inline struct dvb_frontend* or51211_attach(const struct or51211_config* config, | ||
45 | struct i2c_adapter* i2c) | ||
46 | { | ||
47 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); | ||
48 | return NULL; | ||
49 | } | ||
50 | #endif // CONFIG_DVB_OR51211 | ||
42 | 51 | ||
43 | #endif // OR51211_H | 52 | #endif // OR51211_H |
44 | 53 | ||
diff --git a/drivers/media/dvb/frontends/s5h1420.h b/drivers/media/dvb/frontends/s5h1420.h index 4e39015fa67e..efc54d7f3c55 100644 --- a/drivers/media/dvb/frontends/s5h1420.h +++ b/drivers/media/dvb/frontends/s5h1420.h | |||
@@ -34,7 +34,16 @@ struct s5h1420_config | |||
34 | u8 invert:1; | 34 | u8 invert:1; |
35 | }; | 35 | }; |
36 | 36 | ||
37 | #if defined(CONFIG_DVB_S5H1420) || defined(CONFIG_DVB_S5H1420_MODULE) | ||
37 | extern struct dvb_frontend* s5h1420_attach(const struct s5h1420_config* config, | 38 | extern struct dvb_frontend* s5h1420_attach(const struct s5h1420_config* config, |
38 | struct i2c_adapter* i2c); | 39 | struct i2c_adapter* i2c); |
40 | #else | ||
41 | static inline struct dvb_frontend* s5h1420_attach(const struct s5h1420_config* config, | ||
42 | struct i2c_adapter* i2c) | ||
43 | { | ||
44 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); | ||
45 | return NULL; | ||
46 | } | ||
47 | #endif // CONFIG_DVB_S5H1420 | ||
39 | 48 | ||
40 | #endif // S5H1420_H | 49 | #endif // S5H1420_H |
diff --git a/drivers/media/dvb/frontends/sp8870.h b/drivers/media/dvb/frontends/sp8870.h index 93afbb969d6b..4cf27d3b10f2 100644 --- a/drivers/media/dvb/frontends/sp8870.h +++ b/drivers/media/dvb/frontends/sp8870.h | |||
@@ -35,7 +35,16 @@ struct sp8870_config | |||
35 | int (*request_firmware)(struct dvb_frontend* fe, const struct firmware **fw, char* name); | 35 | int (*request_firmware)(struct dvb_frontend* fe, const struct firmware **fw, char* name); |
36 | }; | 36 | }; |
37 | 37 | ||
38 | #if defined(CONFIG_DVB_SP8870) || defined(CONFIG_DVB_SP8870_MODULE) | ||
38 | extern struct dvb_frontend* sp8870_attach(const struct sp8870_config* config, | 39 | extern struct dvb_frontend* sp8870_attach(const struct sp8870_config* config, |
39 | struct i2c_adapter* i2c); | 40 | struct i2c_adapter* i2c); |
41 | #else | ||
42 | static inline struct dvb_frontend* sp8870_attach(const struct sp8870_config* config, | ||
43 | struct i2c_adapter* i2c) | ||
44 | { | ||
45 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); | ||
46 | return NULL; | ||
47 | } | ||
48 | #endif // CONFIG_DVB_SP8870 | ||
40 | 49 | ||
41 | #endif // SP8870_H | 50 | #endif // SP8870_H |
diff --git a/drivers/media/dvb/frontends/sp887x.h b/drivers/media/dvb/frontends/sp887x.h index c44b0ebdf1e2..cab7ea644dfa 100644 --- a/drivers/media/dvb/frontends/sp887x.h +++ b/drivers/media/dvb/frontends/sp887x.h | |||
@@ -17,7 +17,16 @@ struct sp887x_config | |||
17 | int (*request_firmware)(struct dvb_frontend* fe, const struct firmware **fw, char* name); | 17 | int (*request_firmware)(struct dvb_frontend* fe, const struct firmware **fw, char* name); |
18 | }; | 18 | }; |
19 | 19 | ||
20 | #if defined(CONFIG_DVB_SP887X) || defined(CONFIG_DVB_SP887X_MODULE) | ||
20 | extern struct dvb_frontend* sp887x_attach(const struct sp887x_config* config, | 21 | extern struct dvb_frontend* sp887x_attach(const struct sp887x_config* config, |
21 | struct i2c_adapter* i2c); | 22 | struct i2c_adapter* i2c); |
23 | #else | ||
24 | static inline struct dvb_frontend* sp887x_attach(const struct sp887x_config* config, | ||
25 | struct i2c_adapter* i2c) | ||
26 | { | ||
27 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); | ||
28 | return NULL; | ||
29 | } | ||
30 | #endif // CONFIG_DVB_SP887X | ||
22 | 31 | ||
23 | #endif // SP887X_H | 32 | #endif // SP887X_H |
diff --git a/drivers/media/dvb/frontends/stv0297.h b/drivers/media/dvb/frontends/stv0297.h index 1da5384fb985..760b80db43a5 100644 --- a/drivers/media/dvb/frontends/stv0297.h +++ b/drivers/media/dvb/frontends/stv0297.h | |||
@@ -42,7 +42,16 @@ struct stv0297_config | |||
42 | u8 stop_during_read:1; | 42 | u8 stop_during_read:1; |
43 | }; | 43 | }; |
44 | 44 | ||
45 | #if defined(CONFIG_DVB_STV0297) || defined(CONFIG_DVB_STV0297_MODULE) | ||
45 | extern struct dvb_frontend* stv0297_attach(const struct stv0297_config* config, | 46 | extern struct dvb_frontend* stv0297_attach(const struct stv0297_config* config, |
46 | struct i2c_adapter* i2c); | 47 | struct i2c_adapter* i2c); |
48 | #else | ||
49 | static inline struct dvb_frontend* stv0297_attach(const struct stv0297_config* config, | ||
50 | struct i2c_adapter* i2c) | ||
51 | { | ||
52 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); | ||
53 | return NULL; | ||
54 | } | ||
55 | #endif // CONFIG_DVB_STV0297 | ||
47 | 56 | ||
48 | #endif // STV0297_H | 57 | #endif // STV0297_H |
diff --git a/drivers/media/dvb/frontends/stv0299.h b/drivers/media/dvb/frontends/stv0299.h index d1abaf978a03..7ef25207081d 100644 --- a/drivers/media/dvb/frontends/stv0299.h +++ b/drivers/media/dvb/frontends/stv0299.h | |||
@@ -89,8 +89,17 @@ struct stv0299_config | |||
89 | int (*set_symbol_rate)(struct dvb_frontend* fe, u32 srate, u32 ratio); | 89 | int (*set_symbol_rate)(struct dvb_frontend* fe, u32 srate, u32 ratio); |
90 | }; | 90 | }; |
91 | 91 | ||
92 | #if defined(CONFIG_DVB_STV0299) || defined(CONFIG_DVB_STV0299_MODULE) | ||
92 | extern struct dvb_frontend* stv0299_attach(const struct stv0299_config* config, | 93 | extern struct dvb_frontend* stv0299_attach(const struct stv0299_config* config, |
93 | struct i2c_adapter* i2c); | 94 | struct i2c_adapter* i2c); |
95 | #else | ||
96 | static inline struct dvb_frontend* stv0299_attach(const struct stv0299_config* config, | ||
97 | struct i2c_adapter* i2c) | ||
98 | { | ||
99 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); | ||
100 | return NULL; | ||
101 | } | ||
102 | #endif // CONFIG_DVB_STV0299 | ||
94 | 103 | ||
95 | static inline int stv0299_writereg(struct dvb_frontend *fe, u8 reg, u8 val) { | 104 | static inline int stv0299_writereg(struct dvb_frontend *fe, u8 reg, u8 val) { |
96 | int r = 0; | 105 | int r = 0; |
diff --git a/drivers/media/dvb/frontends/tda10021.h b/drivers/media/dvb/frontends/tda10021.h index e77df5ed7807..d68ae20c8412 100644 --- a/drivers/media/dvb/frontends/tda10021.h +++ b/drivers/media/dvb/frontends/tda10021.h | |||
@@ -32,8 +32,17 @@ struct tda10021_config | |||
32 | u8 demod_address; | 32 | u8 demod_address; |
33 | }; | 33 | }; |
34 | 34 | ||
35 | #if defined(CONFIG_DVB_TDA10021) || defined(CONFIG_DVB_TDA10021_MODULE) | ||
35 | extern struct dvb_frontend* tda10021_attach(const struct tda10021_config* config, | 36 | extern struct dvb_frontend* tda10021_attach(const struct tda10021_config* config, |
36 | struct i2c_adapter* i2c, u8 pwm); | 37 | struct i2c_adapter* i2c, u8 pwm); |
38 | #else | ||
39 | static inline struct dvb_frontend* tda10021_attach(const struct tda10021_config* config, | ||
40 | struct i2c_adapter* i2c, u8 pwm) | ||
41 | { | ||
42 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); | ||
43 | return NULL; | ||
44 | } | ||
45 | #endif // CONFIG_DVB_TDA10021 | ||
37 | 46 | ||
38 | static inline int tda10021_writereg(struct dvb_frontend *fe, u8 reg, u8 val) { | 47 | static inline int tda10021_writereg(struct dvb_frontend *fe, u8 reg, u8 val) { |
39 | int r = 0; | 48 | int r = 0; |
diff --git a/drivers/media/dvb/frontends/tda1004x.h b/drivers/media/dvb/frontends/tda1004x.h index 7ffffa0c65f5..e28fca05734c 100644 --- a/drivers/media/dvb/frontends/tda1004x.h +++ b/drivers/media/dvb/frontends/tda1004x.h | |||
@@ -71,11 +71,26 @@ struct tda1004x_config | |||
71 | int (*request_firmware)(struct dvb_frontend* fe, const struct firmware **fw, char* name); | 71 | int (*request_firmware)(struct dvb_frontend* fe, const struct firmware **fw, char* name); |
72 | }; | 72 | }; |
73 | 73 | ||
74 | #if defined(CONFIG_DVB_TDA1004X) || defined(CONFIG_DVB_TDA1004X_MODULE) | ||
74 | extern struct dvb_frontend* tda10045_attach(const struct tda1004x_config* config, | 75 | extern struct dvb_frontend* tda10045_attach(const struct tda1004x_config* config, |
75 | struct i2c_adapter* i2c); | 76 | struct i2c_adapter* i2c); |
76 | 77 | ||
77 | extern struct dvb_frontend* tda10046_attach(const struct tda1004x_config* config, | 78 | extern struct dvb_frontend* tda10046_attach(const struct tda1004x_config* config, |
78 | struct i2c_adapter* i2c); | 79 | struct i2c_adapter* i2c); |
80 | #else | ||
81 | static inline struct dvb_frontend* tda10045_attach(const struct tda1004x_config* config, | ||
82 | struct i2c_adapter* i2c) | ||
83 | { | ||
84 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); | ||
85 | return NULL; | ||
86 | } | ||
87 | static inline struct dvb_frontend* tda10046_attach(const struct tda1004x_config* config, | ||
88 | struct i2c_adapter* i2c) | ||
89 | { | ||
90 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); | ||
91 | return NULL; | ||
92 | } | ||
93 | #endif // CONFIG_DVB_TDA1004X | ||
79 | 94 | ||
80 | static inline int tda1004x_writereg(struct dvb_frontend *fe, u8 reg, u8 val) { | 95 | static inline int tda1004x_writereg(struct dvb_frontend *fe, u8 reg, u8 val) { |
81 | int r = 0; | 96 | int r = 0; |
diff --git a/drivers/media/dvb/frontends/tda8083.h b/drivers/media/dvb/frontends/tda8083.h index e7a48f61ea2c..aae15bdce6eb 100644 --- a/drivers/media/dvb/frontends/tda8083.h +++ b/drivers/media/dvb/frontends/tda8083.h | |||
@@ -35,7 +35,16 @@ struct tda8083_config | |||
35 | u8 demod_address; | 35 | u8 demod_address; |
36 | }; | 36 | }; |
37 | 37 | ||
38 | #if defined(CONFIG_DVB_TDA8083) || defined(CONFIG_DVB_TDA8083_MODULE) | ||
38 | extern struct dvb_frontend* tda8083_attach(const struct tda8083_config* config, | 39 | extern struct dvb_frontend* tda8083_attach(const struct tda8083_config* config, |
39 | struct i2c_adapter* i2c); | 40 | struct i2c_adapter* i2c); |
41 | #else | ||
42 | static inline struct dvb_frontend* tda8083_attach(const struct tda8083_config* config, | ||
43 | struct i2c_adapter* i2c) | ||
44 | { | ||
45 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); | ||
46 | return NULL; | ||
47 | } | ||
48 | #endif // CONFIG_DVB_TDA8083 | ||
40 | 49 | ||
41 | #endif // TDA8083_H | 50 | #endif // TDA8083_H |
diff --git a/drivers/media/dvb/frontends/ves1820.h b/drivers/media/dvb/frontends/ves1820.h index 520f09522fbb..f0c9dded39d7 100644 --- a/drivers/media/dvb/frontends/ves1820.h +++ b/drivers/media/dvb/frontends/ves1820.h | |||
@@ -41,7 +41,16 @@ struct ves1820_config | |||
41 | u8 selagc:1; | 41 | u8 selagc:1; |
42 | }; | 42 | }; |
43 | 43 | ||
44 | #if defined(CONFIG_DVB_VES1820) || defined(CONFIG_DVB_VES1820_MODULE) | ||
44 | extern struct dvb_frontend* ves1820_attach(const struct ves1820_config* config, | 45 | extern struct dvb_frontend* ves1820_attach(const struct ves1820_config* config, |
45 | struct i2c_adapter* i2c, u8 pwm); | 46 | struct i2c_adapter* i2c, u8 pwm); |
47 | #else | ||
48 | static inline struct dvb_frontend* ves1820_attach(const struct ves1820_config* config, | ||
49 | struct i2c_adapter* i2c, u8 pwm) | ||
50 | { | ||
51 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); | ||
52 | return NULL; | ||
53 | } | ||
54 | #endif // CONFIG_DVB_VES1820 | ||
46 | 55 | ||
47 | #endif // VES1820_H | 56 | #endif // VES1820_H |
diff --git a/drivers/media/dvb/frontends/ves1x93.h b/drivers/media/dvb/frontends/ves1x93.h index ba88ae0855c9..395fed39b286 100644 --- a/drivers/media/dvb/frontends/ves1x93.h +++ b/drivers/media/dvb/frontends/ves1x93.h | |||
@@ -40,7 +40,16 @@ struct ves1x93_config | |||
40 | u8 invert_pwm:1; | 40 | u8 invert_pwm:1; |
41 | }; | 41 | }; |
42 | 42 | ||
43 | #if defined(CONFIG_DVB_VES1X93) || defined(CONFIG_DVB_VES1X93_MODULE) | ||
43 | extern struct dvb_frontend* ves1x93_attach(const struct ves1x93_config* config, | 44 | extern struct dvb_frontend* ves1x93_attach(const struct ves1x93_config* config, |
44 | struct i2c_adapter* i2c); | 45 | struct i2c_adapter* i2c); |
46 | #else | ||
47 | static inline struct dvb_frontend* ves1x93_attach(const struct ves1x93_config* config, | ||
48 | struct i2c_adapter* i2c) | ||
49 | { | ||
50 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); | ||
51 | return NULL; | ||
52 | } | ||
53 | #endif // CONFIG_DVB_VES1X93 | ||
45 | 54 | ||
46 | #endif // VES1X93_H | 55 | #endif // VES1X93_H |
diff --git a/drivers/media/dvb/frontends/zl10353.h b/drivers/media/dvb/frontends/zl10353.h index 15804b384e2d..6aec655d8814 100644 --- a/drivers/media/dvb/frontends/zl10353.h +++ b/drivers/media/dvb/frontends/zl10353.h | |||
@@ -33,7 +33,16 @@ struct zl10353_config | |||
33 | int no_tuner; | 33 | int no_tuner; |
34 | }; | 34 | }; |
35 | 35 | ||
36 | #if defined(CONFIG_DVB_ZL10353) || defined(CONFIG_DVB_ZL10353_MODULE) | ||
36 | extern struct dvb_frontend* zl10353_attach(const struct zl10353_config *config, | 37 | extern struct dvb_frontend* zl10353_attach(const struct zl10353_config *config, |
37 | struct i2c_adapter *i2c); | 38 | struct i2c_adapter *i2c); |
39 | #else | ||
40 | static inline struct dvb_frontend* zl10353_attach(const struct zl10353_config *config, | ||
41 | struct i2c_adapter *i2c) | ||
42 | { | ||
43 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); | ||
44 | return NULL; | ||
45 | } | ||
46 | #endif // CONFIG_DVB_ZL10353 | ||
38 | 47 | ||
39 | #endif /* ZL10353_H */ | 48 | #endif /* ZL10353_H */ |