[Pkg-spca5xx-devel] r227 - in /gspca/branches/upstream/current: Makefile Makefile.kld Vimicro/vc032x.h Vimicro/zc3xx.h changelog decoder/gspcadecoder.c gspca.h gspca_core.c

kelmo-guest at users.alioth.debian.org kelmo-guest at users.alioth.debian.org
Wed Jan 2 04:54:27 UTC 2008


Author: kelmo-guest
Date: Wed Jan  2 04:54:26 2008
New Revision: 227

URL: http://svn.debian.org/wsvn/?sc=1&rev=227
Log:
[svn-upgrade] Integrating new upstream version, gspca (01.00.20.orig)

Modified:
    gspca/branches/upstream/current/Makefile
    gspca/branches/upstream/current/Makefile.kld
    gspca/branches/upstream/current/Vimicro/vc032x.h
    gspca/branches/upstream/current/Vimicro/zc3xx.h
    gspca/branches/upstream/current/changelog
    gspca/branches/upstream/current/decoder/gspcadecoder.c
    gspca/branches/upstream/current/gspca.h
    gspca/branches/upstream/current/gspca_core.c

Modified: gspca/branches/upstream/current/Makefile
URL: http://svn.debian.org/wsvn/gspca/branches/upstream/current/Makefile?rev=227&op=diff
==============================================================================
--- gspca/branches/upstream/current/Makefile (original)
+++ gspca/branches/upstream/current/Makefile Wed Jan  2 04:54:26 2008
@@ -1,4 +1,4 @@
-VERSION    = 01.00.20-rc3
+VERSION    = 01.00.20
 
 DEFINES    =
 

Modified: gspca/branches/upstream/current/Makefile.kld
URL: http://svn.debian.org/wsvn/gspca/branches/upstream/current/Makefile.kld?rev=227&op=diff
==============================================================================
--- gspca/branches/upstream/current/Makefile.kld (original)
+++ gspca/branches/upstream/current/Makefile.kld Wed Jan  2 04:54:26 2008
@@ -26,7 +26,7 @@
 
 #--- Here are the driver-specific variables
 
-VERSION    = 01.00.19
+VERSION    = 01.00.20
 
 ###
 # The following flags enable experimental features.

