config DVB_AV7110
	tristate "AV7110 cards"
	depends on DVB_CORE && PCI
	select FW_LOADER
	select VIDEO_DEV
	select VIDEO_SAA7146_VV
	select DVB_VES1820
	select DVB_VES1X93
	select DVB_STV0299
	select DVB_TDA8083
	select DVB_SP8870
	select DVB_STV0297
	select DVB_L64781
	help
	  Support for SAA7146 and AV7110 based DVB cards as produced
	  by Fujitsu-Siemens, Technotrend, Hauppauge and others.

	  This driver only supports the fullfeatured cards with
	  onboard MPEG2 decoder.

          This driver needs an external firmware. Please use the script
          "<kerneldir>/Documentation/dvb/get_dvb_firmware av7110" to
          download/extract it, and then copy it to /usr/lib/hotplug/firmware.

	  Say Y if you own such a card and want to use it.

config DVB_AV7110_FIRMWARE
	bool "Compile AV7110 firmware into the driver"
	depends on DVB_AV7110 && !STANDALONE
	default y if DVB_AV7110=y
	help
	  The AV7110 firmware is normally loaded by the firmware hotplug manager.
	  If you want to compile the firmware into the driver you need to say
	  Y here and provide the correct path of the firmware. You need this
	  option if you want to compile the whole driver statically into the
	  kernel.

	  All other people say N.

config DVB_AV7110_FIRMWARE_FILE
	string "Full pathname of av7110 firmware file"
	depends on DVB_AV7110_FIRMWARE
	default "/usr/lib/hotplug/firmware/dvb-ttpci-01.fw"

config DVB_AV7110_OSD
	bool "AV7110 OSD support"
	depends on DVB_AV7110
	default y if DVB_AV7110=y || DVB_AV7110=m
	help
	  The AV7110 firmware provides some code to generate an OnScreenDisplay
	  on the video output. This is kind of nonstandard and not guaranteed to
	  be maintained.

	  Anyway, some popular DVB software like VDR uses this OSD to render
	  its menus, so say Y if you want to use this software.

	  All other people say N.

config DVB_BUDGET
	tristate "Budget cards"
	depends on DVB_CORE && PCI
	select VIDEO_SAA7146
	select DVB_STV0299
	select DVB_VES1X93
	select DVB_VES1820
	select DVB_L64781
	select DVB_TDA8083
	select DVB_TDA10021
	select DVB_S5H1420
	help
	  Support for simple SAA7146 based DVB cards
	  (so called Budget- or Nova-PCI cards) without onboard
	  MPEG2 decoder.

	  Say Y if you own such a card and want to use it.

	  To compile this driver as a module, choose M here: the
	  module will be called budget.

config DVB_BUDGET_CI
	tristate "Budget cards with onboard CI connector"
	depends on DVB_CORE && PCI
	select VIDEO_SAA7146
	select DVB_STV0299
	select DVB_TDA1004X
	help
	  Support for simple SAA7146 based DVB cards
	  (so called Budget- or Nova-PCI cards) without onboard
	  MPEG2 decoder, but with onboard Common Interface connector.

	  Note: The Common Interface is not yet supported by this driver
	  due to lack of information from the vendor.

	  Say Y if you own such a card and want to use it.

	  To compile this driver as a module, choose M here: the
	  module will be called budget-ci.

config DVB_BUDGET_AV
	tristate "Budget cards with analog video inputs"
	depends on DVB_CORE && PCI
	select VIDEO_DEV
	select VIDEO_SAA7146_VV
	select DVB_STV0299
	help
	  Support for simple SAA7146 based DVB cards
	  (so called Budget- or Nova-PCI cards) without onboard
	  MPEG2 decoder, but with one or more analog video inputs.

	  Say Y if you own such a card and want to use it.

	  To compile this driver as a module, choose M here: the
	  module will be called budget-av.

config DVB_BUDGET_PATCH
	tristate "AV7110 cards with Budget Patch"
	depends on DVB_CORE && DVB_BUDGET
	select DVB_AV7110
	select DVB_STV0299
	select DVB_VES1X93
	select DVB_TDA8083
	help
	  Support for Budget Patch (full TS) modification on
	  SAA7146+AV7110 based cards (DVB-S cards). This
	  driver doesn't use onboard MPEG2 decoder. The
	  card is driven in Budget-only mode. Card is
	  required to have loaded firmware to tune properly.
	  Firmware can be loaded by insertion and removal of
	  standard AV7110 driver prior to loading this
	  driver.

	  Say Y if you own such a card and want to use it.

	  To compile this driver as a module, choose M here: the
	  module will be called budget-patch.
