V4L/DVB (9096): gspca: Subdriver selection at config time.

Signed-off-by: Erik Andren <erik.andren@gmail.com>
Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
diff --git a/drivers/media/video/gspca/Kconfig b/drivers/media/video/gspca/Kconfig
index fd31099..aa7f3eb 100644
--- a/drivers/media/video/gspca/Kconfig
+++ b/drivers/media/video/gspca/Kconfig
@@ -1,16 +1,203 @@
-config USB_GSPCA
-	tristate "USB GSPCA driver"
+menuconfig USB_GSPCA
+	tristate "GSPCA based webcams"
 	depends on VIDEO_V4L2
+	default m
 	---help---
-	  Say Y here if you want support for various USB webcams.
+	Say Y here if you want to enable selecting webcams based
+	on the GSPCA framework.
 
-	  See <file:Documentation/video4linux/gspca.txt> for more info.
+	See <file:Documentation/video4linux/gspca.txt> for more info.
 
-	  This driver uses the Video For Linux API. You must say Y or M to
-	  "Video For Linux" to use this driver.
+	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 modules, choose M here: the
-	  modules will be called gspca_xxxx.
+	To compile this driver as modules, choose M here: the
+	modules will be called gspca_main.
+
+
+if USB_GSPCA && VIDEO_V4L2
 
 source "drivers/media/video/gspca/m5602/Kconfig"
 
