menuconfig MEDIA_PARPORT_SUPPORT
	bool "ISA and parallel port devices"
	depends on (ISA || PARPORT) && MEDIA_CAMERA_SUPPORT
	help
	  Enables drivers for ISA and parallel port bus. If you
	  need media drivers using those legacy buses, say Y.

if MEDIA_PARPORT_SUPPORT
config VIDEO_BWQCAM
	tristate "Quickcam BW Video For Linux (Deprecated)"
	depends on PARPORT && VIDEO_V4L2
	select VIDEOBUF2_VMALLOC
	help
	  Say Y have if you the black and white version of the QuickCam
	  camera. See the next option for the color version.

	  This driver is deprecated and will be removed soon. If you have
	  hardware for this and you want to work on this driver, then contact
	  the linux-media mailinglist.

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

config VIDEO_CQCAM
	tristate "QuickCam Colour Video For Linux (Deprecated)"
	depends on PARPORT && VIDEO_V4L2
	help
	  This is the video4linux driver for the colour version of the
	  Connectix QuickCam.  If you have one of these cameras, say Y here,
	  otherwise say N.  This driver does not work with the original
	  monochrome QuickCam, QuickCam VC or QuickClip.  It is also available
	  as a module (c-qcam).
	  Read <file:Documentation/video4linux/CQcam.txt> for more information.

	  This driver is deprecated and will be removed soon. If you have
	  hardware for this and you want to work on this driver, then contact
	  the linux-media mailinglist.

config VIDEO_PMS
	tristate "Mediavision Pro Movie Studio Video For Linux (Deprecated)"
	depends on ISA && VIDEO_V4L2
	help
	  Say Y if you have the ISA Mediavision Pro Movie Studio
	  capture card.

	  This driver is deprecated and will be removed soon. If you have
	  hardware for this and you want to work on this driver, then contact
	  the linux-media mailinglist.

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

config VIDEO_W9966
	tristate "W9966CF Webcam (FlyCam Supra and others) Video For Linux (Deprecated)"
	depends on PARPORT_1284 && PARPORT && VIDEO_V4L2
	help
	  Video4linux driver for Winbond's w9966 based Webcams.
	  Currently tested with the LifeView FlyCam Supra.
	  If you have one of these cameras, say Y here
	  otherwise say N.
	  This driver is also available as a module (w9966).

	  Check out <file:Documentation/video4linux/w9966.txt> for more
	  information.

	  This driver is deprecated and will be removed soon. If you have
	  hardware for this and you want to work on this driver, then contact
	  the linux-media mailinglist.
endif
