commit d86c2d34113650f95cee3017d63bea2b0109c8da
parent 634557bf4dab7bf39eabc901184f3b8572bfb3d7
Author: alex <alex@022568fa-442e-4ef8-a3e8-54dcafdb011a>
Date:   Wed, 16 Jan 2008 21:53:14 +0000
* Added support for 183b UVC camera.
* Empty out R5U870_VERSION_EXTRA value.
git-svn-id: http://svn.mediati.org/svn/r5u870/trunk@34 022568fa-442e-4ef8-a3e8-54dcafdb011a
Diffstat:
4 files changed, 31 insertions(+), 2 deletions(-)
diff --git a/ChangeLog b/ChangeLog
@@ -1,3 +1,9 @@
+2008-01-17  Alexander Hixon  <hixon.alexander@mediati.org>
+    * r5u870.c, r5u870_183b.fw, Makefile: Added support for 183b UVC
+      camera. Still not sure about all the WDM controls it supports.
+    * r5u870.c: Remove R5U870_VERSION_EXTRA value, since we're at 0.11.0 - 
+      original device driver never used this version.
+
 2008-01-16  Alexander Hixon  <hixon.alexander@mediati.org>
     * ChangeLog: Reformat changelog style, and added missing entries.
     * KBuild, usbcam/usbcam_priv.h, usbcam/usbcam.h, usbcam/usbcam_fops.c,
diff --git a/Makefile b/Makefile
@@ -26,7 +26,7 @@ FWDIR ?= /lib/firmware
 # Old module name to detect and complain about when installing
 OLD_MODULE_NM = ry5u870.ko
 
-FWFILES = r5u870_1830.fw r5u870_1832.fw r5u870_1833.fw r5u870_1834.fw r5u870_1835.fw r5u870_1836.fw r5u870_1870_1.fw r5u870_1870.fw r5u870_1810.fw r5u870_183a.fw 
+FWFILES = r5u870_1830.fw r5u870_1832.fw r5u870_1833.fw r5u870_1834.fw r5u870_1835.fw r5u870_1836.fw r5u870_1870_1.fw r5u870_1870.fw r5u870_1810.fw r5u870_183a.fw r5u870_183b.fw 
 
 ifneq ($(KERNELRELEASE),)
 include $(src)/Kbuild
diff --git a/r5u870.c b/r5u870.c
@@ -70,7 +70,7 @@
 #define r5u_dbg(RV, SUBSYS, FMT...) usbcam_dbg((RV)->vh_parent, SUBSYS, FMT)
 
 #define R5U870_VERSION KERNEL_VERSION(0,11,0)
-#define R5U870_VERSION_EXTRA "halex"
+#define R5U870_VERSION_EXTRA ""
 
 
 struct r5u870_resolution {
@@ -867,6 +867,7 @@ enum {
 
 static const char *r5u870_powerline_names[] = { "Off", "50Hz", "60Hz" };
 
+/* TODO: Use our own internal control IDs, instead of crap unmerged ones. */
 static struct r5u870_ctrl r5u870_wdm_ctrls[] = {
 
 	[R5U870_WDM_CTRL_BRIGHTNESS] = {
@@ -2653,6 +2654,19 @@ static const int r5u870_1810_183a_ctrls[] = {
  	R5U870_WDM_CTRL_NIGHTMODE, 
 	R5U870_WDM_CTRL_LAST,
 };
+static const int r5u870_1810_183b_ctrls[] = {
+    /* TODO: Maybe there are more of these? I don't actually have a webcam
+       to test against the different WDM controls. */
+ 	R5U870_WDM_CTRL_WB_RED, 
+ 	R5U870_WDM_CTRL_WB_GREEN,
+ 	R5U870_WDM_CTRL_WB_BLUE, 
+ 	R5U870_WDM_CTRL_WB_AUTO, 
+ 	R5U870_WDM_CTRL_VFLIP, 
+ 	R5U870_WDM_CTRL_HFLIP, 
+ 	R5U870_WDM_CTRL_PRIVACY,
+ 	R5U870_WDM_CTRL_NIGHTMODE, 
+	R5U870_WDM_CTRL_LAST,
+};
 
 
 /*
@@ -2716,6 +2730,7 @@ enum {
 	R5U870_DI_VGP_VCC5,
 	R5U870_DI_VGP_VCC4,
 	R5U870_DI_VGP_VCC7,
+	R5U870_DI_VGP_VCC8,
 	R5U870_DI_HP_WEBCAM1K,
 	R5U870_DI_HP_PAVWC_WDM,
 	R5U870_DI_HP_PAVWC_UVC,
@@ -2777,6 +2792,13 @@ static const struct r5u870_model r5u870_models[] = {
 		.rm_wdm_ctrlids = r5u870_1810_183a_ctrls,
 		.rm_uvc = 1,
 	},
+	[R5U870_DI_VGP_VCC8] = {
+		.rm_name = "Sony VGP-VCC8",
+		.rm_ucode_file = "r5u870_183b.fw",
+		.rm_ucode_version = 0x0111,
+		.rm_wdm_ctrlids = r5u870_1810_183b_ctrls,
+		.rm_uvc = 1,
+	},
 	[R5U870_DI_HP_WEBCAM1K] = {
 		.rm_name = "HP Webcam 1000",
 		.rm_ucode_file = "r5u870_1870_1.fw",
@@ -2875,6 +2897,7 @@ static const struct usb_device_id id_table[] = {
 	{ R5U870_DEVICE_UVC(0x05CA, 0x1835, R5U870_DI_VGP_VCC5) },
 	{ R5U870_DEVICE_UVC(0x05CA, 0x1836, R5U870_DI_VGP_VCC4) },
 	{ R5U870_DEVICE_UVC(0x05CA, 0x183a, R5U870_DI_VGP_VCC7) },
+	{ R5U870_DEVICE_UVC(0x05CA, 0x183b, R5U870_DI_VGP_VCC8) },
 	{ },
 };
 
diff --git a/r5u870_183b.fw b/r5u870_183b.fw
Binary files differ.