tristate "Video For Linux"
        ---help---
          Support for audio/video capture and overlay devices and FM radio
-         cards. The exact capabilities of each device vary. User tools for
-         this are available from
-         <ftp://ftp.uk.linux.org/pub/linux/video4linux/>.
+         cards. The exact capabilities of each device vary.
 
          This kernel includes support for the new Video for Linux Two API,
          (V4L2) as well as the original system. Drivers and applications
          need to be rewritten to use V4L2, but drivers for popular cards
          and applications for most video capture functions already exist.
 
-         Documentation for the original API is included in the file
-         <file:Documentation/video4linux/API.html>.  Documentation for V4L2 is
-         available on the web at <http://bytesex.org/v4l/>.
+         Additional info and docs are available on the web at
+         <http://linuxtv.org>
+
+         Documentation for V4L2 is also available on the web at
+         <http://bytesex.org/v4l/>.
 
          To compile this driver as a module, choose M here: the
          module will be called videodev.
 
+config VIDEO_V4L1
+       boolean "Enable Video For Linux API 1 (DEPRECATED)"
+       depends on VIDEO_DEV
+       select VIDEO_V4L1_COMPAT
+       default y
+       ---help---
+         Enables a compatibility API used by most V4L2 devices to allow
+         its usage with legacy applications that supports only V4L1 api.
+
+         If you are unsure as to whether this is required, answer Y.
+
+config VIDEO_V4L1_COMPAT
+       boolean "Enable Video For Linux API 1 compatible Layer"
+       depends on VIDEO_DEV
+       default y
+       ---help---
+         This api were developed to be used at Kernel 2.2 and 2.4, but
+         lacks support for several video standards. There are several
+         drivers at kernel that still depends on it.
+
+         Documentation for the original API is included in the file
+         <Documentation/video4linux/API.html>.
+
+         User tools for this are available from
+         <ftp://ftp.uk.linux.org/pub/linux/video4linux/>.
+
+         If you are unsure as to whether this is required, answer Y.
+
+config VIDEO_V4L2
+       tristate
+       default y
+
 source "drivers/media/video/Kconfig"
 
 source "drivers/media/radio/Kconfig"
          module will be called dabusb.
 
 endmenu
-
 
 
 config VIDEO_SAA7146_VV
        tristate
+       select VIDEO_V4L2
        select VIDEO_BUF
        select VIDEO_VIDEOBUF
        select VIDEO_SAA7146
 
 config DVB_AV7110
        tristate "AV7110 cards"
-       depends on DVB_CORE && PCI
+       depends on DVB_CORE && PCI && VIDEO_V4L1
        select FW_LOADER
-       select VIDEO_DEV
        select VIDEO_SAA7146_VV
        select DVB_VES1820
        select DVB_VES1X93
 
 config DVB_BUDGET
        tristate "Budget cards"
-       depends on DVB_CORE && PCI
+       depends on DVB_CORE && PCI && VIDEO_V4L1
        select VIDEO_SAA7146
        select DVB_STV0299
        select DVB_VES1X93
 
 config DVB_BUDGET_CI
        tristate "Budget cards with onboard CI connector"
-       depends on DVB_CORE && PCI
+       depends on DVB_CORE && PCI && VIDEO_V4L1
        select VIDEO_SAA7146
        select DVB_STV0297
        select DVB_STV0299
 
 config DVB_BUDGET_AV
        tristate "Budget cards with analog video inputs"
-       depends on DVB_CORE && PCI
-       select VIDEO_DEV
+       depends on DVB_CORE && PCI && VIDEO_V4L1
        select VIDEO_SAA7146_VV
        select DVB_STV0299
        select DVB_TDA1004X
 
 config DVB_BUDGET_PATCH
        tristate "AV7110 cards with Budget Patch"
-       depends on DVB_CORE && DVB_BUDGET
+       depends on DVB_CORE && DVB_BUDGET && VIDEO_V4L1
        select DVB_AV7110
        select DVB_STV0299
        select DVB_VES1X93
 
 
 config RADIO_CADET
        tristate "ADS Cadet AM/FM Tuner"
