# SPDX-License-Identifier: GPL-2.0-only
config VIDEO_IVTV
	tristate "Conexant cx23416/cx23415 MPEG encoder/decoder support"
	depends on VIDEO_DEV && PCI && I2C
	select I2C_ALGOBIT
	depends on RC_CORE
	select VIDEO_TUNER
	select VIDEO_TVEEPROM
	select VIDEO_CX2341X
	select VIDEO_CX25840
	select VIDEO_MSP3400
	select VIDEO_SAA711X
	select VIDEO_SAA717X
	select VIDEO_SAA7127
	select VIDEO_CS53L32A
	select VIDEO_M52790
	select VIDEO_WM8775
	select VIDEO_WM8739
	select VIDEO_VP27SMPX
	select VIDEO_UPD64031A
	select VIDEO_UPD64083
	help
	  This is a video4linux driver for Conexant cx23416 or cx23415 based
	  PCI personal video recorder devices.

	  This is used in devices such as the Hauppauge PVR-150/250/350/500
	  cards.

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

config VIDEO_IVTV_ALSA
	tristate "Conexant cx23415/cx23416 ALSA interface for PCM audio capture"
	depends on VIDEO_IVTV && SND
	select SND_PCM
	help
	  This driver provides an ALSA interface as another method for user
	  applications to obtain PCM audio data from Conexant cx23415/cx23416
	  based PCI TV cards supported by the ivtv driver.

	  The ALSA interface has much wider use in user applications performing
	  PCM audio capture, than the V4L2 "/dev/video24" PCM audio interface
	  provided by the main ivtv driver.

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

config VIDEO_FB_IVTV
	tristate "Conexant cx23415 framebuffer support"
	depends on VIDEO_IVTV && FB
	select FB_IOMEM_HELPERS
	help
	  This is a framebuffer driver for the Conexant cx23415 MPEG
	  encoder/decoder.

	  This is used in the Hauppauge PVR-350 card.

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

config VIDEO_FB_IVTV_FORCE_PAT
	bool "force cx23415 framebuffer init with x86 PAT enabled"
	depends on VIDEO_FB_IVTV && X86_PAT
	help
	  With PAT enabled, the cx23415 framebuffer driver does not
	  utilize write-combined caching on the framebuffer memory.
	  For this reason, the driver will by default disable itself
	  when initializied on a kernel with PAT enabled (i.e. not
	  using the nopat kernel parameter).

	  The driver is not easily upgradable to the PAT-aware
	  ioremap_wc() API since the firmware hides the address
	  ranges that should be marked write-combined from the driver.

	  With this setting enabled, the framebuffer will initialize on
	  PAT-enabled systems but the framebuffer memory will be uncached.

	  If unsure, say N.
