config VIDEO_PVRUSB2
	tristate "Hauppauge WinTV-PVR USB2 support"
	depends on VIDEO_V4L2 && I2C && EXPERIMENTAL
	select FW_LOADER
	select VIDEO_TUNER
	select VIDEO_TVEEPROM
	select VIDEO_CX2341X
	---help---
	  This is a video4linux driver for Conexant 23416 based
	  usb2 personal video recorder devices.

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

config VIDEO_PVRUSB2_29XXX
	bool "Hauppauge WinTV-PVR USB2 support for 29xxx model series"
	depends on VIDEO_PVRUSB2 && EXPERIMENTAL
	select VIDEO_SAA711X
	select VIDEO_MSP3400
	---help---
	  This option enables support for WinTV-PVR USB2 devices whose
	  model number is of the form "29xxx" (leading prefix of "29"
	  followed by 3 digits).
	  To see if you may need this option, examine the white
	  sticker on the underside of your device.

	  If you are in doubt, say Y.

config VIDEO_PVRUSB2_24XXX
	bool "Hauppauge WinTV-PVR USB2 support for 24xxx model series"
	depends on VIDEO_PVRUSB2 && EXPERIMENTAL
	select VIDEO_CX25840
	select VIDEO_WM8775
	---help---
	  This option enables inclusion of additional logic to operate
	  newer WinTV-PVR USB2 devices whose model number is of the
	  form "24xxx" (leading prefix of "24" followed by 3 digits).
	  To see if you may need this option, examine the white
	  sticker on the underside of your device.  Enabling this
	  option will not harm support for older devices.

	  If you are in doubt, say Y.

config VIDEO_PVRUSB2_SYSFS
	bool "pvrusb2 sysfs support (EXPERIMENTAL)"
	default y
	depends on VIDEO_PVRUSB2 && SYSFS && EXPERIMENTAL
	---help---
	  This option enables the operation of a sysfs based
	  interface for query and control of the pvrusb2 driver.

	  This is not generally needed for v4l applications,
	  although certain applications are optimized to take
	  advantage of this feature.

	  If you are in doubt, say Y.

	  Note: This feature is experimental and subject to change.

config VIDEO_PVRUSB2_DEBUGIFC
	bool "pvrusb2 debug interface"
	depends on VIDEO_PVRUSB2_SYSFS
	---help---
	  This option enables the inclusion of a debug interface
	  in the pvrusb2 driver, hosted through sysfs.

	  You do not need to select this option unless you plan
	  on debugging the driver or performing a manual firmware
	  extraction.

	  If you are in doubt, say N.
