Commit a3b91d8b authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab
Browse files

media: Kconfig: better support hybrid TV devices



Right now, if one has an hybrid TV card, it has to select
both analog and digital TV support, as otherwise the needed
core support won't be selected.

Change the logic to auto-select the core support for those
drivers, as this is a way more intuitive.

It should be noticed that, as now both DVB_CORE and VIDEO_DEV
defaults depends on selecting a hybrid cards, we had to remove
the explicit dependencies there, in order to avoid circular
dependencies.

That requires some tricks:

1) the prompt should not be not visible when an hybrid card
   is selected, as the user shold not change it.

2) When a media hybrid device is selected, the modular
   option for DVB_CORE and VIDEO_DEV will follow the
   MEDIA_SUPPORT dependency, as we can't have a core
   built with "y" with a driver built as module.

Note: while here, moved two pure V4L2 PCI drivers out of the
"hybrid" part of config and consider pvrusb2 as an hybrid
device.

Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
parent a8328622
Loading
Loading
Loading
Loading
+11 −13
Original line number Diff line number Diff line
@@ -44,20 +44,14 @@ config MEDIA_ANALOG_TV_SUPPORT
	help
	  Enable analog TV support.

	  Say Y when you have a TV board with analog support or with a
	  hybrid analog/digital TV chipset.

	  Note: There are several DVB cards that are based on chips that
		support both analog and digital TV. Disabling this option
		will disable support for them.
	  Say Y when you have a board with analog TV support.

config MEDIA_DIGITAL_TV_SUPPORT
	bool "Digital TV support"
	help
	  Enable digital TV support.

	  Say Y when you have a board with digital support or a board with
	  hybrid digital TV and analog TV.
	  Say Y when you have a board with digital TV support.

config MEDIA_RADIO_SUPPORT
	bool "AM/FM radio receivers/transmitters support"
@@ -69,10 +63,6 @@ config MEDIA_RADIO_SUPPORT

	  Say Y when you have a board with radio support.

	  Note: There are several TV cards that are based on chips that
		support radio reception. Disabling this option will
		disable support for them.

config MEDIA_SDR_SUPPORT
	bool "Software defined radio support"
	help
@@ -123,9 +113,13 @@ source "drivers/media/mc/Kconfig"
#	Only enables if one of the V4L2 types (ATV, webcam, radio) is selected
#

comment "Video4Linux core enabled to support hybrid TV devices"
	depends on MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI

config VIDEO_DEV
	tristate
	default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_RADIO_SUPPORT || MEDIA_SDR_SUPPORT || MEDIA_PLATFORM_SUPPORT
	prompt "Video4Linux core" if !(MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI)
	default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_RADIO_SUPPORT || MEDIA_SDR_SUPPORT || MEDIA_PLATFORM_SUPPORT || MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI

config VIDEO_V4L2_SUBDEV_API
	bool "V4L2 sub-device userspace API"
@@ -143,8 +137,12 @@ source "drivers/media/v4l2-core/Kconfig"
#	Only enables if one of DTV is selected
#

comment "Digital TV core enabled to support hybrid TV devices"
	depends on MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI

config DVB_CORE
	tristate
	prompt "Digital TV core"  if !(MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI)
	depends on MEDIA_DIGITAL_TV_SUPPORT
	depends on (I2C || I2C=n)
	default y
+9 −2
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only

# Should match the hybrid card list below
config MEDIA_HYBRID_PCI
	bool
	depends on VIDEO_CX18 || VIDEO_CX23885 || VIDEO_CX88 || VIDEO_BT848 || VIDEO_SAA7134 || VIDEO_SAA7164
	default y

if PCI && MEDIA_SUPPORT

menuconfig MEDIA_PCI_SUPPORT
@@ -24,18 +31,18 @@ if MEDIA_ANALOG_TV_SUPPORT
source "drivers/media/pci/ivtv/Kconfig"
source "drivers/media/pci/saa7146/Kconfig"
source "drivers/media/pci/dt3155/Kconfig"
source "drivers/media/pci/cx25821/Kconfig"
source "drivers/media/pci/cobalt/Kconfig"
endif

if MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT
	comment "Media capture/analog/hybrid TV support"
source "drivers/media/pci/cx18/Kconfig"
source "drivers/media/pci/cx23885/Kconfig"
source "drivers/media/pci/cx25821/Kconfig"
source "drivers/media/pci/cx88/Kconfig"
source "drivers/media/pci/bt8xx/Kconfig"
source "drivers/media/pci/saa7134/Kconfig"
source "drivers/media/pci/saa7164/Kconfig"
source "drivers/media/pci/cobalt/Kconfig"

endif

+2 −3
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only
config VIDEO_BT848
	tristate "BT848 Video For Linux"
	depends on VIDEO_DEV && PCI && I2C && VIDEO_V4L2
	depends on PCI && I2C
	select I2C_ALGOBIT
	select VIDEOBUF_DMA_SG
	depends on RC_CORE
	depends on MEDIA_RADIO_SUPPORT
	select VIDEO_TUNER
	select VIDEO_TVEEPROM
	select VIDEO_MSP3400 if MEDIA_SUBDRV_AUTOSELECT
@@ -24,7 +23,7 @@ config VIDEO_BT848

config DVB_BT8XX
	tristate "DVB/ATSC Support for bt878 based TV cards"
	depends on DVB_CORE && PCI && I2C && VIDEO_BT848
	depends on 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
+1 −1
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only
config VIDEO_CX18
	tristate "Conexant cx23418 MPEG encoder support"
	depends on VIDEO_V4L2 && DVB_CORE && PCI && I2C
	depends on PCI && I2C
	select I2C_ALGOBIT
	select VIDEOBUF_VMALLOC
	depends on RC_CORE
+2 −2
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only
config VIDEO_CX23885
	tristate "Conexant cx23885 (2388x successor) support"
	depends on DVB_CORE && VIDEO_DEV && PCI && I2C && INPUT && SND
	depends on PCI && I2C && INPUT && SND
	select SND_PCM
	select I2C_ALGOBIT
	select VIDEO_TUNER
@@ -53,7 +53,7 @@ config VIDEO_CX23885

config MEDIA_ALTERA_CI
	tristate "Altera FPGA based CI module"
	depends on VIDEO_CX23885 && DVB_CORE
	depends on VIDEO_CX23885
	select ALTERA_STAPL
	help
	  An Altera FPGA CI module for NetUP Dual DVB-T/C RF CI card.
Loading