-       depends on ISA && VIDEO_DEV
+       depends on ISA && VIDEO_V4L1
        ---help---
          Choose Y here if you have one of these AM/FM radio cards, and then
          fill in the port address below.
 
 config RADIO_RTRACK
        tristate "AIMSlab RadioTrack (aka RadioReveal) support"
-       depends on ISA && VIDEO_DEV
+       depends on ISA && VIDEO_V4L1
        ---help---
          Choose Y here if you have one of these FM radio cards, and then fill
          in the port address below.
 
 config RADIO_RTRACK2
        tristate "AIMSlab RadioTrack II support"
-       depends on ISA && VIDEO_DEV
+       depends on ISA && VIDEO_V4L1
        ---help---
          Choose Y here if you have this FM radio card, and then fill in the
          port address below.
 
 config RADIO_AZTECH
        tristate "Aztech/Packard Bell Radio"
-       depends on ISA && VIDEO_DEV
+       depends on ISA && VIDEO_V4L1
        ---help---
          Choose Y here if you have one of these FM radio cards, and then fill
          in the port address below.
 
 config RADIO_GEMTEK
        tristate "GemTek Radio Card support"
-       depends on ISA && VIDEO_DEV
+       depends on ISA && VIDEO_V4L1
        ---help---
          Choose Y here if you have this FM radio card, and then fill in the
          port address below.
 
 config RADIO_GEMTEK_PCI
        tristate "GemTek PCI Radio Card support"
-       depends on VIDEO_DEV && PCI
+       depends on VIDEO_V4L1 && PCI
        ---help---
          Choose Y here if you have this PCI FM radio card.
 
 
 config RADIO_MAXIRADIO
        tristate "Guillemot MAXI Radio FM 2000 radio"
-       depends on VIDEO_DEV && PCI
+       depends on VIDEO_V4L1 && PCI
        ---help---
          Choose Y here if you have this radio card.  This card may also be
          found as Gemtek PCI FM.
 
 config RADIO_MAESTRO
        tristate "Maestro on board radio"
-       depends on VIDEO_DEV
+       depends on VIDEO_V4L1
        ---help---
          Say Y here to directly support the on-board radio tuner on the
          Maestro 2 or 2E sound card.
 
 config RADIO_MIROPCM20
        tristate "miroSOUND PCM20 radio"
-       depends on ISA && VIDEO_DEV && SOUND_ACI_MIXER
+       depends on ISA && VIDEO_V4L1 && SOUND_ACI_MIXER
        ---help---
          Choose Y here if you have this FM radio card. You also need to say Y
          to "ACI mixer (miroSOUND PCM1-pro/PCM12/PCM20 radio)" (in "Sound")
 
 config RADIO_SF16FMI
        tristate "SF16FMI Radio"
-       depends on ISA && VIDEO_DEV
+       depends on ISA && VIDEO_V4L1
        ---help---
          Choose Y here if you have one of these FM radio cards.  If you
          compile the driver into the kernel and your card is not PnP one, you
 
 config RADIO_SF16FMR2
        tristate "SF16FMR2 Radio"
-       depends on ISA && VIDEO_DEV
+       depends on ISA && VIDEO_V4L1
        ---help---
          Choose Y here if you have one of these FM radio cards.
 
 
 config RADIO_TERRATEC
        tristate "TerraTec ActiveRadio ISA Standalone"
-       depends on ISA && VIDEO_DEV
+       depends on ISA && VIDEO_V4L1
        ---help---
          Choose Y here if you have this FM radio card, and then fill in the
          port address below. (TODO)
 
 config RADIO_TRUST
        tristate "Trust FM radio card"
-       depends on ISA && VIDEO_DEV
+       depends on ISA && VIDEO_V4L1
        help
          This is a driver for the Trust FM radio cards. Say Y if you have
          such a card and want to use it under Linux.
 
 config RADIO_TYPHOON
        tristate "Typhoon Radio (a.k.a. EcoRadio)"