+config USB_GSPCA_CONEX
+	tristate "Conexant Camera Driver"
+	depends on VIDEO_V4L2 && USB_GSPCA
+	help
+	Say Y here if you want support for cameras based on the Conexant chip.
+
+	To compile this driver as a module, choose M here: the
+	module will be called gspca_conex.
+
+config USB_GSPCA_ETOMS
+	tristate "Etoms USB Camera Driver"
+	depends on VIDEO_V4L2 && USB_GSPCA
+	help
+	Say Y here if you want support for cameras based on the Etoms chip.
+
+	To compile this driver as a module, choose M here: the
+	module will be called gspca_etoms.
+
+config USB_GSPCA_MARS
+	tristate "Mars USB Camera Driver"
+	depends on VIDEO_V4L2 && USB_GSPCA
+	help
+	Say Y here if you want support for cameras based on the Mars chip.
+
+	To compile this driver as a module, choose M here: the
+	module will be called gspca_mars.
+
+config USB_GSPCA_OV519
+	tristate "OV519 USB Camera Driver"
+	depends on VIDEO_V4L2 && USB_GSPCA
+	help
+	Say Y here if you want support for cameras based on the OV519 chip.
+
+	To compile this driver as a module, choose M here: the
+	module will be called gspca_ov519.
+
+config USB_GSPCA_PAC207
+	tristate "Pixart PAC207 USB Camera Driver"
+	depends on VIDEO_V4L2 && USB_GSPCA
+	help
+	Say Y here if you want support for cameras based on the PAC207 chip.
+
+	To compile this driver as a module, choose M here: the
+	module will be called gspca_pac207.
+
+config USB_GSPCA_PAC7311
+	tristate "Pixart PAC7311 USB Camera Driver"
+	depends on VIDEO_V4L2 && USB_GSPCA
+	help
+	Say Y here if you want support for cameras based on the PAC7311 chip.
+
+	To compile this driver as a module, choose M here: the
+	module will be called gspca_pac7311.
+
+config USB_GSPCA_SONIXB
+	tristate "SN9C102 USB Camera Driver"
+	depends on VIDEO_V4L2 && USB_GSPCA
+	help
+	Say Y here if you want support for cameras based on the SONIXB chip.
+
+	To compile this driver as a module, choose M here: the
+	module will be called gspca_sonixb.
+
+config USB_GSPCA_SONIXJ
+	tristate "SONIX JPEG USB Camera Driver"
+	depends on VIDEO_V4L2 && USB_GSPCA
+	help
+	Say Y here if you want support for cameras based on the SONIXJ chip.
+
+	To compile this driver as a module, choose M here: the
+	module will be called gspca_sonixj
+
+config USB_GSPCA_SPCA500
+	tristate "SPCA500 USB Camera Driver"
+	depends on VIDEO_V4L2 && USB_GSPCA
+	help
+	Say Y here if you want support for cameras based on the SPCA500 chip.
+
+	To compile this driver as a module, choose M here: the
+	module will be called gspca_spca500.
+
+config USB_GSPCA_SPCA501
+	tristate "SPCA501 USB Camera Driver"
+	depends on VIDEO_V4L2 && USB_GSPCA
+	help
+	Say Y here if you want support for cameras based on the SPCA501 chip.
+
+	To compile this driver as a module, choose M here: the
+	module will be called gspca_spca501.
+
+config USB_GSPCA_SPCA505
+	tristate "SPCA505 USB Camera Driver"
+	depends on VIDEO_V4L2 && USB_GSPCA
+	help
+	Say Y here if you want support for cameras based on the SPCA505 chip.
+
+	To compile this driver as a module, choose M here: the
+	module will be called gspca_spca505.
+
+config USB_GSPCA_SPCA506
+	tristate "SPCA506 USB Camera Driver"
+	depends on VIDEO_V4L2 && USB_GSPCA
+	help
+	Say Y here if you want support for cameras based on the SPCA506 chip.
+
+	To compile this driver as a module, choose M here: the
+	module will be called gspca_spca506.
+
+config USB_GSPCA_SPCA508
+	tristate "SPCA508 USB Camera Driver"
+	depends on VIDEO_V4L2 && USB_GSPCA
+	help
+	Say Y here if you want support for cameras based on the SPCA508 chip.
+
+	To compile this driver as a module, choose M here: the
+	module will be called gspca_spca508.
+
+config USB_GSPCA_SPCA561
+	tristate "SPCA561 USB Camera Driver"
+	depends on VIDEO_V4L2 && USB_GSPCA
+	help
+	Say Y here if you want support for cameras based on the SPCA561 chip.
+
+	To compile this driver as a module, choose M here: the
+	module will be called gspca_spca561.
+
+config USB_GSPCA_STK014
+	tristate "Syntek DV4000 (STK014) USB Camera Driver"
+	depends on VIDEO_V4L2 && USB_GSPCA
+	help
+	Say Y here if you want support for cameras based on the STK014 chip.
+
+	To compile this driver as a module, choose M here: the
+	module will be called gspca_stk014.
+
+config USB_GSPCA_SPCA5XX
+	tristate "SPCA5xx USB Camera Driver"
+	depends on VIDEO_V4L2 && USB_GSPCA
+	help
+	Say Y here if you want support for cameras based on the Sunplus
+	SPCA504(abc) SPCA533 SPCA536 chips.
+
+	To compile this driver as a module, choose M here: the
+	module will be called gspca_spca5xx.
+
+config USB_GSPCA_T613
+	tristate "T613 (JPEG Compliance) USB Camera Driver"
+	depends on VIDEO_V4L2 && USB_GSPCA
+	help
+	Say Y here if you want support for cameras based on the T613 chip.
+
+	To compile this driver as a module, choose M here: the
+	module will be called gspca_t613.
+
+config USB_GSPCA_TV8531
+	tristate "TV8532 USB Camera Driver"
+	depends on VIDEO_V4L2 && USB_GSPCA
+	help
+	Say Y here if you want support for cameras based on the TV8531 chip.
+
+	To compile this driver as a module, choose M here: the
+	module will be called gspca_tv8532.
+
+config USB_GSPCA_VC032X
+	tristate "VC032X USB Camera Driver"
+	depends on VIDEO_V4L2 && USB_GSPCA
+	help
+	Say Y here if you want support for cameras based on the VC032X chip.
+
+	To compile this driver as a module, choose M here: the
+	module will be called gspca_vc032x.
+
+config USB_GSPCA_ZC3XX
+	tristate "VC3xx USB Camera Driver"
+	depends on VIDEO_V4L2 && USB_GSPCA
+	help
+	Say Y here if you want support for cameras based on the ZC3XX chip.
+
+	To compile this driver as a module, choose M here: the
+	module will be called gspca_zc3xx.
+
+endif
diff --git a/drivers/media/video/gspca/Makefile b/drivers/media/video/gspca/Makefile
index 488ed97..b510b06 100644
--- a/drivers/media/video/gspca/Makefile
+++ b/drivers/media/video/gspca/Makefile
@@ -1,33 +1,46 @@
-obj-$(CONFIG_USB_GSPCA)	+= gspca_main.o \
-	gspca_conex.o gspca_etoms.o gspca_finepix.o gspca_mars.o \
-	gspca_ov519.o gspca_pac207.o gspca_pac7311.o \
-	gspca_sonixb.o gspca_sonixj.o gspca_spca500.o gspca_spca501.o \
-	gspca_spca505.o gspca_spca506.o gspca_spca508.o gspca_spca561.o \
-	gspca_sunplus.o gspca_stk014.o gspca_t613.o gspca_tv8532.o \
-	gspca_vc032x.o gspca_zc3xx.o
+obj-$(CONFIG_USB_GSPCA)		+= gspca_main.o
+obj-$(CONFIG_USB_GSPCA_CONEX)	+= gspca_conex.o
+obj-$(CONFIG_USB_GSPCA_ETOMS)	+= gspca_etoms.o
+obj-$(CONFIG_USB_GSPCA_MARS)	+= gspca_mars.o
+obj-$(CONFIG_USB_GSPCA_OV519)	+= gspca_ov519.o
+obj-$(CONFIG_USB_GSPCA_PAC207)	+= gspca_pac207.o
+obj-$(CONFIG_USB_GSPCA_PAC7311) += gspca_pac7311.o
+obj-$(CONFIG_USB_GSPCA_SONIXB)	+= gspca_sonixb.o
+obj-$(CONFIG_USB_GSPCA_SONXIJ)	+= gspca_sonixj.o
+obj-$(CONFIG_USB_GSPCA_SPCA500) += gspca_spca500.o
+obj-$(CONFIG_USB_GSPCA_SPCA501) += gspca_spca501.o
+obj-$(CONFIG_USB_GSPCA_SPCA505) += gspca_spca505.o
+obj-$(CONFIG_USB_GSPCA_SPCA506) += gspca_spca506.o
+obj-$(CONFIG_USB_GSPCA_SPCA508) += gspca_spca508.o
+obj-$(CONFIG_USB_GSPCA_SPCA561) += gspca_spca561.o
+obj-$(CONFIG_USB_GSPCA_SUNPLUS) += gspca_sunplus.o
+obj-$(CONFIG_USB_GSPCA_STK014)	+= gspca_stk014.o
+obj-$(CONFIG_USB_GSPCA_T613)	+= gspca_t613.o
+obj-$(CONFIG_USB_GSPCA_TV8532)	+= gspca_tv8532.o
+obj-$(CONFIG_USB_GSPCA_VC032X)	+= gspca_vc032x.o
+obj-$(CONFIG_USB_GSPCA_ZC3XX)	+= gspca_zc3xx.o
 
