diff options
author | Michael Krufky <mkrufky@linuxtv.org> | 2007-08-27 20:59:35 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2007-10-09 21:07:43 -0400 |
commit | ca805d57cf5ea7482ed3da28653f30621249ee45 (patch) | |
tree | 35e9051fb2e8be8c94c1b15a07c43f2303de3125 /drivers | |
parent | 4adad287de82703fd504fdab7aebe760196bb786 (diff) |
V4L/DVB (6134): tuner: alter build to produce separate modules
Break tuner.ko into separate modules. This was a quick change -
Tuner sub-drivers are still static-linked to tuner.ko, this will
change after using dvb_attach and removing the probing functions.
After this change, one can deselect undesired tuner sub-drivers via Kconfig.
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Acked-by: Hans Verkuil <hverkuil@xs4all.nl>
Acked-by: Mike Isely <isely@pobox.com>
Acked-by: Steven Toth <stoth@hauppauge.com>
Acked-by: Patrick Boettcher <pb@linuxtv.org>
Acked-by: Jarod Wilson <jwilson@redhat.com>
Acked-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/media/Kconfig | 56 | ||||
-rw-r--r-- | drivers/media/video/Kconfig | 9 | ||||
-rw-r--r-- | drivers/media/video/Makefile | 12 | ||||
-rw-r--r-- | drivers/media/video/mt20xx.h | 10 | ||||
-rw-r--r-- | drivers/media/video/tda8290.h | 19 | ||||
-rw-r--r-- | drivers/media/video/tea5761.h | 19 | ||||
-rw-r--r-- | drivers/media/video/tea5767.h | 18 | ||||
-rw-r--r-- | drivers/media/video/tuner-simple.h | 11 |
8 files changed, 141 insertions, 13 deletions
diff --git a/drivers/media/Kconfig b/drivers/media/Kconfig index d9d033e07e19..3f8cfa873de5 100644 --- a/drivers/media/Kconfig +++ b/drivers/media/Kconfig | |||
@@ -69,6 +69,62 @@ source "drivers/media/common/Kconfig" | |||
69 | config VIDEO_TUNER | 69 | config VIDEO_TUNER |
70 | tristate | 70 | tristate |
71 | depends on I2C | 71 | depends on I2C |
72 | select TUNER_MT20XX if !VIDEO_TUNER_CUSTOMIZE | ||
73 | select TUNER_TDA8290 if !VIDEO_TUNER_CUSTOMIZE | ||
74 | select TUNER_TEA5761 if !VIDEO_TUNER_CUSTOMIZE | ||
75 | select TUNER_TEA5767 if !VIDEO_TUNER_CUSTOMIZE | ||
76 | select TUNER_SIMPLE if !VIDEO_TUNER_CUSTOMIZE | ||
77 | |||
78 | menuconfig VIDEO_TUNER_CUSTOMIZE | ||
79 | bool "Customize analog tuner modules to build" | ||
80 | depends on VIDEO_TUNER | ||
81 | help | ||
82 | This allows the user to deselect tuner drivers unnecessary | ||
83 | for their hardware from the build. Use this option with care | ||
84 | as deselecting tuner drivers which are in fact necessary will | ||
85 | result in V4L devices which cannot be tuned due to lack of | ||
86 | driver support | ||
87 | |||
88 | If unsure say N. | ||
89 | |||
90 | if VIDEO_TUNER_CUSTOMIZE | ||
91 | |||
92 | config TUNER_MT20XX | ||
93 | tristate "Microtune 2032 / 2050 tuners" | ||
94 | depends on I2C | ||
95 | default m if VIDEO_TUNER_CUSTOMIZE | ||
96 | help | ||
97 | Say Y here to include support for the MT2032 / MT2050 tuner. | ||
98 | |||
99 | config TUNER_TDA8290 | ||
100 | tristate "TDA 8290+8275(a) tuner combo" | ||
101 | depends on I2C | ||
102 | default m if VIDEO_TUNER_CUSTOMIZE | ||
103 | help | ||
104 | Say Y here to include support for Philips TDA8290+8275(a) tuner. | ||
105 | |||
106 | config TUNER_TEA5761 | ||
107 | tristate "TEA 5761 radio tuner (EXPERIMENTAL)" | ||
108 | depends on I2C && EXPERIMENTAL | ||
109 | default m if VIDEO_TUNER_CUSTOMIZE | ||
110 | help | ||
111 | Say Y here to include support for the Philips TEA5761 radio tuner. | ||
112 | |||
113 | config TUNER_TEA5767 | ||
114 | tristate "TEA 5767 radio tuner" | ||
115 | depends on I2C | ||
116 | default m if VIDEO_TUNER_CUSTOMIZE | ||
117 | help | ||
118 | Say Y here to include support for the Philips TEA5767 radio tuner. | ||
119 | |||
120 | config TUNER_SIMPLE | ||
121 | tristate "Simple tuner support" | ||
122 | depends on I2C | ||
123 | default m if VIDEO_TUNER_CUSTOMIZE | ||
124 | help | ||
125 | Say Y here to include support for various simple tuners. | ||
126 | |||
127 | endif # VIDEO_TUNER_CUSTOMIZE | ||
72 | 128 | ||
73 | config VIDEO_BUF | 129 | config VIDEO_BUF |
74 | depends on PCI | 130 | depends on PCI |
diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig index 0e1d2ccc4e81..04756c342cba 100644 --- a/drivers/media/video/Kconfig +++ b/drivers/media/video/Kconfig | |||
@@ -505,15 +505,6 @@ config TUNER_3036 | |||
505 | Say Y here to include support for Philips SAB3036 compatible tuners. | 505 | Say Y here to include support for Philips SAB3036 compatible tuners. |
506 | If in doubt, say N. | 506 | If in doubt, say N. |
507 | 507 | ||
508 | config TUNER_TEA5761 | ||
509 | bool "TEA 5761 radio tuner (EXPERIMENTAL)" | ||
510 | depends on EXPERIMENTAL | ||
511 | depends on I2C | ||
512 | select VIDEO_TUNER | ||
513 | help | ||
514 | Say Y here to include support for Philips TEA5761 radio tuner. | ||
515 | If in doubt, say N. | ||
516 | |||
517 | config VIDEO_VINO | 508 | config VIDEO_VINO |
518 | tristate "SGI Vino Video For Linux (EXPERIMENTAL)" | 509 | tristate "SGI Vino Video For Linux (EXPERIMENTAL)" |
519 | depends on I2C && SGI_IP22 && EXPERIMENTAL && VIDEO_V4L2 | 510 | depends on I2C && SGI_IP22 && EXPERIMENTAL && VIDEO_V4L2 |
diff --git a/drivers/media/video/Makefile b/drivers/media/video/Makefile index 113e525f6dab..00699c36ec1a 100644 --- a/drivers/media/video/Makefile +++ b/drivers/media/video/Makefile | |||
@@ -4,10 +4,7 @@ | |||
4 | 4 | ||
5 | zr36067-objs := zoran_procfs.o zoran_device.o \ | 5 | zr36067-objs := zoran_procfs.o zoran_device.o \ |
6 | zoran_driver.o zoran_card.o | 6 | zoran_driver.o zoran_card.o |
7 | tuner-objs := tuner-core.o tuner-types.o tuner-simple.o \ | 7 | tuner-objs := tuner-core.o tuner-types.o tda9887.o |
8 | mt20xx.o tda8290.o tea5767.o tda9887.o | ||
9 | |||
10 | tuner-$(CONFIG_TUNER_TEA5761) += tea5761.o | ||
11 | 8 | ||
12 | msp3400-objs := msp3400-driver.o msp3400-kthreads.o | 9 | msp3400-objs := msp3400-driver.o msp3400-kthreads.o |
13 | 10 | ||
@@ -83,6 +80,13 @@ obj-$(CONFIG_VIDEO_DPC) += dpc7146.o | |||
83 | obj-$(CONFIG_TUNER_3036) += tuner-3036.o | 80 | obj-$(CONFIG_TUNER_3036) += tuner-3036.o |
84 | 81 | ||
85 | obj-$(CONFIG_VIDEO_TUNER) += tuner.o | 82 | obj-$(CONFIG_VIDEO_TUNER) += tuner.o |
83 | |||
84 | obj-$(CONFIG_TUNER_SIMPLE) += tuner-simple.o | ||
85 | obj-$(CONFIG_TUNER_MT20XX) += mt20xx.o | ||
86 | obj-$(CONFIG_TUNER_TDA8290) += tda8290.o | ||
87 | obj-$(CONFIG_TUNER_TEA5767) += tea5767.o | ||
88 | obj-$(CONFIG_TUNER_TEA5761) += tea5761.o | ||
89 | |||
86 | obj-$(CONFIG_VIDEO_BUF) += video-buf.o | 90 | obj-$(CONFIG_VIDEO_BUF) += video-buf.o |
87 | obj-$(CONFIG_VIDEO_BUF_DVB) += video-buf-dvb.o | 91 | obj-$(CONFIG_VIDEO_BUF_DVB) += video-buf-dvb.o |
88 | obj-$(CONFIG_VIDEO_BTCX) += btcx-risc.o | 92 | obj-$(CONFIG_VIDEO_BTCX) += btcx-risc.o |
diff --git a/drivers/media/video/mt20xx.h b/drivers/media/video/mt20xx.h index 877dbef891ea..5e9c825d2e91 100644 --- a/drivers/media/video/mt20xx.h +++ b/drivers/media/video/mt20xx.h | |||
@@ -20,8 +20,18 @@ | |||
20 | #include <linux/i2c.h> | 20 | #include <linux/i2c.h> |
21 | #include "dvb_frontend.h" | 21 | #include "dvb_frontend.h" |
22 | 22 | ||
23 | #if defined(CONFIG_TUNER_MT20XX) || (defined(CONFIG_TUNER_MT20XX_MODULE) && defined(MODULE)) | ||
23 | extern struct dvb_frontend *microtune_attach(struct dvb_frontend *fe, | 24 | extern struct dvb_frontend *microtune_attach(struct dvb_frontend *fe, |
24 | struct i2c_adapter* i2c_adap, | 25 | struct i2c_adapter* i2c_adap, |
25 | u8 i2c_addr); | 26 | u8 i2c_addr); |
27 | #else | ||
28 | static inline struct dvb_frontend *microtune_attach(struct dvb_frontend *fe, | ||
29 | struct i2c_adapter* i2c_adap, | ||
30 | u8 i2c_addr) | ||
31 | { | ||
32 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); | ||
33 | return NULL; | ||
34 | } | ||
35 | #endif | ||
26 | 36 | ||
27 | #endif /* __MT20XX_H__ */ | 37 | #endif /* __MT20XX_H__ */ |
diff --git a/drivers/media/video/tda8290.h b/drivers/media/video/tda8290.h index 815ca1c78f80..107b24b05aa1 100644 --- a/drivers/media/video/tda8290.h +++ b/drivers/media/video/tda8290.h | |||
@@ -26,10 +26,29 @@ struct tda8290_config | |||
26 | int (*tuner_callback) (void *dev, int command,int arg); | 26 | int (*tuner_callback) (void *dev, int command,int arg); |
27 | }; | 27 | }; |
28 | 28 | ||
29 | #if defined(CONFIG_TUNER_TDA8290) || (defined(CONFIG_TUNER_TDA8290_MODULE) && defined(MODULE)) | ||
29 | extern int tda8290_probe(struct i2c_adapter* i2c_adap, u8 i2c_addr); | 30 | extern int tda8290_probe(struct i2c_adapter* i2c_adap, u8 i2c_addr); |
31 | |||
30 | extern struct dvb_frontend *tda8290_attach(struct dvb_frontend *fe, | 32 | extern struct dvb_frontend *tda8290_attach(struct dvb_frontend *fe, |
31 | struct i2c_adapter* i2c_adap, | 33 | struct i2c_adapter* i2c_adap, |
32 | u8 i2c_addr, | 34 | u8 i2c_addr, |
33 | struct tda8290_config *cfg); | 35 | struct tda8290_config *cfg); |
36 | #else | ||
37 | static inline int tda8290_probe(struct i2c_adapter* i2c_adap, u8 i2c_addr) | ||
38 | { | ||
39 | printk(KERN_INFO "%s: not probed - driver disabled by Kconfig\n", | ||
40 | __FUNCTION__); | ||
41 | return -EINVAL; | ||
42 | } | ||
43 | |||
44 | static inline struct dvb_frontend *tda8290_attach(struct dvb_frontend *fe, | ||
45 | struct i2c_adapter* i2c_adap, | ||
46 | u8 i2c_addr, | ||
47 | struct tda8290_config *cfg) | ||
48 | { | ||
49 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); | ||
50 | return NULL; | ||
51 | } | ||
52 | #endif | ||
34 | 53 | ||
35 | #endif /* __TDA8290_H__ */ | 54 | #endif /* __TDA8290_H__ */ |
diff --git a/drivers/media/video/tea5761.h b/drivers/media/video/tea5761.h index f287c0291bff..73a03b427843 100644 --- a/drivers/media/video/tea5761.h +++ b/drivers/media/video/tea5761.h | |||
@@ -20,9 +20,28 @@ | |||
20 | #include <linux/i2c.h> | 20 | #include <linux/i2c.h> |
21 | #include "dvb_frontend.h" | 21 | #include "dvb_frontend.h" |
22 | 22 | ||
23 | #if defined(CONFIG_TUNER_TEA5761) || (defined(CONFIG_TUNER_TEA5761_MODULE) && defined(MODULE)) | ||
23 | extern int tea5761_autodetection(struct i2c_adapter* i2c_adap, u8 i2c_addr); | 24 | extern int tea5761_autodetection(struct i2c_adapter* i2c_adap, u8 i2c_addr); |
25 | |||
24 | extern struct dvb_frontend *tea5761_attach(struct dvb_frontend *fe, | 26 | extern struct dvb_frontend *tea5761_attach(struct dvb_frontend *fe, |
25 | struct i2c_adapter* i2c_adap, | 27 | struct i2c_adapter* i2c_adap, |
26 | u8 i2c_addr); | 28 | u8 i2c_addr); |
29 | #else | ||
30 | static inline int tea5761_autodetection(struct i2c_adapter* i2c_adap, | ||
31 | u8 i2c_addr) | ||
32 | { | ||
33 | printk(KERN_INFO "%s: not probed - driver disabled by Kconfig\n", | ||
34 | __FUNCTION__); | ||
35 | return -EINVAL; | ||
36 | } | ||
37 | |||
38 | static inline struct dvb_frontend *tea5761_attach(struct dvb_frontend *fe, | ||
39 | struct i2c_adapter* i2c_adap, | ||
40 | u8 i2c_addr) | ||
41 | { | ||
42 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); | ||
43 | return NULL; | ||
44 | } | ||
45 | #endif | ||
27 | 46 | ||
28 | #endif /* __TEA5761_H__ */ | 47 | #endif /* __TEA5761_H__ */ |
diff --git a/drivers/media/video/tea5767.h b/drivers/media/video/tea5767.h index 68e9263badfd..5d78281adcc2 100644 --- a/drivers/media/video/tea5767.h +++ b/drivers/media/video/tea5767.h | |||
@@ -20,10 +20,28 @@ | |||
20 | #include <linux/i2c.h> | 20 | #include <linux/i2c.h> |
21 | #include "dvb_frontend.h" | 21 | #include "dvb_frontend.h" |
22 | 22 | ||
23 | #if defined(CONFIG_TUNER_TEA5767) || (defined(CONFIG_TUNER_TEA5767_MODULE) && defined(MODULE)) | ||
23 | extern int tea5767_autodetection(struct i2c_adapter* i2c_adap, u8 i2c_addr); | 24 | extern int tea5767_autodetection(struct i2c_adapter* i2c_adap, u8 i2c_addr); |
24 | 25 | ||
25 | extern struct dvb_frontend *tea5767_attach(struct dvb_frontend *fe, | 26 | extern struct dvb_frontend *tea5767_attach(struct dvb_frontend *fe, |
26 | struct i2c_adapter* i2c_adap, | 27 | struct i2c_adapter* i2c_adap, |
27 | u8 i2c_addr); | 28 | u8 i2c_addr); |
29 | #else | ||
30 | static inline int tea5767_autodetection(struct i2c_adapter* i2c_adap, | ||
31 | u8 i2c_addr) | ||
32 | { | ||
33 | printk(KERN_INFO "%s: not probed - driver disabled by Kconfig\n", | ||
34 | __FUNCTION__); | ||
35 | return -EINVAL; | ||
36 | } | ||
37 | |||
38 | static inline struct dvb_frontend *tea5767_attach(struct dvb_frontend *fe, | ||
39 | struct i2c_adapter* i2c_adap, | ||
40 | u8 i2c_addr) | ||
41 | { | ||
42 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); | ||
43 | return NULL; | ||
44 | } | ||
45 | #endif | ||
28 | 46 | ||
29 | #endif /* __TEA5767_H__ */ | 47 | #endif /* __TEA5767_H__ */ |
diff --git a/drivers/media/video/tuner-simple.h b/drivers/media/video/tuner-simple.h index 75cd45b7145d..9089939a8c02 100644 --- a/drivers/media/video/tuner-simple.h +++ b/drivers/media/video/tuner-simple.h | |||
@@ -27,9 +27,20 @@ struct simple_tuner_config | |||
27 | struct tunertype *tun; | 27 | struct tunertype *tun; |
28 | }; | 28 | }; |
29 | 29 | ||
30 | #if defined(CONFIG_TUNER_SIMPLE) || (defined(CONFIG_TUNER_SIMPLE_MODULE) && defined(MODULE)) | ||
30 | extern struct dvb_frontend *simple_tuner_attach(struct dvb_frontend *fe, | 31 | extern struct dvb_frontend *simple_tuner_attach(struct dvb_frontend *fe, |
31 | struct i2c_adapter *i2c_adap, | 32 | struct i2c_adapter *i2c_adap, |
32 | u8 i2c_addr, | 33 | u8 i2c_addr, |
33 | struct simple_tuner_config *cfg); | 34 | struct simple_tuner_config *cfg); |
35 | #else | ||
36 | static inline struct dvb_frontend *simple_tuner_attach(struct dvb_frontend *fe, | ||
37 | struct i2c_adapter *i2c_adap, | ||
38 | u8 i2c_addr, | ||
39 | struct simple_tuner_config *cfg) | ||
40 | { | ||
41 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); | ||
42 | return NULL; | ||
43 | } | ||
44 | #endif | ||
34 | 45 | ||
35 | #endif /* __TUNER_SIMPLE_H__ */ | 46 | #endif /* __TUNER_SIMPLE_H__ */ |