-       depends on ISA && VIDEO_DEV
+       depends on ISA && VIDEO_V4L1
        ---help---
          Choose Y here if you have one of these FM radio cards, and then fill
          in the port address and the frequency used for muting below.
 
 config RADIO_ZOLTRIX
        tristate "Zoltrix Radio"
-       depends on ISA && VIDEO_DEV
+       depends on ISA && VIDEO_V4L1
        ---help---
          Choose Y here if you have one of these FM radio cards, and then fill
          in the port address below.
 
 # Multimedia Video device configuration
 #
 
-menu "Video For Linux"
+menu "Video Capture Adapters"
        depends on VIDEO_DEV
 
-comment "Video Adapters"
+comment "Video Capture Adapters"
 
 config VIDEO_ADV_DEBUG
        bool "Enable advanced debug functionality"
 
 config VIDEO_SAA6588
        tristate "SAA6588 Radio Chip RDS decoder support on BT848 cards"
-       depends on VIDEO_DEV && I2C && VIDEO_BT848
+       depends on I2C && VIDEO_BT848
 
        help
          Support for  Radio Data System (RDS) decoder. This allows seeing
 
 config VIDEO_PMS
        tristate "Mediavision Pro Movie Studio Video For Linux"
-       depends on VIDEO_DEV && ISA
+       depends on ISA && VIDEO_V4L1
        help
          Say Y if you have such a thing.
 
 
 config VIDEO_PLANB
        tristate "PlanB Video-In on PowerMac"
-       depends on PPC_PMAC && VIDEO_DEV && BROKEN
+       depends on PPC_PMAC && VIDEO_V4L1 && BROKEN
        help
          PlanB is the V4L driver for the PowerMac 7x00/8x00 series video
          input hardware. If you want to experiment with this, say Y.
 
 config VIDEO_BWQCAM
        tristate "Quickcam BW Video For Linux"
-       depends on VIDEO_DEV && PARPORT
+       depends on PARPORT && VIDEO_V4L1
        help
          Say Y have if you the black and white version of the QuickCam
          camera. See the next option for the color version.
 
 config VIDEO_CQCAM
        tristate "QuickCam Colour Video For Linux (EXPERIMENTAL)"
-       depends on EXPERIMENTAL && VIDEO_DEV && PARPORT
+       depends on EXPERIMENTAL && PARPORT && VIDEO_V4L1
        help
          This is the video4linux driver for the colour version of the
          Connectix QuickCam.  If you have one of these cameras, say Y here,
 
 config VIDEO_W9966
        tristate "W9966CF Webcam (FlyCam Supra and others) Video For Linux"
-       depends on PARPORT_1284 && VIDEO_DEV && PARPORT
+       depends on PARPORT_1284 && PARPORT && VIDEO_V4L1
        help
          Video4linux driver for Winbond's w9966 based Webcams.
          Currently tested with the LifeView FlyCam Supra.
 
 config VIDEO_CPIA
        tristate "CPiA Video For Linux"
-       depends on VIDEO_DEV
+       depends on VIDEO_V4L1
        ---help---
          This is the video4linux driver for cameras based on Vision's CPiA
          (Colour Processor Interface ASIC), such as the Creative Labs Video
 
 config VIDEO_SAA5246A
        tristate "SAA5246A, SAA5281 Teletext processor"
-       depends on VIDEO_DEV && I2C
+       depends on I2C && VIDEO_V4L1
        help
          Support for I2C bus based teletext using the SAA5246A or SAA5281
          chip. Useful only if you live in Europe.
 
 config VIDEO_VINO
        tristate "SGI Vino Video For Linux (EXPERIMENTAL)"
-       depends on VIDEO_DEV && I2C && SGI_IP22 && EXPERIMENTAL
+       depends on I2C && SGI_IP22 && EXPERIMENTAL && VIDEO_V4L1
        select I2C_ALGO_SGI
        help
          Say Y here to build in support for the Vino video input system found
 
 config VIDEO_STRADIS
        tristate "Stradis 4:2:2 MPEG-2 video driver  (EXPERIMENTAL)"
