#
# DVB device configuration
#

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 DVB Frontends"
	depends on DVB_CORE
source "drivers/media/dvb/frontends/Kconfig"

endif # DVB_CAPTURE_DRIVERS
