[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