-       depends on EXPERIMENTAL && VIDEO_DEV && PCI
+       depends on EXPERIMENTAL && PCI && VIDEO_V4L1
        help
          Say Y here to enable support for the Stradis 4:2:2 MPEG-2 video
          driver for PCI.  There is a product page at
 
 config VIDEO_ZORAN
        tristate "Zoran ZR36057/36067 Video For Linux"
-       depends on VIDEO_DEV && PCI && I2C_ALGOBIT
+       depends on PCI && I2C_ALGOBIT && VIDEO_V4L1
        help
          Say Y for support for MJPEG capture cards based on the Zoran
          36057/36067 PCI controller chipset. This includes the Iomega
 
 config VIDEO_ZR36120
        tristate "Zoran ZR36120/36125 Video For Linux"
-       depends on VIDEO_DEV && PCI && I2C && BROKEN
+       depends on PCI && I2C && VIDEO_V4L1 && BROKEN
        help
          Support for ZR36120/ZR36125 based frame grabber/overlay boards.
          This includes the Victor II, WaveWatcher, Video Wonder, Maxi-TV,
 
 config VIDEO_MEYE
        tristate "Sony Vaio Picturebook Motion Eye Video For Linux"
-       depends on VIDEO_DEV && PCI && SONYPI
+       depends on PCI && SONYPI && VIDEO_V4L1
        ---help---
          This is the video4linux driver for the Motion Eye camera found
          in the Vaio Picturebook laptops. Please read the material in
 
 config VIDEO_MXB
        tristate "Siemens-Nixdorf 'Multimedia eXtension Board'"
-       depends on VIDEO_DEV && PCI
+       depends on PCI && VIDEO_V4L1
        select VIDEO_SAA7146_VV
        select VIDEO_TUNER
        ---help---
 
 config VIDEO_DPC
        tristate "Philips-Semiconductors 'dpc7146 demonstration board'"
-       depends on VIDEO_DEV && PCI
+       depends on PCI && VIDEO_V4L1
        select VIDEO_SAA7146_VV
+       select VIDEO_V4L2
        ---help---
          This is a video4linux driver for the 'dpc7146 demonstration
          board' by Philips-Semiconductors. It's the reference design
 
 config VIDEO_HEXIUM_ORION
        tristate "Hexium HV-PCI6 and Orion frame grabber"
-       depends on VIDEO_DEV && PCI
+       depends on PCI && VIDEO_V4L1
        select VIDEO_SAA7146_VV
+       select VIDEO_V4L2
        ---help---
          This is a video4linux driver for the Hexium HV-PCI6 and
          Orion frame grabber cards by Hexium.
 
 config VIDEO_HEXIUM_GEMINI
        tristate "Hexium Gemini frame grabber"
-       depends on VIDEO_DEV && PCI
+       depends on PCI && VIDEO_V4L1
        select VIDEO_SAA7146_VV
+       select VIDEO_V4L2
        ---help---
          This is a video4linux driver for the Hexium Gemini frame
          grabber card by Hexium. Please note that the Gemini Dual
 
 config VIDEO_OVCAMCHIP
        tristate "OmniVision Camera Chip support"
-       depends on VIDEO_DEV && I2C
+       depends on I2C && VIDEO_V4L1
        ---help---
          Support for the OmniVision OV6xxx and OV7xxx series of camera chips.
          This driver is intended to be used with the ov511 and w9968cf USB
 
 config VIDEO_M32R_AR
        tristate "AR devices"
-       depends on M32R
+       depends on M32R && VIDEO_V4L1
        ---help---
          This is a video4linux driver for the Renesas AR (Artificial Retina)
          camera module.
 source "drivers/media/video/cx25840/Kconfig"
 
 config VIDEO_SAA711X
-       tristate "Philips SAA7113/4/5 video decoders"
-       depends on VIDEO_DEV && I2C && EXPERIMENTAL
+       tristate "Philips SAA7113/4/5 video decoders (OBSOLETED)"
+       depends on VIDEO_V4L1 && I2C && EXPERIMENTAL
        ---help---
-         Support for the Philips SAA7113/4/5 video decoders.
+         Old support for the Philips SAA7113/4 video decoders.
 
          To compile this driver as a module, choose M here: the
          module will be called saa7115.
 
 config VIDEO_SAA7127
        tristate "Philips SAA7127/9 digital video encoders"