-gspca_main-objs := gspca.o
-gspca_conex-objs := conex.o
-gspca_etoms-objs := etoms.o
-gspca_finepix-objs := finepix.o
-gspca_mars-objs := mars.o
-gspca_ov519-objs := ov519.o
-gspca_pac207-objs := pac207.o
-gspca_pac7311-objs := pac7311.o
-gspca_sonixb-objs := sonixb.o
-gspca_sonixj-objs := sonixj.o
-gspca_spca500-objs := spca500.o
-gspca_spca501-objs := spca501.o
-gspca_spca505-objs := spca505.o
-gspca_spca506-objs := spca506.o
-gspca_spca508-objs := spca508.o
-gspca_spca561-objs := spca561.o
-gspca_stk014-objs := stk014.o
-gspca_sunplus-objs := sunplus.o
-gspca_t613-objs := t613.o
-gspca_tv8532-objs := tv8532.o
-gspca_vc032x-objs := vc032x.o
-gspca_zc3xx-objs := zc3xx.o
+gspca_main-objs			:= gspca.o
+gspca_conex-objs		:= conex.o
+gspca_etoms-objs		:= etoms.o
+gspca_mars-objs			:= mars.o
+gspca_ov519-objs		:= ov519.o
+gspca_pac207-objs		:= pac207.o
+gspca_pac7311-objs		:= pac7311.o
+gspca_sonixb-objs		:= sonixb.o
+gspca_sonixj-objs		:= sonixj.o
+gspca_spca500-objs		:= spca500.o
+gspca_spca501-objs		:= spca501.o
+gspca_spca505-objs		:= spca505.o
+gspca_spca506-objs		:= spca506.o
+gspca_spca508-objs		:= spca508.o
+gspca_spca561-objs		:= spca561.o
+gspca_stk014-objs		:= stk014.o
+gspca_sunplus-objs		:= sunplus.o
+gspca_t613-objs			:= t613.o
+gspca_tv8532-objs		:= tv8532.o
+gspca_vc032x-objs		:= vc032x.o
+gspca_zc3xx-objs		:= zc3xx.o
 
-obj-$(CONFIG_USB_M5602)         += m5602/
+obj-$(CONFIG_USB_M5602)		+= m5602/
 
diff --git a/drivers/media/video/gspca/m5602/Kconfig b/drivers/media/video/gspca/m5602/Kconfig
index 7de33e2..5a69016 100644
--- a/drivers/media/video/gspca/m5602/Kconfig
+++ b/drivers/media/video/gspca/m5602/Kconfig
@@ -1,5 +1,5 @@
 config USB_M5602
-	tristate "USB ALi m5602 Webcam support"
+	tristate "ALi USB m5602 Camera Driver"
 	depends on VIDEO_V4L2 && USB_GSPCA
 	help
 	  Say Y here if you want support for cameras based on the
@@ -8,4 +8,4 @@
 	  See <file:Documentation/video4linux/m5602.txt> for more info.
 
 	  To compile this driver as a module, choose M here: the
-	  module will be called gspca-m5602.
+	  module will be called gspca_m5602.