config DVB_DDBRIDGE
	tristate "Digital Devices bridge support"
	depends on DVB_CORE && PCI && I2C
	select DVB_LNBP21 if MEDIA_SUBDRV_AUTOSELECT
	select DVB_STV6110x if MEDIA_SUBDRV_AUTOSELECT
	select DVB_STV090x if MEDIA_SUBDRV_AUTOSELECT
	select DVB_DRXK if MEDIA_SUBDRV_AUTOSELECT
	select DVB_TDA18271C2DD if MEDIA_SUBDRV_AUTOSELECT
	select DVB_STV0367 if MEDIA_SUBDRV_AUTOSELECT
	select DVB_CXD2841ER if MEDIA_SUBDRV_AUTOSELECT
	select DVB_STV0910 if MEDIA_SUBDRV_AUTOSELECT
	select DVB_STV6111 if MEDIA_SUBDRV_AUTOSELECT
	select DVB_LNBH25 if MEDIA_SUBDRV_AUTOSELECT
	select MEDIA_TUNER_TDA18212 if MEDIA_SUBDRV_AUTOSELECT
	select DVB_MXL5XX if MEDIA_SUBDRV_AUTOSELECT
	---help---
	  Support for cards with the Digital Devices PCI express bridge:
	  - Octopus PCIe Bridge
	  - Octopus mini PCIe Bridge
	  - Octopus LE
	  - DuoFlex S2 Octopus
	  - DuoFlex CT Octopus
	  - cineS2(v6)
	  - CineCTv6 and DuoFlex CT (STV0367-based)
	  - CineCTv7 and DuoFlex CT2/C2T2/C2T2I (Sony CXD28xx-based)
	  - MaxA8 series
	  - CineS2 V7/V7A and DuoFlex S2 V4 (ST STV0910-based)
	  - Max S4/8

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

config DVB_DDBRIDGE_MSIENABLE
	bool "Enable Message Signaled Interrupts (MSI) per default (EXPERIMENTAL)"
	depends on DVB_DDBRIDGE
	depends on PCI_MSI
	default n
	---help---
	  Use PCI MSI (Message Signaled Interrupts) per default. Enabling this
	  might lead to I2C errors originating from the bridge in conjunction
	  with certain SATA controllers, requiring a reload of the ddbridge
	  module. MSI can still be disabled by passing msi=0 as option, as
	  this will just change the msi option default value.

	  If you're unsure, concerned about stability and don't want to pass
	  module options in case of troubles, say N.