-       depends on VIDEO_DEV && I2C && EXPERIMENTAL
+       depends on VIDEO_V4L2 && I2C && EXPERIMENTAL
        ---help---
          Support for the Philips SAA7127/9 digital video encoders.
 
 
 config VIDEO_UPD64031A
        tristate "NEC Electronics uPD64031A Ghost Reduction"
-       depends on VIDEO_DEV && I2C && EXPERIMENTAL
+       depends on VIDEO_V4L2 && I2C && EXPERIMENTAL
        ---help---
          Support for the NEC Electronics uPD64031A Ghost Reduction
          video chip. It is most often found in NTSC TV cards made for
 
 config VIDEO_UPD64083
        tristate "NEC Electronics uPD64083 3-Dimensional Y/C separation"
-       depends on VIDEO_DEV && I2C && EXPERIMENTAL
+       depends on VIDEO_V4L2 && I2C && EXPERIMENTAL
        ---help---
          Support for the NEC Electronics uPD64083 3-Dimensional Y/C
          separation video chip. It is used to improve the quality of
 
 config USB_DSBR
        tristate "D-Link USB FM radio support (EXPERIMENTAL)"
-       depends on USB && VIDEO_DEV && EXPERIMENTAL
+       depends on USB && VIDEO_V4L1 && EXPERIMENTAL
        ---help---
          Say Y here if you want to connect this type of radio to your
          computer's USB port. Note that the audio is not digital, and
 
 config USB_OV511
        tristate "USB OV511 Camera support"
-       depends on USB && VIDEO_DEV
+       depends on USB && VIDEO_V4L1
        ---help---
          Say Y here if you want to connect this type of camera to your
          computer's USB port. See <file:Documentation/video4linux/ov511.txt>
 
 config USB_SE401
        tristate "USB SE401 Camera support"
-       depends on USB && VIDEO_DEV
+       depends on USB && VIDEO_V4L1
        ---help---
          Say Y here if you want to connect this type of camera to your
          computer's USB port. See <file:Documentation/video4linux/se401.txt>
 
 config USB_STV680
        tristate "USB STV680 (Pencam) Camera support"
-       depends on USB && VIDEO_DEV
+       depends on USB && VIDEO_V4L1
        ---help---
          Say Y here if you want to connect this type of camera to your
          computer's USB port. This includes the Pencam line of cameras.
 
 config USB_W9968CF
        tristate "USB W996[87]CF JPEG Dual Mode Camera support"
-       depends on USB && VIDEO_DEV && I2C
+       depends on USB && VIDEO_V4L1 && I2C
        select VIDEO_OVCAMCHIP
        ---help---
          Say Y here if you want support for cameras based on OV681 or
 
 
 msp3400-objs   :=      msp3400-driver.o msp3400-kthreads.o
 
-obj-$(CONFIG_VIDEO_DEV) += videodev.o v4l2-common.o v4l1-compat.o compat_ioctl32.o
+obj-$(CONFIG_VIDEO_DEV) += videodev.o v4l2-common.o compat_ioctl32.o
+obj-$(CONFIG_VIDEO_V4L1_COMPAT) += v4l1-compat.o
 
 obj-$(CONFIG_VIDEO_BT848) += bt8xx/
 obj-$(CONFIG_VIDEO_BT848) += tvaudio.o tda7432.o tda9875.o ir-kbd-i2c.o
 
 config VIDEO_BT848
        tristate "BT848 Video For Linux"
-       depends on VIDEO_DEV && PCI && I2C
+       depends on VIDEO_DEV && PCI && I2C && VIDEO_V4L2
        select I2C_ALGOBIT
        select FW_LOADER
        select VIDEO_BTCX
 
 #include "cx88.h"
 #include <media/v4l2-common.h>
 
+#ifdef CONFIG_VIDEO_V4L1_COMPAT
 /* Include V4L1 specific functions. Should be removed soon */
 #include <linux/videodev.h>