Modified: gspca/branches/upstream/current/Vimicro/vc032x.h
URL: http://svn.debian.org/wsvn/gspca/branches/upstream/current/Vimicro/vc032x.h?rev=227&op=diff
==============================================================================
--- gspca/branches/upstream/current/Vimicro/vc032x.h (original)
+++ gspca/branches/upstream/current/Vimicro/vc032x.h Wed Jan  2 04:54:26 2008
@@ -354,7 +354,7 @@
 {
  __u8 tmp2[3];
     int sensor = 0;
-    spca50x->qindex = 1;
+    spca50x->qindex = 7;
     vc0321_reset(spca50x);
     sensor = vc032x_probe_sensor(spca50x);
     switch (sensor) {

Modified: gspca/branches/upstream/current/Vimicro/zc3xx.h
URL: http://svn.debian.org/wsvn/gspca/branches/upstream/current/Vimicro/zc3xx.h?rev=227&op=diff
==============================================================================
--- gspca/branches/upstream/current/Vimicro/zc3xx.h (original)
+++ gspca/branches/upstream/current/Vimicro/zc3xx.h Wed Jan  2 04:54:26 2008
@@ -95,6 +95,15 @@
     totval,
 };
 #define VGATOT 9
+
+enum {
+   Default_Gamma,
+   VF0250_Gamma,
+   CS2102_Gamma,
+   MC501CB_Gamma,
+   Last_Gamma
+};
+
 static __u8 zcxxi2cSensor[VGATOT][totval] = {
     {0x00, 0xff, 0xff, 0x01, 0xaa, 0x00, 0xff, 0xff, 0xff},	// HV7131B
     {0x04, 0xff, 0xff, 0x01, 0xaa, 0x00, 0xff, 0xff, 0xff},	// CS2102
@@ -401,19 +410,45 @@
     int gr0 = 0;
     int index = 0;
     int i;
-
-    switch (spca50x->sensor) {
+    int GammaSettingsID;
+    
+    if( force_gamma_id != -1) {
+      if(force_gamma_id >= Last_Gamma || force_gamma_id < -1 )  {
+         GammaSettingsID = Default_Gamma;
+         force_gamma_id = -1;
+      } else { 
+         GammaSettingsID = force_gamma_id;
+      }
+    } else switch (spca50x->sensor) {
      case SENSOR_MC501CB:
+        GammaSettingsID = MC501CB_Gamma;
+	break;
+     case SENSOR_TAS5130C_VF0250:
+        GammaSettingsID = VF0250_Gamma;
+        break;
+     case SENSOR_CS2102:
+        GammaSettingsID = CS2102_Gamma;
+        break;
+     default:
+        GammaSettingsID = Default_Gamma; 
+    }
+
+     switch (GammaSettingsID) {
+     case  MC501CB_Gamma:
         Tgamma = Tgamma_MC501CB;
 	Tgradient = Tgradient_MC501CB;
 	break;
-     case SENSOR_TAS5130C_VF0250:
-       Tgamma = Tgamma_VF0250;
-       Tgradient = Tgradient_VF0250;
+     case VF0250_Gamma:
+        Tgamma = Tgamma_VF0250;
+        Tgradient = Tgradient_VF0250;
      break;
-     case SENSOR_CS2102:
-       Tgamma = Tgamma_CS2102;
-       Tgradient = Tgradient_CS2102;
+     case CS2102_Gamma:
+        Tgamma = Tgamma_CS2102;
+        Tgradient = Tgradient_CS2102;
+     break;
+     case Default_Gamma:
+        Tgamma = Tgamma_default;
+        Tgradient = Tgradient_default;
      break;
     }
 
@@ -425,7 +460,7 @@
     for (i = 0; i < 16; i++) {
 	gm0 = Tgamma[i] * index >> 2;
 	gr0 = Tgradient[i] * index >> 2;
-	spca5xxRegWrite(spca50x->dev, 0xa0, CLAMP(gm0), 0x0120 + i, NULL, 0);	//brightness
+	spca5xxRegWrite(spca50x->dev, 0xa0, CLAMP(gm0), 0x0120 + i, NULL, 0);	// brightness
 	spca5xxRegWrite(spca50x->dev, 0xa0, CLAMP(gr0), 0x0130 + i, NULL, 0);	// contrast
 	//PDEBUG(0,"i %d gamma %d gradient %d",i ,Tgamma[i],Tgradient[i]);
     }
@@ -484,6 +519,13 @@
     spca50x->mode_cam[QSIF].pipe = 1023;
     spca50x->mode_cam[QSIF].method = 1;
     spca50x->mode_cam[QSIF].mode = 1;
+    spca50x->mode_cam[QCIF].width = 160;
+    spca50x->mode_cam[QCIF].height = 120;
+    spca50x->mode_cam[QCIF].t_palette =
+	P_YUV420 | P_RGB32 | P_RGB24 | P_RGB16;
+    spca50x->mode_cam[QCIF].pipe = 1023;
+    spca50x->mode_cam[QCIF].method = 1;
+    spca50x->mode_cam[QCIF].mode = 1;
 }
 static void set_zc3xxSIF(struct usb_spca50x *spca50x)
 {
@@ -516,6 +558,13 @@
     spca50x->mode_cam[QSIF].pipe = 1023;
     spca50x->mode_cam[QSIF].method = 0;
     spca50x->mode_cam[QSIF].mode = 1;
+    spca50x->mode_cam[QCIF].width = 160;
+    spca50x->mode_cam[QCIF].height = 120;
+    spca50x->mode_cam[QCIF].t_palette =
+	P_YUV420 | P_RGB32 | P_RGB24 | P_RGB16;
+    spca50x->mode_cam[QCIF].pipe = 1023;
+    spca50x->mode_cam[QCIF].method = 1;
+    spca50x->mode_cam[QCIF].mode = 1;
 }
 
 static int zc3xx_config(struct usb_spca50x *spca50x)
@@ -528,9 +577,13 @@
 
     sensor = zcxx_probeSensor(spca50x);
     
-    switch (sensor) {
+    /* Force assign sensor id */
+    if(force_sensor_id != -1) {
+         PDEBUG(0, "ATTENTION!: Forced assign sensor ID to  %d ", force_sensor_id);
+       spca50x->sensor = force_sensor_id;
+       set_zc3xxVGA(spca50x);
+       } else switch (sensor) {
     case -1:
-    
     	if (spca50x->sensor == SENSOR_MC501CB) {
 		PDEBUG(0, " Sensor MC501CB");
 	    set_zc3xxVGA(spca50x);
@@ -582,7 +635,7 @@
 	PDEBUG(0, "Find Sensor SIF UNKNOW_9");
 	break;
     case 0x0a:
-	PDEBUG(0, "Find Sensor PB0330");
+	PDEBUG(0, "Find Sensor PB0330. Chip revision %x",spca50x->chip_revision);
 	spca50x->sensor = SENSOR_PB0330;
 	set_zc3xxVGA(spca50x);
 	break;
@@ -623,7 +676,7 @@
 	set_zc3xxVGA(spca50x);
 	break;
     case 0x13:
-	PDEBUG(0, "Find Sensor MI0360");
+	PDEBUG(0, "Find Sensor MI0360. Chip revision %x",spca50x->chip_revision);
 	spca50x->sensor = SENSOR_PB0330;
 	set_zc3xxVGA(spca50x);
 	break;

Modified: gspca/branches/upstream/current/changelog
URL: http://svn.debian.org/wsvn/gspca/branches/upstream/current/changelog?rev=227&op=diff
==============================================================================
--- gspca/branches/upstream/current/changelog (original)
+++ gspca/branches/upstream/current/changelog Wed Jan  2 04:54:26 2008
@@ -1,3 +1,8 @@
+Release 01.00.20
+	Add Genius ge110  0x093a:0x2472 Thanks David Ponessa
+	Add Philips spc220nc pac207 0x093a:0x2463 Thanks Mathieu Lacage
+	Apply Serge A.Suchkov cosmetic FIX
+	Add mjpeg palette to the vc0323 webcam (works with spcaview)
 Release 01.00.20-rc3
 	FIX mc501cb VGA initial value
 	Add Logitech QC Cool 0x046d:0x08af Thanks Roger Braun

Modified: gspca/branches/upstream/current/decoder/gspcadecoder.c
URL: http://svn.debian.org/wsvn/gspca/branches/upstream/current/decoder/gspcadecoder.c?rev=227&op=diff
==============================================================================
--- gspca/branches/upstream/current/decoder/gspcadecoder.c (original)
+++ gspca/branches/upstream/current/decoder/gspcadecoder.c Wed Jan  2 04:54:26 2008
@@ -2637,22 +2637,25 @@
 	}
 	break;
     case JPGV: // Vimicro323
-    PDEBUG(0, "Vc323 0x%2X 0x%2X, 0x%2X,0x%2X", myframe->data[0] ,myframe->data[1],myframe->data[8] ,myframe->data[9]);
+    PDEBUG(3, "Vc323 0x%2X 0x%2X, 0x%2X,0x%2X", myframe->data[0] ,myframe->data[1],myframe->data[2] ,myframe->data[3]);
 	width = (myframe->data[9] << 8) | myframe->data[8];
 	height = (myframe->data[11] << 8) | myframe->data[10];
-	PDEBUG(0, "Decoder find WidthxHeight %dx%d", width,height);
-	if (myframe->hdrwidth != width)
-	    done = ERR_CORRUPTFRAME;
-	else {
-	    // reset info.dri
+	
+	if (myframe->hdrwidth != width) {
+		PDEBUG(0, "Decoder find WidthxHeight %dx%d", width,height);
+		done = ERR_CORRUPTFRAME;
+	} else {
+	if (myframe->format == VIDEO_PALETTE_JPEG){
+	    /* nothing todo */
+	    done = 1;
+	} else {
+		// reset info.dri
 	    myframe->decoder->info.dri = 0;
-	    memcpy(myframe->tmpbuffer, myframe->data + 16,
-		   myframe->scanlength - 16);
-	    //if (myframe->format == VIDEO_PALETTE_JPEG)
-		//done = make_jpeg(myframe);
-	   // else
-		//done = jpeg_decode422(myframe, bgr);
-	}
+	    memcpy(myframe->tmpbuffer, myframe->data +0x280,
+		   myframe->scanlength-0x280);
+	    done = jpeg_decode422(myframe, bgr);
+	    }
+	    }
 	break;
     case JPGM:
     case JPGS:

Modified: gspca/branches/upstream/current/gspca.h
URL: http://svn.debian.org/wsvn/gspca/branches/upstream/current/gspca.h?rev=227&op=diff
==============================================================================
--- gspca/branches/upstream/current/gspca.h (original)
+++ gspca/branches/upstream/current/gspca.h Wed Jan  2 04:54:26 2008
@@ -176,11 +176,11 @@
 	GBGR,
 	S561,			// Sunplus Compressed stream
 	PGBRG,			// Pixart RGGB bayer
-	YUY2, // YUYV packed
-    PJPG, // Pixart jpeg used with PAC7311
-    JPGV, //Vimicro VC0323
-};
-enum { QCIF = 1,
+	YUY2, 			// YUYV packed
+	PJPG, 			// Pixart jpeg used with PAC7311
+	JPGV, 			// Vimicro VC0323
+};
+enum {  QCIF = 1,
 	QSIF,
 	QPAL,
 	CIF,

Modified: gspca/branches/upstream/current/gspca_core.c
URL: http://svn.debian.org/wsvn/gspca/branches/upstream/current/gspca_core.c?rev=227&op=diff
==============================================================================
--- gspca/branches/upstream/current/gspca_core.c (original)
+++ gspca/branches/upstream/current/gspca_core.c Wed Jan  2 04:54:26 2008
@@ -104,6 +104,7 @@
 #endif
 /* force sensor id*/
 static int force_sensor_id=-1;
+static int force_gamma_id=-1;
 module_param(autoexpo, int, 0644);
 module_param(debug, int, 0644);
 module_param(force_rgb, int, 0644);
@@ -125,6 +126,7 @@
 module_param(RegStrobe, int, 0644);
 #endif
 module_param(force_sensor_id, int, 0644);
+module_param(force_gamma_id, int, 0644);
 
 MODULE_PARM_DESC(autoexpo,
 		 "Enable/Disable auto exposure (default=1: enabled) (PC-CAM 600/Zc03xx/spca561a/Etoms Only !!!)");
@@ -143,14 +145,16 @@
 #endif				/* SPCA50X_ENABLE_COMPRESSION */
 MODULE_PARM_DESC(usbgrabber, "Is a usb grabber 0x0733:0x0430 ? (default 1) ");
 MODULE_PARM_DESC(lightfreq,
-		 "Light frequency banding filter. Set to 50 or 60 Hz, or zero to NoFliker (default=50)");
+		 "Light frequency banding filter. Set to 50 or 60 Hz, or 0 for NoFlicker (default=50) Zc03xx only");
 #ifdef GSPCA_ENABLE_REGISTERPLAY
 MODULE_PARM_DESC(RegAddress, "Register Address of PAC207");
 MODULE_PARM_DESC(RegValue, "Register Value for PAC207");
 MODULE_PARM_DESC(RegStrobe,
 		 "Strobe to read or write a register 1=write, 2=read");
 #endif				/* SPCA5XX_ENABLE_REGISTERPLAY */
-MODULE_PARM_DESC(force_sensor_id, "Force assign sensor ID (DEBUG ONLY!!!)");
+MODULE_PARM_DESC(force_gamma_id, "Forced assigning ID of contrast settings (0=default,1,2,3) Zc03xx only");
+MODULE_PARM_DESC(force_sensor_id, "Forced assigning ID sensor (Zc03xx only). Dangerous, only for experts !!!");
+
 /****************/
 MODULE_AUTHOR
     ("Michel Xhaard <mxhaard at users.sourceforge.net> based on spca50x driver by Joel Crisp <cydergoth at users.sourceforge.net>,ov511 driver by Mark McClelland <mwm at i.am>");
@@ -184,7 +188,7 @@
 	{SN9C, "SN9C"},
 	{GBGR, "GBGR"},
 	{S561, "S561"},
-	{PGBRG, "GBRG"},
+	{PGBRG,"GBRG"},
 	{YUY2, "YUYV"},
 	{PJPG, "JPEG"},
 	{-1, NULL}
@@ -210,8 +214,9 @@
 	{BRIDGE_MR97311, "MR97311"},
 	{BRIDGE_PAC207, "PAC207BCA"},
 	{BRIDGE_VC0321, "VC0321"},
+	{BRIDGE_PAC7311, "PAC7311"},
 	{BRIDGE_VC0323, "VC0323"},
-	{BRIDGE_PAC7311, "PAC7311"},
+	
 	{-1, NULL}
 };
 
@@ -416,6 +421,7 @@
 	Vimicro0323,
 	Lenovo,
 	LogitechQC4Notebooks,
+	PhilipsSPC220NC,
 	LastCamera
 };
 static struct cam_list clist[] = {
@@ -613,6 +619,7 @@
 	{Vimicro0323,"VC0323"},
 	{Lenovo,"lenovo MI1310_SOC"},
 	{LogitechQC4Notebooks,"Logitech QuickCam for Notebooks"},
+	{PhilipsSPC220NC,"Philips SPC220NC PAC207"},
 	{-1, NULL}
 };
 static __devinitdata struct usb_device_id device_table[] = {
@@ -825,6 +832,8 @@
 	{USB_DEVICE(0x17ef, 0x4802)},	/* Lenovo Vc0323+MI1310_SOC */
 	{USB_DEVICE(0x046d, 0x08dd)},	/* Logitech QuickCam for Notebooks */
 	{USB_DEVICE(0x046d, 0x08af)},	/* Logitech QuickCam Cool */
+	{USB_DEVICE(0x093a, 0x2472)},	/* PAC207 Genius VideoCam ge110 */
+	{USB_DEVICE(0x093a, 0x2463)},	/* Philips spc200nc pac207 */
 	{USB_DEVICE(0x0000, 0x0000)},	/* MystFromOri Unknow Camera */
 	{}			/* Terminating entry */
 };
@@ -1102,7 +1111,8 @@
 		    spca50x->cameratype == JPGC ||
 		    spca50x->cameratype == JPGS ||
 		    spca50x->cameratype == JPGM ||
-		    spca50x->cameratype == PJPG) {
+		    spca50x->cameratype == PJPG ||
+		    spca50x->cameratype == JPGV ) {
 			return 8;
 		} else
 			return 0;
