diff --git a/drivers/media/Kconfig b/drivers/media/Kconfig
index c2602b340491..baa9f58beffc 100644
--- a/drivers/media/Kconfig
+++ b/drivers/media/Kconfig
@@ -50,5 +50,19 @@ config VIDEO_IR
config VIDEO_TVEEPROM
tristate
+config USB_DABUSB
+ tristate "DABUSB driver"
+ depends on USB
+ ---help---
+ A Digital Audio Broadcasting (DAB) Receiver for USB and Linux
+ brought to you by the DAB-Team
+ . This driver can be taken
+ as an example for URB-based bulk, control, and isochronous
+ transactions. URB's are explained in
+ .
+
+ To compile this driver as a module, choose M here: the
+ module will be called dabusb.
+
endmenu
diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
index b3d3b22d3f78..1f8a46b5916e 100644
--- a/drivers/media/video/Kconfig
+++ b/drivers/media/video/Kconfig
@@ -291,8 +291,6 @@ config VIDEO_HEXIUM_GEMINI
source "drivers/media/video/cx88/Kconfig"
-source "drivers/media/video/em28xx/Kconfig"
-
config VIDEO_OVCAMCHIP
tristate "OmniVision Camera Chip support"
depends on VIDEO_DEV && I2C
@@ -367,4 +365,234 @@ config VIDEO_SAA7127
To compile this driver as a module, choose M here: the
module will be called saa7127
+#
+# USB Multimedia device configuration
+#
+
+menu "V4L USB devices"
+ depends on USB && VIDEO_DEV
+
+source "drivers/media/video/em28xx/Kconfig"
+
+config USB_VICAM
+ tristate "USB 3com HomeConnect (aka vicam) support (EXPERIMENTAL)"
+ depends on USB && VIDEO_DEV && EXPERIMENTAL
+ ---help---
+ Say Y here if you have 3com homeconnect camera (vicam).
+
+ This driver uses the Video For Linux API. You must say Y or M to
+ "Video For Linux" (under Multimedia Devices) to use this driver.
+ Information on this API and pointers to "v4l" programs may be found
+ at .
+
+ To compile this driver as a module, choose M here: the
+ module will be called vicam.
+
+config USB_DSBR
+ tristate "D-Link USB FM radio support (EXPERIMENTAL)"
+ depends on USB && VIDEO_DEV && 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
+ you must connect the line out connector to a sound card or a
+ set of speakers.
+
+ This driver uses the Video For Linux API. You must enable
+ (Y or M in config) Video For Linux (under Character Devices)
+ to use this driver. Information on this API and pointers to
+ "v4l" programs may be found at
+ .
+
+ To compile this driver as a module, choose M here: the
+ module will be called dsbr100.
+
+config USB_ET61X251
+ tristate "USB ET61X[12]51 PC Camera Controller support"
+ depends on USB && VIDEO_DEV
+ ---help---
+ Say Y here if you want support for cameras based on Etoms ET61X151
+ or ET61X251 PC Camera Controllers.
+
+ See for more informations.
+
+ This driver uses the Video For Linux API. You must say Y or M to
+ "Video For Linux" to use this driver.
+
+ To compile this driver as a module, choose M here: the
+ module will be called et61x251.
+
+config USB_IBMCAM
+ tristate "USB IBM (Xirlink) C-it Camera support"
+ depends on USB && VIDEO_DEV
+ ---help---
+ Say Y here if you want to connect a IBM "C-It" camera, also known as
+ "Xirlink PC Camera" to your computer's USB port. For more
+ information, read .
+
+ This driver uses the Video For Linux API. You must enable
+ (Y or M in config) Video For Linux (under Character Devices)
+ to use this driver. Information on this API and pointers to
+ "v4l" programs may be found at
+ .
+
+ To compile this driver as a module, choose M here: the
+ module will be called ibmcam.
+
+ This camera has several configuration options which
+ can be specified when you load the module. Read
+ to learn more.
+
+config USB_KONICAWC
+ tristate "USB Konica Webcam support"
+ depends on USB && VIDEO_DEV
+ ---help---
+ Say Y here if you want support for webcams based on a Konica
+ chipset. This is known to work with the Intel YC76 webcam.
+
+ This driver uses the Video For Linux API. You must enable
+ (Y or M in config) Video For Linux (under Character Devices)
+ to use this driver. Information on this API and pointers to
+ "v4l" programs may be found at
+ .
+
+ To compile this driver as a module, choose M here: the
+ module will be called konicawc.
+
+config USB_OV511
+ tristate "USB OV511 Camera support"
+ depends on USB && VIDEO_DEV
+ ---help---
+ Say Y here if you want to connect this type of camera to your
+ computer's USB port. See for more
+ information and for a list of supported cameras.
+
+ This driver uses the Video For Linux API. You must say Y or M to
+ "Video For Linux" (under Character Devices) to use this driver.
+ Information on this API and pointers to "v4l" programs may be found
+ at .
+
+ To compile this driver as a module, choose M here: the
+ module will be called ov511.
+
+config USB_SE401
+ tristate "USB SE401 Camera support"
+ depends on USB && VIDEO_DEV
+ ---help---
+ Say Y here if you want to connect this type of camera to your
+ computer's USB port. See for more
+ information and for a list of supported cameras.
+
+ This driver uses the Video For Linux API. You must say Y or M to
+ "Video For Linux" (under Multimedia Devices) to use this driver.
+ Information on this API and pointers to "v4l" programs may be found
+ at .
+
+ To compile this driver as a module, choose M here: the
+ module will be called se401.
+
+config USB_SN9C102
+ tristate "USB SN9C10x PC Camera Controller support"
+ depends on USB && VIDEO_DEV
+ ---help---
+ Say Y here if you want support for cameras based on SONiX SN9C101,
+ SN9C102 or SN9C103 PC Camera Controllers.
+
+ See for more informations.
+
+ This driver uses the Video For Linux API. You must say Y or M to
+ "Video For Linux" to use this driver.
+
+ To compile this driver as a module, choose M here: the
+ module will be called sn9c102.
+
+config USB_STV680
+ tristate "USB STV680 (Pencam) Camera support"
+ depends on USB && VIDEO_DEV
+ ---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.
+ See for more information and for
+ a list of supported cameras.
+
+ This driver uses the Video For Linux API. You must say Y or M to
+ "Video For Linux" (under Multimedia Devices) to use this driver.
+ Information on this API and pointers to "v4l" programs may be found
+ at .
+
+ To compile this driver as a module, choose M here: the
+ module will be called stv680.
+
+config USB_W9968CF
+ tristate "USB W996[87]CF JPEG Dual Mode Camera support"
+ depends on USB && VIDEO_DEV && I2C && VIDEO_OVCAMCHIP
+ ---help---
+ Say Y here if you want support for cameras based on OV681 or
+ Winbond W9967CF/W9968CF JPEG USB Dual Mode Camera Chips.
+
+ This driver has an optional plugin, which is distributed as a
+ separate module only (released under GPL). It allows to use higher
+ resolutions and framerates, but cannot be included in the official
+ Linux kernel for performance purposes.
+
+ See for more informations.
+
+ This driver uses the Video For Linux and the I2C APIs. It needs the
+ OmniVision Camera Chip support as well. You must say Y or M to
+ "Video For Linux", "I2C Support" and "OmniVision Camera Chip
+ support" to use this driver.
+
+ To compile this driver as a module, choose M here: the
+ module will be called w9968cf.
+
+config USB_ZC0301
+ tristate "USB ZC0301 Image Processor and Control Chip support"
+ depends on USB && VIDEO_DEV
+ ---help---
+ Say Y here if you want support for cameras based on the ZC0301
+ Image Processor and Control Chip.
+
+ See for more informations.
+
+ This driver uses the Video For Linux API. You must say Y or M to
+ "Video For Linux" to use this driver.
+
+ To compile this driver as a module, choose M here: the
+ module will be called zc0301.
+
+config USB_PWC
+ tristate "USB Philips Cameras"
+ depends on USB && VIDEO_DEV
+ ---help---
+ Say Y or M here if you want to use one of these Philips & OEM
+ webcams:
+ * Philips PCA645, PCA646
+ * Philips PCVC675, PCVC680, PCVC690
+ * Philips PCVC720/40, PCVC730, PCVC740, PCVC750
+ * Askey VC010
+ * Logitech QuickCam Pro 3000, 4000, 'Zoom', 'Notebook Pro'
+ and 'Orbit'/'Sphere'
+ * Samsung MPC-C10, MPC-C30
+ * Creative Webcam 5, Pro Ex
+ * SOTEC Afina Eye
+ * Visionite VCS-UC300, VCS-UM100
+
+ The PCA635, PCVC665 and PCVC720/20 are not supported by this driver
+ and never will be, but the 665 and 720/20 are supported by other
+ drivers.
+
+ See for more information and
+ installation instructions.
+
+ The built-in microphone is enabled by selecting USB Audio support.
+
+ This driver uses the Video For Linux API. You must say Y or M to
+ "Video For Linux" (under Character Devices) to use this driver.
+ Information on this API and pointers to "v4l" programs may be found
+ at .
+
+ To compile this driver as a module, choose M here: the
+ module will be called pwc.
+
+endmenu # V4L USB devices
+
endmenu
diff --git a/drivers/media/video/Makefile b/drivers/media/video/Makefile
index 1a56a2d9e294..1c0e72e5a593 100644
--- a/drivers/media/video/Makefile
+++ b/drivers/media/video/Makefile
@@ -65,4 +65,23 @@ obj-$(CONFIG_VIDEO_CX25840) += cx25840/
obj-$(CONFIG_VIDEO_SAA711X) += saa7115.o
obj-$(CONFIG_VIDEO_SAA7127) += saa7127.o
+et61x251-objs := et61x251_core.o et61x251_tas5130d1b.o
+zc0301-objs := zc0301_core.o zc0301_pas202bcb.o
+
+obj-$(CONFIG_USB_DABUSB) += dabusb.o
+obj-$(CONFIG_USB_DSBR) += dsbr100.o
+obj-$(CONFIG_USB_OV511) += ov511.o
+obj-$(CONFIG_USB_SE401) += se401.o
+obj-$(CONFIG_USB_STV680) += stv680.o
+obj-$(CONFIG_USB_W9968CF) += w9968cf.o
+
+obj-$(CONFIG_USB_SN9C102) += sn9c102/
+obj-$(CONFIG_USB_ET61X251) += et61x251/
+obj-$(CONFIG_USB_PWC) += pwc/
+obj-$(CONFIG_USB_ZC0301) += zc0301/
+
+obj-$(CONFIG_USB_IBMCAM) += usbvideo/
+obj-$(CONFIG_USB_KONICAWC) += usbvideo/
+obj-$(CONFIG_USB_VICAM) += usbvideo/
+
EXTRA_CFLAGS += -I$(srctree)/drivers/media/dvb/dvb-core
diff --git a/drivers/usb/media/dabfirmware.h b/drivers/media/video/dabfirmware.h
similarity index 100%
rename from drivers/usb/media/dabfirmware.h
rename to drivers/media/video/dabfirmware.h
diff --git a/drivers/usb/media/dabusb.c b/drivers/media/video/dabusb.c
similarity index 100%
rename from drivers/usb/media/dabusb.c
rename to drivers/media/video/dabusb.c
diff --git a/drivers/usb/media/dabusb.h b/drivers/media/video/dabusb.h
similarity index 100%
rename from drivers/usb/media/dabusb.h
rename to drivers/media/video/dabusb.h
diff --git a/drivers/usb/media/dsbr100.c b/drivers/media/video/dsbr100.c
similarity index 100%
rename from drivers/usb/media/dsbr100.c
rename to drivers/media/video/dsbr100.c
diff --git a/drivers/media/video/et61x251/Makefile b/drivers/media/video/et61x251/Makefile
new file mode 100644
index 000000000000..2ff4db9ec882
--- /dev/null
+++ b/drivers/media/video/et61x251/Makefile
@@ -0,0 +1,4 @@
+et61x251-objs := et61x251_core.o et61x251_tas5130d1b.o
+
+obj-$(CONFIG_USB_ET61X251) += et61x251.o
+
diff --git a/drivers/usb/media/et61x251.h b/drivers/media/video/et61x251/et61x251.h
similarity index 100%
rename from drivers/usb/media/et61x251.h
rename to drivers/media/video/et61x251/et61x251.h
diff --git a/drivers/usb/media/et61x251_core.c b/drivers/media/video/et61x251/et61x251_core.c
similarity index 100%
rename from drivers/usb/media/et61x251_core.c
rename to drivers/media/video/et61x251/et61x251_core.c
diff --git a/drivers/usb/media/et61x251_sensor.h b/drivers/media/video/et61x251/et61x251_sensor.h
similarity index 100%
rename from drivers/usb/media/et61x251_sensor.h
rename to drivers/media/video/et61x251/et61x251_sensor.h
diff --git a/drivers/usb/media/et61x251_tas5130d1b.c b/drivers/media/video/et61x251/et61x251_tas5130d1b.c
similarity index 100%
rename from drivers/usb/media/et61x251_tas5130d1b.c
rename to drivers/media/video/et61x251/et61x251_tas5130d1b.c
diff --git a/drivers/usb/media/ov511.c b/drivers/media/video/ov511.c
similarity index 100%
rename from drivers/usb/media/ov511.c
rename to drivers/media/video/ov511.c
diff --git a/drivers/usb/media/ov511.h b/drivers/media/video/ov511.h
similarity index 100%
rename from drivers/usb/media/ov511.h
rename to drivers/media/video/ov511.h
diff --git a/drivers/usb/media/pwc/Makefile b/drivers/media/video/pwc/Makefile
similarity index 100%
rename from drivers/usb/media/pwc/Makefile
rename to drivers/media/video/pwc/Makefile
diff --git a/drivers/usb/media/pwc/philips.txt b/drivers/media/video/pwc/philips.txt
similarity index 100%
rename from drivers/usb/media/pwc/philips.txt
rename to drivers/media/video/pwc/philips.txt
diff --git a/drivers/usb/media/pwc/pwc-ctrl.c b/drivers/media/video/pwc/pwc-ctrl.c
similarity index 100%
rename from drivers/usb/media/pwc/pwc-ctrl.c
rename to drivers/media/video/pwc/pwc-ctrl.c
diff --git a/drivers/usb/media/pwc/pwc-if.c b/drivers/media/video/pwc/pwc-if.c
similarity index 100%
rename from drivers/usb/media/pwc/pwc-if.c
rename to drivers/media/video/pwc/pwc-if.c
diff --git a/drivers/usb/media/pwc/pwc-ioctl.h b/drivers/media/video/pwc/pwc-ioctl.h
similarity index 100%
rename from drivers/usb/media/pwc/pwc-ioctl.h
rename to drivers/media/video/pwc/pwc-ioctl.h
diff --git a/drivers/usb/media/pwc/pwc-kiara.c b/drivers/media/video/pwc/pwc-kiara.c
similarity index 100%
rename from drivers/usb/media/pwc/pwc-kiara.c
rename to drivers/media/video/pwc/pwc-kiara.c
diff --git a/drivers/usb/media/pwc/pwc-kiara.h b/drivers/media/video/pwc/pwc-kiara.h
similarity index 100%
rename from drivers/usb/media/pwc/pwc-kiara.h
rename to drivers/media/video/pwc/pwc-kiara.h
diff --git a/drivers/usb/media/pwc/pwc-misc.c b/drivers/media/video/pwc/pwc-misc.c
similarity index 100%
rename from drivers/usb/media/pwc/pwc-misc.c
rename to drivers/media/video/pwc/pwc-misc.c
diff --git a/drivers/usb/media/pwc/pwc-nala.h b/drivers/media/video/pwc/pwc-nala.h
similarity index 100%
rename from drivers/usb/media/pwc/pwc-nala.h
rename to drivers/media/video/pwc/pwc-nala.h
diff --git a/drivers/usb/media/pwc/pwc-timon.c b/drivers/media/video/pwc/pwc-timon.c
similarity index 100%
rename from drivers/usb/media/pwc/pwc-timon.c
rename to drivers/media/video/pwc/pwc-timon.c
diff --git a/drivers/usb/media/pwc/pwc-timon.h b/drivers/media/video/pwc/pwc-timon.h
similarity index 100%
rename from drivers/usb/media/pwc/pwc-timon.h
rename to drivers/media/video/pwc/pwc-timon.h
diff --git a/drivers/usb/media/pwc/pwc-uncompress.c b/drivers/media/video/pwc/pwc-uncompress.c
similarity index 100%
rename from drivers/usb/media/pwc/pwc-uncompress.c
rename to drivers/media/video/pwc/pwc-uncompress.c
diff --git a/drivers/usb/media/pwc/pwc-uncompress.h b/drivers/media/video/pwc/pwc-uncompress.h
similarity index 100%
rename from drivers/usb/media/pwc/pwc-uncompress.h
rename to drivers/media/video/pwc/pwc-uncompress.h
diff --git a/drivers/usb/media/pwc/pwc.h b/drivers/media/video/pwc/pwc.h
similarity index 100%
rename from drivers/usb/media/pwc/pwc.h
rename to drivers/media/video/pwc/pwc.h
diff --git a/drivers/usb/media/se401.c b/drivers/media/video/se401.c
similarity index 100%
rename from drivers/usb/media/se401.c
rename to drivers/media/video/se401.c
diff --git a/drivers/usb/media/se401.h b/drivers/media/video/se401.h
similarity index 100%
rename from drivers/usb/media/se401.h
rename to drivers/media/video/se401.h
diff --git a/drivers/media/video/sn9c102/Makefile b/drivers/media/video/sn9c102/Makefile
new file mode 100644
index 000000000000..8bcb0f71d69f
--- /dev/null
+++ b/drivers/media/video/sn9c102/Makefile
@@ -0,0 +1,7 @@
+sn9c102-objs := sn9c102_core.o sn9c102_hv7131d.o sn9c102_mi0343.o \
+ sn9c102_ov7630.o sn9c102_pas106b.o sn9c102_pas202bca.o \
+ sn9c102_pas202bcb.o sn9c102_tas5110c1b.o \
+ sn9c102_tas5130d1b.o
+
+obj-$(CONFIG_USB_SN9C102) += sn9c102.o
+
diff --git a/drivers/usb/media/sn9c102.h b/drivers/media/video/sn9c102/sn9c102.h
similarity index 100%
rename from drivers/usb/media/sn9c102.h
rename to drivers/media/video/sn9c102/sn9c102.h
diff --git a/drivers/usb/media/sn9c102_core.c b/drivers/media/video/sn9c102/sn9c102_core.c
similarity index 100%
rename from drivers/usb/media/sn9c102_core.c
rename to drivers/media/video/sn9c102/sn9c102_core.c
diff --git a/drivers/usb/media/sn9c102_hv7131d.c b/drivers/media/video/sn9c102/sn9c102_hv7131d.c
similarity index 100%
rename from drivers/usb/media/sn9c102_hv7131d.c
rename to drivers/media/video/sn9c102/sn9c102_hv7131d.c
diff --git a/drivers/usb/media/sn9c102_mi0343.c b/drivers/media/video/sn9c102/sn9c102_mi0343.c
similarity index 100%
rename from drivers/usb/media/sn9c102_mi0343.c
rename to drivers/media/video/sn9c102/sn9c102_mi0343.c
diff --git a/drivers/usb/media/sn9c102_ov7630.c b/drivers/media/video/sn9c102/sn9c102_ov7630.c
similarity index 100%
rename from drivers/usb/media/sn9c102_ov7630.c
rename to drivers/media/video/sn9c102/sn9c102_ov7630.c
diff --git a/drivers/usb/media/sn9c102_pas106b.c b/drivers/media/video/sn9c102/sn9c102_pas106b.c
similarity index 100%
rename from drivers/usb/media/sn9c102_pas106b.c
rename to drivers/media/video/sn9c102/sn9c102_pas106b.c
diff --git a/drivers/usb/media/sn9c102_pas202bca.c b/drivers/media/video/sn9c102/sn9c102_pas202bca.c
similarity index 100%
rename from drivers/usb/media/sn9c102_pas202bca.c
rename to drivers/media/video/sn9c102/sn9c102_pas202bca.c
diff --git a/drivers/usb/media/sn9c102_pas202bcb.c b/drivers/media/video/sn9c102/sn9c102_pas202bcb.c
similarity index 100%
rename from drivers/usb/media/sn9c102_pas202bcb.c
rename to drivers/media/video/sn9c102/sn9c102_pas202bcb.c
diff --git a/drivers/usb/media/sn9c102_sensor.h b/drivers/media/video/sn9c102/sn9c102_sensor.h
similarity index 100%
rename from drivers/usb/media/sn9c102_sensor.h
rename to drivers/media/video/sn9c102/sn9c102_sensor.h
diff --git a/drivers/usb/media/sn9c102_tas5110c1b.c b/drivers/media/video/sn9c102/sn9c102_tas5110c1b.c
similarity index 100%
rename from drivers/usb/media/sn9c102_tas5110c1b.c
rename to drivers/media/video/sn9c102/sn9c102_tas5110c1b.c
diff --git a/drivers/usb/media/sn9c102_tas5130d1b.c b/drivers/media/video/sn9c102/sn9c102_tas5130d1b.c
similarity index 100%
rename from drivers/usb/media/sn9c102_tas5130d1b.c
rename to drivers/media/video/sn9c102/sn9c102_tas5130d1b.c
diff --git a/drivers/usb/media/stv680.c b/drivers/media/video/stv680.c
similarity index 100%
rename from drivers/usb/media/stv680.c
rename to drivers/media/video/stv680.c
diff --git a/drivers/usb/media/stv680.h b/drivers/media/video/stv680.h
similarity index 100%
rename from drivers/usb/media/stv680.h
rename to drivers/media/video/stv680.h
diff --git a/drivers/media/video/usbvideo/Makefile b/drivers/media/video/usbvideo/Makefile
new file mode 100644
index 000000000000..ed410a5ee8c9
--- /dev/null
+++ b/drivers/media/video/usbvideo/Makefile
@@ -0,0 +1,4 @@
+obj-$(CONFIG_USB_IBMCAM) += ibmcam.o usbvideo.o ultracam.o
+obj-$(CONFIG_USB_KONICAWC) += konicawc.o usbvideo.o
+obj-$(CONFIG_USB_VICAM) += vicam.o usbvideo.o
+
diff --git a/drivers/usb/media/ibmcam.c b/drivers/media/video/usbvideo/ibmcam.c
similarity index 100%
rename from drivers/usb/media/ibmcam.c
rename to drivers/media/video/usbvideo/ibmcam.c
diff --git a/drivers/usb/media/konicawc.c b/drivers/media/video/usbvideo/konicawc.c
similarity index 100%
rename from drivers/usb/media/konicawc.c
rename to drivers/media/video/usbvideo/konicawc.c
diff --git a/drivers/usb/media/ultracam.c b/drivers/media/video/usbvideo/ultracam.c
similarity index 100%
rename from drivers/usb/media/ultracam.c
rename to drivers/media/video/usbvideo/ultracam.c
diff --git a/drivers/usb/media/usbvideo.c b/drivers/media/video/usbvideo/usbvideo.c
similarity index 100%
rename from drivers/usb/media/usbvideo.c
rename to drivers/media/video/usbvideo/usbvideo.c
diff --git a/drivers/usb/media/usbvideo.h b/drivers/media/video/usbvideo/usbvideo.h
similarity index 100%
rename from drivers/usb/media/usbvideo.h
rename to drivers/media/video/usbvideo/usbvideo.h
diff --git a/drivers/usb/media/vicam.c b/drivers/media/video/usbvideo/vicam.c
similarity index 100%
rename from drivers/usb/media/vicam.c
rename to drivers/media/video/usbvideo/vicam.c
diff --git a/drivers/usb/media/w9968cf.c b/drivers/media/video/w9968cf.c
similarity index 100%
rename from drivers/usb/media/w9968cf.c
rename to drivers/media/video/w9968cf.c
diff --git a/drivers/usb/media/w9968cf.h b/drivers/media/video/w9968cf.h
similarity index 100%
rename from drivers/usb/media/w9968cf.h
rename to drivers/media/video/w9968cf.h
diff --git a/drivers/usb/media/w9968cf_decoder.h b/drivers/media/video/w9968cf_decoder.h
similarity index 100%
rename from drivers/usb/media/w9968cf_decoder.h
rename to drivers/media/video/w9968cf_decoder.h
diff --git a/drivers/usb/media/w9968cf_vpp.h b/drivers/media/video/w9968cf_vpp.h
similarity index 100%
rename from drivers/usb/media/w9968cf_vpp.h
rename to drivers/media/video/w9968cf_vpp.h
diff --git a/drivers/media/video/zc0301/Makefile b/drivers/media/video/zc0301/Makefile
new file mode 100644
index 000000000000..d749199d8f06
--- /dev/null
+++ b/drivers/media/video/zc0301/Makefile
@@ -0,0 +1,3 @@
+zc0301-objs := zc0301_core.o zc0301_pas202bcb.o
+
+obj-$(CONFIG_USB_ZC0301) += zc0301.o
diff --git a/drivers/usb/media/zc0301.h b/drivers/media/video/zc0301/zc0301.h
similarity index 100%
rename from drivers/usb/media/zc0301.h
rename to drivers/media/video/zc0301/zc0301.h
diff --git a/drivers/usb/media/zc0301_core.c b/drivers/media/video/zc0301/zc0301_core.c
similarity index 100%
rename from drivers/usb/media/zc0301_core.c
rename to drivers/media/video/zc0301/zc0301_core.c
diff --git a/drivers/usb/media/zc0301_pas202bcb.c b/drivers/media/video/zc0301/zc0301_pas202bcb.c
similarity index 100%
rename from drivers/usb/media/zc0301_pas202bcb.c
rename to drivers/media/video/zc0301/zc0301_pas202bcb.c
diff --git a/drivers/usb/media/zc0301_sensor.h b/drivers/media/video/zc0301/zc0301_sensor.h
similarity index 100%
rename from drivers/usb/media/zc0301_sensor.h
rename to drivers/media/video/zc0301/zc0301_sensor.h
diff --git a/drivers/usb/Kconfig b/drivers/usb/Kconfig
index b1222cd4aa46..7fdbc5dad5fd 100644
--- a/drivers/usb/Kconfig
+++ b/drivers/usb/Kconfig
@@ -87,8 +87,6 @@ source "drivers/usb/input/Kconfig"
source "drivers/usb/image/Kconfig"
-source "drivers/usb/media/Kconfig"
-
source "drivers/usb/net/Kconfig"
source "drivers/usb/mon/Kconfig"
diff --git a/drivers/usb/Makefile b/drivers/usb/Makefile
index bb36a1c1dbb3..9b7d9769fdcc 100644
--- a/drivers/usb/Makefile
+++ b/drivers/usb/Makefile
@@ -35,20 +35,6 @@ obj-$(CONFIG_USB_WACOM) += input/
obj-$(CONFIG_USB_ACECAD) += input/
obj-$(CONFIG_USB_XPAD) += input/
-obj-$(CONFIG_USB_DABUSB) += media/
-obj-$(CONFIG_USB_DSBR) += media/
-obj-$(CONFIG_USB_ET61X251) += media/
-obj-$(CONFIG_USB_IBMCAM) += media/
-obj-$(CONFIG_USB_KONICAWC) += media/
-obj-$(CONFIG_USB_OV511) += media/
-obj-$(CONFIG_USB_PWC) += media/
-obj-$(CONFIG_USB_SE401) += media/
-obj-$(CONFIG_USB_SN9C102) += media/
-obj-$(CONFIG_USB_STV680) += media/
-obj-$(CONFIG_USB_VICAM) += media/
-obj-$(CONFIG_USB_W9968CF) += media/
-obj-$(CONFIG_USB_ZC0301) += media/
-
obj-$(CONFIG_USB_CATC) += net/
obj-$(CONFIG_USB_KAWETH) += net/
obj-$(CONFIG_USB_PEGASUS) += net/
diff --git a/drivers/usb/media/Kconfig b/drivers/usb/media/Kconfig
deleted file mode 100644
index 189d40f96be5..000000000000
--- a/drivers/usb/media/Kconfig
+++ /dev/null
@@ -1,241 +0,0 @@
-#
-# USB Multimedia device configuration
-#
-comment "USB Multimedia devices"
- depends on USB
-
-config USB_DABUSB
- tristate "DABUSB driver"
- depends on USB
- ---help---
- A Digital Audio Broadcasting (DAB) Receiver for USB and Linux
- brought to you by the DAB-Team
- . This driver can be taken
- as an example for URB-based bulk, control, and isochronous
- transactions. URB's are explained in
- .
-
- To compile this driver as a module, choose M here: the
- module will be called dabusb.
-
-comment "Video4Linux support is needed for USB Multimedia device support"
- depends on USB && VIDEO_DEV=n
-
-config USB_VICAM
- tristate "USB 3com HomeConnect (aka vicam) support (EXPERIMENTAL)"
- depends on USB && VIDEO_DEV && EXPERIMENTAL
- ---help---
- Say Y here if you have 3com homeconnect camera (vicam).
-
- This driver uses the Video For Linux API. You must say Y or M to
- "Video For Linux" (under Multimedia Devices) to use this driver.
- Information on this API and pointers to "v4l" programs may be found
- at .
-
- To compile this driver as a module, choose M here: the
- module will be called vicam.
-
-config USB_DSBR
- tristate "D-Link USB FM radio support (EXPERIMENTAL)"
- depends on USB && VIDEO_DEV && 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
- you must connect the line out connector to a sound card or a
- set of speakers.
-
- This driver uses the Video For Linux API. You must enable
- (Y or M in config) Video For Linux (under Character Devices)
- to use this driver. Information on this API and pointers to
- "v4l" programs may be found at
- .
-
- To compile this driver as a module, choose M here: the
- module will be called dsbr100.
-
-config USB_ET61X251
- tristate "USB ET61X[12]51 PC Camera Controller support"
- depends on USB && VIDEO_DEV
- ---help---
- Say Y here if you want support for cameras based on Etoms ET61X151
- or ET61X251 PC Camera Controllers.
-
- See for more informations.
-
- This driver uses the Video For Linux API. You must say Y or M to
- "Video For Linux" to use this driver.
-
- To compile this driver as a module, choose M here: the
- module will be called et61x251.
-
-config USB_IBMCAM
- tristate "USB IBM (Xirlink) C-it Camera support"
- depends on USB && VIDEO_DEV
- ---help---
- Say Y here if you want to connect a IBM "C-It" camera, also known as
- "Xirlink PC Camera" to your computer's USB port. For more
- information, read .
-
- This driver uses the Video For Linux API. You must enable
- (Y or M in config) Video For Linux (under Character Devices)
- to use this driver. Information on this API and pointers to
- "v4l" programs may be found at
- .
-
- To compile this driver as a module, choose M here: the
- module will be called ibmcam.
-
- This camera has several configuration options which
- can be specified when you load the module. Read
- to learn more.
-
-config USB_KONICAWC
- tristate "USB Konica Webcam support"
- depends on USB && VIDEO_DEV
- ---help---
- Say Y here if you want support for webcams based on a Konica
- chipset. This is known to work with the Intel YC76 webcam.
-
- This driver uses the Video For Linux API. You must enable
- (Y or M in config) Video For Linux (under Character Devices)
- to use this driver. Information on this API and pointers to
- "v4l" programs may be found at
- .
-
- To compile this driver as a module, choose M here: the
- module will be called konicawc.
-
-config USB_OV511
- tristate "USB OV511 Camera support"
- depends on USB && VIDEO_DEV
- ---help---
- Say Y here if you want to connect this type of camera to your
- computer's USB port. See for more
- information and for a list of supported cameras.
-
- This driver uses the Video For Linux API. You must say Y or M to
- "Video For Linux" (under Character Devices) to use this driver.
- Information on this API and pointers to "v4l" programs may be found
- at .
-
- To compile this driver as a module, choose M here: the
- module will be called ov511.
-
-config USB_SE401
- tristate "USB SE401 Camera support"
- depends on USB && VIDEO_DEV
- ---help---
- Say Y here if you want to connect this type of camera to your
- computer's USB port. See for more
- information and for a list of supported cameras.
-
- This driver uses the Video For Linux API. You must say Y or M to
- "Video For Linux" (under Multimedia Devices) to use this driver.
- Information on this API and pointers to "v4l" programs may be found
- at .
-
- To compile this driver as a module, choose M here: the
- module will be called se401.
-
-config USB_SN9C102
- tristate "USB SN9C10x PC Camera Controller support"
- depends on USB && VIDEO_DEV
- ---help---
- Say Y here if you want support for cameras based on SONiX SN9C101,
- SN9C102 or SN9C103 PC Camera Controllers.
-
- See for more informations.
-
- This driver uses the Video For Linux API. You must say Y or M to
- "Video For Linux" to use this driver.
-
- To compile this driver as a module, choose M here: the
- module will be called sn9c102.
-
-config USB_STV680
- tristate "USB STV680 (Pencam) Camera support"
- depends on USB && VIDEO_DEV
- ---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.
- See for more information and for
- a list of supported cameras.
-
- This driver uses the Video For Linux API. You must say Y or M to
- "Video For Linux" (under Multimedia Devices) to use this driver.
- Information on this API and pointers to "v4l" programs may be found
- at .
-
- To compile this driver as a module, choose M here: the
- module will be called stv680.
-
-config USB_W9968CF
- tristate "USB W996[87]CF JPEG Dual Mode Camera support"
- depends on USB && VIDEO_DEV && I2C && VIDEO_OVCAMCHIP
- ---help---
- Say Y here if you want support for cameras based on OV681 or
- Winbond W9967CF/W9968CF JPEG USB Dual Mode Camera Chips.
-
- This driver has an optional plugin, which is distributed as a
- separate module only (released under GPL). It allows to use higher
- resolutions and framerates, but cannot be included in the official
- Linux kernel for performance purposes.
-
- See for more informations.
-
- This driver uses the Video For Linux and the I2C APIs. It needs the
- OmniVision Camera Chip support as well. You must say Y or M to
- "Video For Linux", "I2C Support" and "OmniVision Camera Chip
- support" to use this driver.
-
- To compile this driver as a module, choose M here: the
- module will be called w9968cf.
-
-config USB_ZC0301
- tristate "USB ZC0301 Image Processor and Control Chip support"
- depends on USB && VIDEO_DEV
- ---help---
- Say Y here if you want support for cameras based on the ZC0301
- Image Processor and Control Chip.
-
- See for more informations.
-
- This driver uses the Video For Linux API. You must say Y or M to
- "Video For Linux" to use this driver.
-
- To compile this driver as a module, choose M here: the
- module will be called zc0301.
-
-config USB_PWC
- tristate "USB Philips Cameras"
- depends on USB && VIDEO_DEV
- ---help---
- Say Y or M here if you want to use one of these Philips & OEM
- webcams:
- * Philips PCA645, PCA646
- * Philips PCVC675, PCVC680, PCVC690
- * Philips PCVC720/40, PCVC730, PCVC740, PCVC750
- * Askey VC010
- * Logitech QuickCam Pro 3000, 4000, 'Zoom', 'Notebook Pro'
- and 'Orbit'/'Sphere'
- * Samsung MPC-C10, MPC-C30
- * Creative Webcam 5, Pro Ex
- * SOTEC Afina Eye
- * Visionite VCS-UC300, VCS-UM100
-
- The PCA635, PCVC665 and PCVC720/20 are not supported by this driver
- and never will be, but the 665 and 720/20 are supported by other
- drivers.
-
- See for more information and
- installation instructions.
-
- The built-in microphone is enabled by selecting USB Audio support.
-
- This driver uses the Video For Linux API. You must say Y or M to
- "Video For Linux" (under Character Devices) to use this driver.
- Information on this API and pointers to "v4l" programs may be found
- at .
-
- To compile this driver as a module, choose M here: the
- module will be called pwc.
diff --git a/drivers/usb/media/Makefile b/drivers/usb/media/Makefile
deleted file mode 100644
index 50e89a33b85e..000000000000
--- a/drivers/usb/media/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# Makefile for USB Media drivers
-#
-
-sn9c102-objs := sn9c102_core.o sn9c102_hv7131d.o sn9c102_mi0343.o \
- sn9c102_ov7630.o sn9c102_pas106b.o sn9c102_pas202bca.o \
- sn9c102_pas202bcb.o sn9c102_tas5110c1b.o \
- sn9c102_tas5130d1b.o
-et61x251-objs := et61x251_core.o et61x251_tas5130d1b.o
-zc0301-objs := zc0301_core.o zc0301_pas202bcb.o
-
-obj-$(CONFIG_USB_DABUSB) += dabusb.o
-obj-$(CONFIG_USB_DSBR) += dsbr100.o
-obj-$(CONFIG_USB_ET61X251) += et61x251.o
-obj-$(CONFIG_USB_IBMCAM) += ibmcam.o usbvideo.o ultracam.o
-obj-$(CONFIG_USB_KONICAWC) += konicawc.o usbvideo.o
-obj-$(CONFIG_USB_OV511) += ov511.o
-obj-$(CONFIG_USB_SE401) += se401.o
-obj-$(CONFIG_USB_SN9C102) += sn9c102.o
-obj-$(CONFIG_USB_STV680) += stv680.o
-obj-$(CONFIG_USB_VICAM) += vicam.o usbvideo.o
-obj-$(CONFIG_USB_W9968CF) += w9968cf.o
-obj-$(CONFIG_USB_ZC0301) += zc0301.o
-obj-$(CONFIG_USB_PWC) += pwc/