config MEDIA_ATTACH
	bool "Load and attach frontend and tuner driver modules as needed"
	depends on VIDEO_MEDIA
	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.

	  Also, tuner module will automatically load a tuner driver
	  when needed, for analog mode.

	  This saves several KBytes of memory.

	  Note: You will need module-init-tools v3.2 or later for this feature.

	  If unsure say Y.

config MEDIA_TUNER
	tristate
	default VIDEO_MEDIA && I2C
	depends on VIDEO_MEDIA && I2C
	select MEDIA_TUNER_XC2028 if !MEDIA_TUNER_CUSTOMIZE
	select MEDIA_TUNER_XC5000 if !MEDIA_TUNER_CUSTOMIZE
	select MEDIA_TUNER_MT20XX if !MEDIA_TUNER_CUSTOMIZE
	select MEDIA_TUNER_TDA8290 if !MEDIA_TUNER_CUSTOMIZE
	select MEDIA_TUNER_TEA5761 if !MEDIA_TUNER_CUSTOMIZE
	select MEDIA_TUNER_TEA5767 if !MEDIA_TUNER_CUSTOMIZE
	select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE
	select MEDIA_TUNER_TDA9887 if !MEDIA_TUNER_CUSTOMIZE

menuconfig MEDIA_TUNER_CUSTOMIZE
	bool "Customize analog and hybrid tuner modules to build"
	depends on MEDIA_TUNER
	default n
	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/DVB devices which cannot be tuned due to lack of
	  driver support

	  If unsure say N.

if MEDIA_TUNER_CUSTOMIZE

config MEDIA_TUNER_SIMPLE
	tristate "Simple tuner support"
	depends on VIDEO_MEDIA && I2C
	select MEDIA_TUNER_TDA9887
	default m if MEDIA_TUNER_CUSTOMIZE
	help
	  Say Y here to include support for various simple tuners.

config MEDIA_TUNER_TDA8290
	tristate "TDA 8290/8295 + 8275(a)/18271 tuner combo"
	depends on VIDEO_MEDIA && I2C
	select MEDIA_TUNER_TDA827X
	select MEDIA_TUNER_TDA18271
	default m if MEDIA_TUNER_CUSTOMIZE
	help
	  Say Y here to include support for Philips TDA8290+8275(a) tuner.

config MEDIA_TUNER_TDA827X
	tristate "Philips TDA827X silicon tuner"
	depends on VIDEO_MEDIA && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A DVB-T silicon tuner module. Say Y when you want to support this tuner.

config MEDIA_TUNER_TDA18271
	tristate "NXP TDA18271 silicon tuner"
	depends on VIDEO_MEDIA && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A silicon tuner module. Say Y when you want to support this tuner.

config MEDIA_TUNER_TDA9887
	tristate "TDA 9885/6/7 analog IF demodulator"
	depends on VIDEO_MEDIA && I2C
	default m if MEDIA_TUNER_CUSTOMIZE
	help
	  Say Y here to include support for Philips TDA9885/6/7
	  analog IF demodulator.

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

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

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

config MEDIA_TUNER_MT2060
	tristate "Microtune MT2060 silicon IF tuner"
	depends on VIDEO_MEDIA && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A driver for the silicon IF tuner MT2060 from Microtune.

config MEDIA_TUNER_MT2266
	tristate "Microtune MT2266 silicon tuner"
	depends on VIDEO_MEDIA && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A driver for the silicon baseband tuner MT2266 from Microtune.

config MEDIA_TUNER_MT2131
	tristate "Microtune MT2131 silicon tuner"
	depends on VIDEO_MEDIA && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A driver for the silicon baseband tuner MT2131 from Microtune.

config MEDIA_TUNER_QT1010
	tristate "Quantek QT1010 silicon tuner"
	depends on VIDEO_MEDIA && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A driver for the silicon tuner QT1010 from Quantek.

config MEDIA_TUNER_XC2028
	tristate "XCeive xc2028/xc3028 tuners"
	depends on VIDEO_MEDIA && I2C
	default m if MEDIA_TUNER_CUSTOMIZE
	help
	  Say Y here to include support for the xc2028/xc3028 tuners.

config MEDIA_TUNER_XC5000
	tristate "Xceive XC5000 silicon tuner"
	depends on VIDEO_MEDIA && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A driver for the silicon tuner XC5000 from Xceive.
	  This device is only used inside a SiP called togther with a
	  demodulator for now.

config MEDIA_TUNER_MXL5005S
	tristate "MaxLinear MSL5005S silicon tuner"
	depends on VIDEO_MEDIA && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A driver for the silicon tuner MXL5005S from MaxLinear.

config MEDIA_TUNER_MXL5007T
	tristate "MaxLinear MxL5007T silicon tuner"
	depends on VIDEO_MEDIA && I2C
	default m if DVB_FE_CUSTOMISE
	help
	  A driver for the silicon tuner MxL5007T from MaxLinear.

endif # MEDIA_TUNER_CUSTOMIZE
