config VIDEO_BT848
	tristate "BT848 Video For Linux"
	depends on m
	depends on VIDEO_DEV && PCI && I2C && VIDEO_V4L2
	depends on I2C_ALGOBIT
	select VIDEO_BTCX
	select VIDEOBUF_DMA_SG
	depends on RC_CORE
	select VIDEO_TUNER
	select VIDEO_TVEEPROM
	select VIDEO_MSP3400 if MEDIA_SUBDRV_AUTOSELECT
	select VIDEO_TVAUDIO if MEDIA_SUBDRV_AUTOSELECT
	select VIDEO_TDA7432 if MEDIA_SUBDRV_AUTOSELECT
	select VIDEO_SAA6588 if MEDIA_SUBDRV_AUTOSELECT
	---help---
	  Support for BT848 based frame grabber/overlay boards. This includes
	  the Miro, Hauppauge and STB boards. Please read the material in
	  <file:Documentation/video4linux/bttv/> for more information.

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

config DVB_BT8XX
	tristate "DVB/ATSC Support for bt878 based TV cards"
	depends on m
	depends on DVB_CORE && PCI && I2C && VIDEO_BT848
	select DVB_MT352 if MEDIA_SUBDRV_AUTOSELECT
	select DVB_SP887X if MEDIA_SUBDRV_AUTOSELECT
	select DVB_NXT6000 if MEDIA_SUBDRV_AUTOSELECT
	select DVB_CX24110 if MEDIA_SUBDRV_AUTOSELECT
	select DVB_OR51211 if MEDIA_SUBDRV_AUTOSELECT
	select DVB_LGDT330X if MEDIA_SUBDRV_AUTOSELECT
	select DVB_ZL10353 if MEDIA_SUBDRV_AUTOSELECT
	select MEDIA_TUNER_SIMPLE if MEDIA_SUBDRV_AUTOSELECT
	help
	  Support for PCI cards based on the Bt8xx PCI bridge. Examples are
	  the Nebula cards, the Pinnacle PCTV cards, the Twinhan DST cards,
	  the pcHDTV HD2000 cards, the DViCO FusionHDTV Lite cards, and
	  some AVerMedia cards.

	  Since these cards have no MPEG decoder onboard, they transmit
	  only compressed MPEG data over the PCI bus, so you need
	  an external software decoder to watch TV on your computer.

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