#
# DVB device configuration
#

config DVB_MAX_ADAPTERS
	int "maximum number of DVB/ATSC adapters"
	depends on DVB_CORE
	default 8
	range 1 255
	help
	  Maximum number of DVB/ATSC adapters. Increasing this number
	  increases the memory consumption of the DVB subsystem even
	  if a much lower number of DVB/ATSC adapters is present.
	  Only values in the range 4-32 are tested.

	  If you are unsure about this, use the default value 8

config DVB_DYNAMIC_MINORS
	bool "Dynamic DVB minor allocation"
	depends on DVB_CORE
	default n
	help
	  If you say Y here, the DVB subsystem will use dynamic minor
	  allocation for any device that uses the DVB major number.
	  This means that you can have more than 4 of a single type
	  of device (like demuxes and frontends) per adapter, but udev
	  will be required to manage the device nodes.

	  If you are unsure about this, say N here.

menuconfig DVB_CAPTURE_DRIVERS
	bool "DVB/ATSC adapters"
	depends on DVB_CORE
	default y
	---help---
	  Say Y to select Digital TV adapters

if DVB_CAPTURE_DRIVERS && DVB_CORE

comment "Supported SAA7146 based PCI Adapters"
	depends on DVB_CORE && PCI && I2C
source "drivers/media/dvb/ttpci/Kconfig"

comment "Supported USB Adapters"
	depends on DVB_CORE && USB && I2C
source "drivers/media/dvb/dvb-usb/Kconfig"
source "drivers/media/dvb/ttusb-budget/Kconfig"
source "drivers/media/dvb/ttusb-dec/Kconfig"
source "drivers/media/dvb/siano/Kconfig"

comment "Supported FlexCopII (B2C2) Adapters"
	depends on DVB_CORE && (PCI || USB) && I2C
source "drivers/media/dvb/b2c2/Kconfig"

comment "Supported BT878 Adapters"
	depends on DVB_CORE && PCI && I2C
source "drivers/media/dvb/bt8xx/Kconfig"

comment "Supported Pluto2 Adapters"
	depends on DVB_CORE && PCI && I2C
source "drivers/media/dvb/pluto2/Kconfig"

comment "Supported SDMC DM1105 Adapters"
	depends on DVB_CORE && PCI && I2C
source "drivers/media/dvb/dm1105/Kconfig"

comment "Supported FireWire (IEEE 1394) Adapters"
	depends on DVB_CORE && IEEE1394
source "drivers/media/dvb/firewire/Kconfig"

comment "Supported Earthsoft PT1 Adapters"
	depends on DVB_CORE && PCI && I2C
source "drivers/media/dvb/pt1/Kconfig"

comment "Supported Mantis Adapters"
	depends on DVB_CORE && PCI && I2C
	source "drivers/media/dvb/mantis/Kconfig"

comment "Supported DVB Frontends"
	depends on DVB_CORE
source "drivers/media/dvb/frontends/Kconfig"

endif # DVB_CAPTURE_DRIVERS