+#endif
 
 MODULE_DESCRIPTION("v4l2 driver module for cx2388x based TV cards");
 MODULE_AUTHOR("Gerd Knorr <kraxel@bytesex.org> [SuSE Labs]");
 
 config VIDEO_EM28XX
        tristate "Empia EM2800/2820/2840 USB video capture support"
-       depends on VIDEO_DEV && USB && I2C
+       depends on VIDEO_V4L1 && USB && I2C
        select VIDEO_BUF
        select VIDEO_TUNER
        select VIDEO_TVEEPROM
 
 config USB_ET61X251
        tristate "USB ET61X[12]51 PC Camera Controller support"
-       depends on USB && VIDEO_DEV
+       depends on USB && VIDEO_V4L1
        ---help---
          Say Y here if you want support for cameras based on Etoms ET61X151
          or ET61X251 PC Camera Controllers.
 
 config USB_PWC
        tristate "USB Philips Cameras"
-       depends on USB && VIDEO_DEV
+       depends on USB && VIDEO_V4L1
        ---help---
          Say Y or M here if you want to use one of these Philips & OEM
          webcams:
 
 #include "saa7134.h"
 #include <media/v4l2-common.h>
 
+#ifdef CONFIG_VIDEO_V4L1_COMPAT
 /* Include V4L1 specific functions. Should be removed soon */
 #include <linux/videodev.h>
+#endif
 
 /* ------------------------------------------------------------------ */
 
 
 config USB_SN9C102
        tristate "USB SN9C10x PC Camera Controller support"
-       depends on USB && VIDEO_DEV
+       depends on USB && VIDEO_V4L1
        ---help---
          Say Y here if you want support for cameras based on SONiX SN9C101,
          SN9C102 or SN9C103 PC Camera Controllers.
 
 
 config USB_VICAM
        tristate "USB 3com HomeConnect (aka vicam) support (EXPERIMENTAL)"
-       depends on USB && VIDEO_DEV && EXPERIMENTAL
+       depends on USB && VIDEO_V4L1 && EXPERIMENTAL
        select VIDEO_USBVIDEO
        ---help---
          Say Y here if you have 3com homeconnect camera (vicam).
 
 config USB_IBMCAM
        tristate "USB IBM (Xirlink) C-it Camera support"
-       depends on USB && VIDEO_DEV
+       depends on USB && VIDEO_V4L1
        select VIDEO_USBVIDEO
        ---help---
          Say Y here if you want to connect a IBM "C-It" camera, also known as
 
 config USB_KONICAWC
        tristate "USB Konica Webcam support"
-       depends on USB && VIDEO_DEV
+       depends on USB && VIDEO_V4L1
        select VIDEO_USBVIDEO
        ---help---
          Say Y here if you want support for webcams based on a Konica
 
 #include <linux/random.h>
 #include <linux/version.h>
 #include <linux/videodev2.h>
+#ifdef CONFIG_VIDEO_V4L1_COMPAT
+/* Include V4L1 specific functions. Should be removed soon */
+#include <linux/videodev.h>
+#endif
 #include <linux/interrupt.h>
 #include <media/video-buf.h>
 #include <media/v4l2-common.h>
 
 config USB_ZC0301
        tristate "USB ZC0301 Image Processor and Control Chip support"
-       depends on USB && VIDEO_DEV
+       depends on USB && VIDEO_V4L1
        ---help---
          Say Y here if you want support for cameras based on the ZC0301
          Image Processor and Control Chip.
 
 /*  Compatibility layer interface  --  v4l1-compat module */
 typedef int (*v4l2_kioctl)(struct inode *inode, struct file *file,
                           unsigned int cmd, void *arg);
+
+#ifdef CONFIG_VIDEO_V4L1_COMPAT
 int v4l_compat_translate_ioctl(struct inode *inode, struct file *file,
                               int cmd, void *arg, v4l2_kioctl driver_ioctl);
+#else
+#define v4l_compat_translate_ioctl(inode,file,cmd,arg,ioctl) -EINVAL
+#endif
 
 /* 32 Bits compatibility layer for 64 bits processors */
 extern long v4l_compat_ioctl32(struct file *file, unsigned int cmd,