aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Krufky <mkrufky@linuxtv.org>2007-08-27 20:59:35 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2007-10-09 21:07:43 -0400
commitca805d57cf5ea7482ed3da28653f30621249ee45 (patch)
tree35e9051fb2e8be8c94c1b15a07c43f2303de3125
parent4adad287de82703fd504fdab7aebe760196bb786 (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>
-rw-r--r--drivers/media/Kconfig56
-rw-r--r--drivers/media/video/Kconfig9
-rw-r--r--drivers/media/video/Makefile12
-rw-r--r--drivers/media/video/mt20xx.h10
-rw-r--r--drivers/media/video/tda8290.h19
-rw-r--r--drivers/media/video/tea5761.h19
-rw-r--r--drivers/media/video/tea5767.h18
-rw-r--r--drivers/media/video/tuner-simple.h11
8 files changed, 141 insertions, 13 deletions
diff --git a/drivers/media/Kconfig b/drivers/media/Kconfig
index d9d033e07e1..3f8cfa873de 100644
--- a/drivers/media/Kconfig
+++ b/drivers/media/Kconfig
@@ -69,6 +69,62 @@ source "drivers/media/common/Kconfig"
69config VIDEO_TUNER 69config 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
78menuconfig 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
90if VIDEO_TUNER_CUSTOMIZE
91
92config 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
99config 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
106config 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
113config 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
120config 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
127endif # VIDEO_TUNER_CUSTOMIZE
72 128
73config VIDEO_BUF 129config VIDEO_BUF
74 depends on PCI 130 depends on PCI
diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
index 0e1d2ccc4e8..04756c342cb 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
508config 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
517config VIDEO_VINO 508config 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 113e525f6da..00699c36ec1 100644
--- a/drivers/media/video/Makefile
+++ b/drivers/media/video/Makefile
@@ -4,10 +4,7 @@
4 4
5zr36067-objs := zoran_procfs.o zoran_device.o \ 5zr36067-objs := zoran_procfs.o zoran_device.o \
6 zoran_driver.o zoran_card.o 6 zoran_driver.o zoran_card.o
7tuner-objs := tuner-core.o tuner-types.o tuner-simple.o \ 7tuner-objs := tuner-core.o tuner-types.o tda9887.o
8 mt20xx.o tda8290.o tea5767.o tda9887.o
9
10tuner-$(CONFIG_TUNER_TEA5761) += tea5761.o
11 8
12msp3400-objs := msp3400-driver.o msp3400-kthreads.o 9msp3400-objs := msp3400-driver.o msp3400-kthreads.o
13 10
@@ -83,6 +80,13 @@ obj-$(CONFIG_VIDEO_DPC) += dpc7146.o
83obj-$(CONFIG_TUNER_3036) += tuner-3036.o 80obj-$(CONFIG_TUNER_3036) += tuner-3036.o
84 81
85obj-$(CONFIG_VIDEO_TUNER) += tuner.o 82obj-$(CONFIG_VIDEO_TUNER) += tuner.o
83
84obj-$(CONFIG_TUNER_SIMPLE) += tuner-simple.o
85obj-$(CONFIG_TUNER_MT20XX) += mt20xx.o
86obj-$(CONFIG_TUNER_TDA8290) += tda8290.o
87obj-$(CONFIG_TUNER_TEA5767) += tea5767.o
88obj-$(CONFIG_TUNER_TEA5761) += tea5761.o
89
86obj-$(CONFIG_VIDEO_BUF) += video-buf.o 90obj-$(CONFIG_VIDEO_BUF) += video-buf.o
87obj-$(CONFIG_VIDEO_BUF_DVB) += video-buf-dvb.o 91obj-$(CONFIG_VIDEO_BUF_DVB) += video-buf-dvb.o
88obj-$(CONFIG_VIDEO_BTCX) += btcx-risc.o 92obj-$(CONFIG_VIDEO_BTCX) += btcx-risc.o
diff --git a/drivers/media/video/mt20xx.h b/drivers/media/video/mt20xx.h
index 877dbef891e..5e9c825d2e9 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))
23extern struct dvb_frontend *microtune_attach(struct dvb_frontend *fe, 24extern 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
28static 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 815ca1c78f8..107b24b05aa 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))
29extern int tda8290_probe(struct i2c_adapter* i2c_adap, u8 i2c_addr); 30extern int tda8290_probe(struct i2c_adapter* i2c_adap, u8 i2c_addr);
31
30extern struct dvb_frontend *tda8290_attach(struct dvb_frontend *fe, 32extern 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
37static 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
44static 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 f287c0291bf..73a03b42784 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))
23extern int tea5761_autodetection(struct i2c_adapter* i2c_adap, u8 i2c_addr); 24extern int tea5761_autodetection(struct i2c_adapter* i2c_adap, u8 i2c_addr);
25
24extern struct dvb_frontend *tea5761_attach(struct dvb_frontend *fe, 26extern 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
30static 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
38static 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 68e9263badf..5d78281adcc 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))
23extern int tea5767_autodetection(struct i2c_adapter* i2c_adap, u8 i2c_addr); 24extern int tea5767_autodetection(struct i2c_adapter* i2c_adap, u8 i2c_addr);
24 25
25extern struct dvb_frontend *tea5767_attach(struct dvb_frontend *fe, 26extern 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
30static 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
38static 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 75cd45b7145..9089939a8c0 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))
30extern struct dvb_frontend *simple_tuner_attach(struct dvb_frontend *fe, 31extern 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
36static 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__ */