Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ca805d57 authored by Michael Krufky's avatar Michael Krufky Committed by Mauro Carvalho Chehab
Browse files

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: default avatarMichael Krufky <mkrufky@linuxtv.org>
Acked-by: default avatarHans Verkuil <hverkuil@xs4all.nl>
Acked-by: default avatarMike Isely <isely@pobox.com>
Acked-by: default avatarSteven Toth <stoth@hauppauge.com>
Acked-by: default avatarPatrick Boettcher <pb@linuxtv.org>
Acked-by: default avatarJarod Wilson <jwilson@redhat.com>
Acked-by: default avatarTrent Piepho <xyzzy@speakeasy.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent 4adad287
Loading
Loading
Loading
Loading
+56 −0
Original line number Diff line number Diff line
@@ -69,6 +69,62 @@ source "drivers/media/common/Kconfig"
config VIDEO_TUNER
	tristate
	depends on I2C
	select TUNER_MT20XX if !VIDEO_TUNER_CUSTOMIZE
	select TUNER_TDA8290 if !VIDEO_TUNER_CUSTOMIZE
	select TUNER_TEA5761 if !VIDEO_TUNER_CUSTOMIZE
	select TUNER_TEA5767 if !VIDEO_TUNER_CUSTOMIZE
	select TUNER_SIMPLE if !VIDEO_TUNER_CUSTOMIZE

menuconfig VIDEO_TUNER_CUSTOMIZE
	bool "Customize analog tuner modules to build"
	depends on VIDEO_TUNER
	help
	  This allows the user to deselect tuner drivers unnecessary
	  for their hardware from the build. Use this option with care
	  as deselecting tuner drivers which are in fact necessary will
	  result in V4L devices which cannot be tuned due to lack of
	  driver support

	  If unsure say N.

if VIDEO_TUNER_CUSTOMIZE

config TUNER_MT20XX
	tristate "Microtune 2032 / 2050 tuners"
	depends on I2C
	default m if VIDEO_TUNER_CUSTOMIZE
	help
	  Say Y here to include support for the MT2032 / MT2050 tuner.

config TUNER_TDA8290
	tristate "TDA 8290+8275(a) tuner combo"
	depends on I2C
	default m if VIDEO_TUNER_CUSTOMIZE
	help
	  Say Y here to include support for Philips TDA8290+8275(a) tuner.

config TUNER_TEA5761
	tristate "TEA 5761 radio tuner (EXPERIMENTAL)"
	depends on I2C && EXPERIMENTAL
	default m if VIDEO_TUNER_CUSTOMIZE
	help
	  Say Y here to include support for the Philips TEA5761 radio tuner.

config TUNER_TEA5767
	tristate "TEA 5767 radio tuner"
	depends on I2C
	default m if VIDEO_TUNER_CUSTOMIZE
	help
	  Say Y here to include support for the Philips TEA5767 radio tuner.

config TUNER_SIMPLE
	tristate "Simple tuner support"
	depends on I2C
	default m if VIDEO_TUNER_CUSTOMIZE
	help
	  Say Y here to include support for various simple tuners.

endif # VIDEO_TUNER_CUSTOMIZE

config VIDEO_BUF
	depends on PCI
+0 −9
Original line number Diff line number Diff line
@@ -505,15 +505,6 @@ config TUNER_3036
	  Say Y here to include support for Philips SAB3036 compatible tuners.
	  If in doubt, say N.

config TUNER_TEA5761
	bool "TEA 5761 radio tuner (EXPERIMENTAL)"
	depends on EXPERIMENTAL
	depends on I2C
	select VIDEO_TUNER
	help
	  Say Y here to include support for Philips TEA5761 radio tuner.
	  If in doubt, say N.

config VIDEO_VINO
	tristate "SGI Vino Video For Linux (EXPERIMENTAL)"
	depends on I2C && SGI_IP22 && EXPERIMENTAL && VIDEO_V4L2
+8 −4
Original line number Diff line number Diff line
@@ -4,10 +4,7 @@

zr36067-objs	:=	zoran_procfs.o zoran_device.o \
			zoran_driver.o zoran_card.o
tuner-objs	:=	tuner-core.o tuner-types.o tuner-simple.o \
			mt20xx.o tda8290.o tea5767.o tda9887.o

tuner-$(CONFIG_TUNER_TEA5761)	+= tea5761.o
tuner-objs	:=	tuner-core.o tuner-types.o tda9887.o

msp3400-objs	:=	msp3400-driver.o msp3400-kthreads.o

@@ -83,6 +80,13 @@ obj-$(CONFIG_VIDEO_DPC) += dpc7146.o
obj-$(CONFIG_TUNER_3036) += tuner-3036.o

obj-$(CONFIG_VIDEO_TUNER) += tuner.o

obj-$(CONFIG_TUNER_SIMPLE) += tuner-simple.o
obj-$(CONFIG_TUNER_MT20XX) += mt20xx.o
obj-$(CONFIG_TUNER_TDA8290) += tda8290.o
obj-$(CONFIG_TUNER_TEA5767) += tea5767.o
obj-$(CONFIG_TUNER_TEA5761) += tea5761.o

obj-$(CONFIG_VIDEO_BUF)   += video-buf.o
obj-$(CONFIG_VIDEO_BUF_DVB) += video-buf-dvb.o
obj-$(CONFIG_VIDEO_BTCX)  += btcx-risc.o
+10 −0
Original line number Diff line number Diff line
@@ -20,8 +20,18 @@
#include <linux/i2c.h>
#include "dvb_frontend.h"

#if defined(CONFIG_TUNER_MT20XX) || (defined(CONFIG_TUNER_MT20XX_MODULE) && defined(MODULE))
extern struct dvb_frontend *microtune_attach(struct dvb_frontend *fe,
					     struct i2c_adapter* i2c_adap,
					     u8 i2c_addr);
#else
static inline struct dvb_frontend *microtune_attach(struct dvb_frontend *fe,
					     struct i2c_adapter* i2c_adap,
					     u8 i2c_addr)
{
	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
	return NULL;
}
#endif

#endif /* __MT20XX_H__ */
+19 −0
Original line number Diff line number Diff line
@@ -26,10 +26,29 @@ struct tda8290_config
	int (*tuner_callback) (void *dev, int command,int arg);
};

#if defined(CONFIG_TUNER_TDA8290) || (defined(CONFIG_TUNER_TDA8290_MODULE) && defined(MODULE))
extern int tda8290_probe(struct i2c_adapter* i2c_adap, u8 i2c_addr);

extern struct dvb_frontend *tda8290_attach(struct dvb_frontend *fe,
					   struct i2c_adapter* i2c_adap,
					   u8 i2c_addr,
					   struct tda8290_config *cfg);
#else
static inline int tda8290_probe(struct i2c_adapter* i2c_adap, u8 i2c_addr)
{
	printk(KERN_INFO "%s: not probed - driver disabled by Kconfig\n",
	       __FUNCTION__);
	return -EINVAL;
}

static inline struct dvb_frontend *tda8290_attach(struct dvb_frontend *fe,
						  struct i2c_adapter* i2c_adap,
						  u8 i2c_addr,
						  struct tda8290_config *cfg)
{
	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
	return NULL;
}
#endif

#endif /* __TDA8290_H__ */
Loading