@@ -1839,7 +1849,9 @@
 	    || spca50x->cameratype == JPGC
 	    || spca50x->cameratype == JPGS
 	    || spca50x->cameratype == JPEG
-	    || spca50x->cameratype == JPGM || spca50x->cameratype == PJPG)
+	    || spca50x->cameratype == JPGM 
+	    || spca50x->cameratype == PJPG
+	    || spca50x->cameratype == JPGV)
 		return 1;
 	return 0;
 }
@@ -2109,6 +2121,7 @@
 			default:
 				snprintf(v->name, 32, "%s",
 					 Blist[spca50x->bridge].name);
+					 PDEBUG(0, "Bridge %s ",v->name);
 				break;
 			}
 			v->flags = 0;
@@ -3514,12 +3527,12 @@
 			spca50x->sensor = SENSOR_ICM105A;
 			break;
 		case 0x4051:	// zc301 chips 
-			spca50x->desc = CreativeLiveCamVideoIM;
+			spca50x->desc = CreativeLiveCamNotebookPro;
 			spca50x->bridge = BRIDGE_ZC3XX;
 			spca50x->sensor = SENSOR_TAS5130C_VF0250;	// VF0250
 			break;
 		case 0x4053:	// zc301 chips 
-			spca50x->desc = CreativeLiveCamNotebookPro;
+			spca50x->desc = CreativeLiveCamVideoIM;
 			spca50x->bridge = BRIDGE_ZC3XX;
 			spca50x->sensor = SENSOR_TAS5130C_VF0250;	// VF0250
 			break;
@@ -4097,6 +4110,11 @@
 			spca50x->bridge = BRIDGE_PAC207;
 			spca50x->sensor = SENSOR_PAC207;
 			break;
+		case 0x2463:
+			spca50x->desc = PhilipsSPC220NC;
+			spca50x->bridge = BRIDGE_PAC207;
+			spca50x->sensor = SENSOR_PAC207;
+			break;
 		case 0x2468:
 			spca50x->desc = PAC207;
 			spca50x->bridge = BRIDGE_PAC207;
@@ -4107,6 +4125,7 @@
 			spca50x->bridge = BRIDGE_PAC207;
 			spca50x->sensor = SENSOR_PAC207;
 			break;
+		case 0x2472:
 		case 0x2471:
 			spca50x->desc = GeniusGe111;
 			spca50x->bridge = BRIDGE_PAC207;




More information about the Pkg-spca5xx-devel mailing list