This is the changelog for the SPCA50X usb camera driver.
Newest entries appear at the top of this file.

Changelog CVS Version: $Id: CHANGELOG,v 1.25 2004/01/10 21:35:46 mxhaard Exp $

Release 0.40
------------
This release coordinated by Miah Gregory (polesworth) and Till Adam (tillsan).

Binary and source packages available for this release.

Changes in this release:
* Temporary fixes for the Intel Pocket PC Camera and the DSC-350. Both
  cameras are spca500a based, and require a qtable to be defined. The
  temporary fix makes these two cameras use the Creative PC-CAM 300 qtable,
  but ideally, they would use the same qtable as the windows driver
  (polesworth).
* Support for spca504 based cams with a firmware version 2 (spca504b) (mxhaard).
* Conditionally follow memory management API changes backported to 2.4.20 
  in redhat 9 (Chris Parker <chris.parker@marinerhealthcare.com>).
* Imported Creative PC-CAM 600 patches from <http://www.galeon.com/scartwb/>
  by <scar_t_@hotmail.com>, and tidied them up (polesworth).
* Ratified spca504 code to use the same Q-table support code as spca500,
  and moved all Q-tables into their own header file (polesworth).
* Fix for WOLT kernel. pte_offset changed to pte_offset_kernel (polesworth).
* Fix for a link error. The option '--relocateable' doesn't exist in all
  versions of ld. Instead, use '-r' which should work on all platforms
  (pancake <pancake@phreaker.net>).
* Support for the Hama USB Sightcam 100 (tgc).
* Added missing entries for Aiptek MegaCam (polesworth).
* Support for the Arowana 300k CMOS Camera (Daniele Gozzi - codeatnight).
* Makefile cleanups (Anders Kaseorg - anders1).
* Added support for (mxhaard):
  - Aiptek PocketDVII 1.3;
  - Aiptek Pencam SD 2M;
  - Mustek MDC5500Z;
  - Megapix V4;
  - Aiptek PocketDV;
  - Mystery Camera (from Ori).
* Cleaned up internal camera id allocation, including removal of unnecessary
  checks against USB vendor/device id (polesworth).
* Various tidying up - mainly white space changes (polesworth).
* Merged in patch #802598 (SPCA561 alpha support), which provides support
  for the Genius VideoCAM Express V2 (spca561a) (enjolras).
* Reformatting changes, mainly in spca50x.h (polesworth).
(mxhaard change)
4/08/2003
Add: Aiptek PenCam SD 2 0x08ca 0x2018 thanks Wolfang Samsinger.
Add: Aiptek mini PenCam 1.3 Mega
Help with the code found on Macam project (Mac OSX)
6/08/2003
Seem the code found on Macam project work for the gsmart mini not for Aiptek
Fix Aiptek 1.3 command loop
12/08/2003
Add Code for Mustek Gsmart LCD3 Snoopy file and test from Piotr Pawlow Thanks
Works 320x240 and 464x352 Thanks Piotr
23/08/2003
Fix Aiptek 1.3 drop packets
Works 640x480 and 320x240 Thanks Fransico Ramiro Pereira,Scott Barnes and Gregor Hoffleit.
Make own procedure for Aiptek1.3
30/08/2003
Add Mustek mdc5500z Thanks Piotr Pawlow for patch
31/08/2003
Add Code for Megapix V4 for testing Snoopy file and test from Jrg Bhnke
14/09/2003
Add Code for the Aiptek PocketDV UsbId 0x08ca:0x0103 For testing Marek Blasko
27/09/2003
Make the code in accord with CVS TREE
Try the mysterious cam from Ori Usbid 0x0000 0x0000
Code seem like the Arowana
01/10/2003
Add Code from snoop for the mysterious cam 0x0000 0x0000
11/10/2003
Implement YUV420P for the spca500 spca504a spca504b spca533a in libjpeg decoder
unlock VIDEO_PALETTE_YUV420P in spca50x for those chips (2628)
13/10/2003
rearrange the jpegdecode function look at the UV plan and remove the rescale when
YUVP is asked ( work with large resolution in low light, need optimisations)
14/10/2003
some cleanup rewrite the main loop of jpegdecode
seem the huffman/idct in large with a good light take about 3ms
15/10/2003
rewrite the rgb decoder for 24 and 32 bits; you can change the color space in the code uncomment the relevant
line in jpegdecoder.c
initcol() is not need because break the yuv colors space.
20/10/2003
Test the idct and profile to get best performance now work best with full size in real times 16fps in my Athlon
2.2Ghz
21/10/2003
Expand the macro of IDCT to remove a lot of exchange perform IMULT with long
Start to implement crop feature for rawjpeg cam this will need for all the resolutions
28/10/2003
Try to FIX the PCCAM 600 with patch send by Sepp Widjnands and testing by Shadding Faris Doghmi.
Add Aiptek DV3100+ 0x08ca:0x0106 Aiptek PocketCam 3M 0x08ca:0x2010
Add preliminary support grey scale only for the spca561a Miguel Revilla Rodriguez and Richard Ham
Flexcam 100 0x04fc:0x0561 Genius Videocam V2 0x0458:0x7004
Add Mustek Gsmart LCD 2 0x055f:0c430
Look to implement the decoder for Tomas in the spca50x_move_data function 2,74 meters long.
29/10/2003
Add VIDEO_PALETTE_RGB565 for the rawjpeg camera
02/11/2003
FIX a bug in spca50x_read function producer to comsumer if the comsumer ask n bytes the producer give n bytes.
That fix the read function with spcaview in yuv420p and rawjpeg data
07/11/2003
Start to implement the output feature for sif qsif cif qcif vga qpal
Encode the struct spca5xx_ext_mode to allow a hardware width and heigth
and a software methode the lower nibble give the code for hardware the height
give the method 0-> nothing 1-> cropping 2-> divide 4-> multiply
value1 give a X value and value2 give the Y.
cropping method
each X or Y value is used for a macroblock 16x16 pixels if X is not odd
then the first crop begin at the left is more shorter (1) than the other
each crop is perform in center method.
divide
divide is a crop pixel on the surface and is perform in X width and Y height
multiply
add a new pixel every X in the width axis (need for the spca533a)
11/11/2003
All the crop feature are now implemented and work fine for the spca504a and spca504b camera
the spca533a work fine in 320x240 194x144 176x144 the others want the multiply and is not implemented ATM
I hope this code have not break the others cam.If you got problem or working please feedback to mxhaard@magic.fr
The hint message have move to "SPCA5XX Usb Camera" to allow all the palette working on gnomemeeting.
Thanks to Damien Sandras and Fabrice (Gnomemeeting Team) for help and testing the YUV420P feature.
A preliminary code to drop frame is also implemented this drop occurs when the userspace ask for RGB
in full size 640x480 like "gqcam".
(That is not really a good idea, we want 18.43Mb/s to push a whole frame in RGB24 and the kernel didn't like that:) )
a better idea is to use yuv420p with spcaview that need only 9.21 Mb/s with the same quality.
IMHO the decoder to RGB feature didn't have a place in a Linux kernel:)
This module need a good processor to work fine and is optimize for i686 familly ( PIV and Athlon)
14/11/2003
schedule a outpict tasklet in the interrupt handler we work fine now at all resolutions all palettes all sizes:)
For a (small computer < Pentium or athlon) please change  the active Makefile to Makefile.i386 Thanks Stephane and Marek for Testing.
16/11/2003
Remove the vfree a line 1094 seem to be a bug in case of camera disconnect.Dealloc do the job too ?
FIX bug with the Suse Kernel on close function
23/11/2003
Tempory FIX for Trust familycam@300 work on 640x480 and 320x240 need to remove the cable between every
usage.The frame rate is function of light exposure between 4fps for dark to 14fps in daylight.Thanks for Denis Pitzalis
who give me a cam for testing
29/11/2003
The spca500 from FamilyCam and pocket DV also i think clicksmart510 need to initialise with the size set to 640x480 and the corresponding
usb pipe set to 1023.Unfortunately our driver start with the smallest one.I have made a change to allow these cams to work with all size
640x480 320x240 and 176x144 the large size auto init without unplug and replug the cam the others need that:(
Need more test for the pocketDV owner.
30/11/2003
Add the same init code for the Intel Cam CS630 spca500a
Thanks Rob Roschewsk for testing
04/12/2003
Add Tomas Groth patch enable autobrightness with spca508 thanks Tgc
12/12/2003
Add enum type for native cam stream jpeg yuvy yyuv yuyv grey
Add field cameratype in spca50x_frame to get the good outpout method for that cam
Add Pure Digital Dakota UsbId 0x04fc:0xffff camera Thanks Thomas Steffen for the patch
14/12/2003
Add yuvy_decode() for video_palette rgb 16 24 32 and yuv420p with cropping feature for the spca508 
that need tgc test
15/12/2003 
yuv420p ok with spca508 need more test on rgb
16/12/2003
Fix the rgb for spca508 thanks Tomas (tgc) for the LastTestOfTheNight :)
25/12/2003
Add yuyv yyuv to yuv_decode
Add RGGB Bayer type for the spca501 cam in native stream format
Prototype bayer_decode() for those cams
Add spca5xx_gamma.h allow 6 gamma tables to correct cams stream
A static int gCor select the Table for all the cams in rgb mode
value 0 to 6 is allowed 0->2.2, 1->1.7, 2->1.45, 3->1, 4->0.6896, 5->0.5882, 6->0.4545
Big Cut in the interrupt Handler all cam process the Tasklet:)
Change read function according that change
Configure sensor now take care of the maxheight and maxwidth of each cam
send to Tomas Groth (tgc) for spca508 testing.
send to Linus McCabe (McCabe) for spca501 testing.
26/12/2003
Change spca50x_smallest_index to avoid pipe size according width and height
Add on open default palette to RGB24 allow gqcam to work fine in all case :)
Add spca50x->minwidth and spca50x->minheight Configure sensor take care of min too
27/12/2003
Add bayer_decode() for GBRG spca561 camera RGB16 RGB24 RGB 32 is allowed 
28/12/2003
Add yuv420p to the bayer_decode() 
Also block the drop frame feature for spca501 testing in 640x480
07/01/2003
Add Benq DC1500 spca533 need test from Isabel (spain)Usbid 0x04a5:0x3008
Add Logitech Cliksmart 420 spca504 FW near PCCAM 600 Usbid 0x046d:0x0960
Thanks Bummerlord for the Patch 
24/01/2004
Add ClickSmart 510 Experimental Untested Usbid 0x046d:0x0901
Allow Spca505 to work under Gnomemeeting
Add Spca505 resolution 320x240 
28/01/2004
ClickSmart 510 have 3 interfaces FIX the probe function to support that feature
FIX the autodetect of cam, UsbId 0x0000 0x0000 is set at the end of the list
08/02/2004
Port the change for 2.6.x Krenel
Split the code in spcaCompat for v4l layer
rewrite the Makefile according all changes
22/02/2004
Merge 2.4.x and 2.6.x change
28/02/2004
change down(&spca50x->buf_lock) to down_trylock(&spca50x->buf_lock);
Thanks Brian Perkins for the advise
FIX bug in bayer decoder 
Thanks Jakub Krajcovic for the spca561 raw data from spcaview -v
FIX bug in crop feature with no jpeg camera 
Thanks Peter Cook for the spca501 raw data from spcaview -v
FIX force_rgb for VIDEO_PALETTE_RGB565
Add Mustek DV3000  spca533  UsbId 0x055f:0xc440 Thanks Arne Georg Gledish
Add HamaSightcam 2 spca508  UsbId 0x0af9:0x0011 Thanks Tomas Groth (Tgc)
Add Benq DC1300    spca504b UsbId 0x04a5:0x3003 Thanks Mick Hellstrom

Release 0.30
------------
This release coordinated by Miah Gregory (polesworth) and Till Adam (tillsan).

Binary and source packages available for this release.

Changes in this release:
* Fixes for compilation against 2.4.20 kernels (polesworth).
* Couple of fixups for gcc 3.2 pedantics (polesworth).
* Fixed destroy proc debug code, which used an uninitialised variable 'name'.
  Now the variable is displayed after it has been initialised (Andrea Mennucc).
* Added support for spca504 based cameras (tillsan, feber).
* Added support for spca500 based cameras (polesworth).
* As part of the spca500/spca504 support, added jpeg decompression code
  (feber, polesworth, tillsan).
* Increased MAX_FRAME_SIZE to allow 32 bit V4L modes (tillsan).
* Changed default debug level to 0 (polesworth).
* Added raw proc entry support - useful for debugging (polesworth).
* Added support for:
  - Mustek gSmart mini 2;
  - Mustek gSmart mini 3;
  - Creative PC-CAM 300;
  - D-Link DSC-350;
  - Creative PC-CAM 600;
  - Intel Pocket PC Camera.
* Fix deadlock when shutting down the camera while used by a program (feber).
* Merged in patch #505324 (Patch for the Intel PC Camera CS110) (polesworth).
* Merged in patch #589680 (Prelim 3Com HomeConnect Lite Support) (polesworth).
* Fixed spca50x_probe, which was handling some cameras with known vendor
  ids but unknown device ids incorrectly. Found this bug whilst looking into
  support for the Kodak EZ200 (polesworth).
* Fixed driver to select smallest available resolution for a particular
  bridge, rather than using a hardcoded value (polesworth).
* Tidied up the jpeg decoder, which turned out to be including userspace
  header files, and added a return value to jpeg_decode (polesworth).
* spca500: changing mode now works correctly (polesworth).
* spca500: enabled subsampling for modes smaller than 640x480 (polesworth).
* spca500: added rudimentary picture quality controls (polesworth).
* Added support for the Kodak EZ200 camera, which is spca500 based (polesworth).
* Added in some changes for spca505 and maybe spca506 which apparently make
  the brightness levels usable (Keith MacLeod / Eric Preston).

Release 0.20
------------
This release coordinated by Miah Gregory (polesworth).

For this release, it was decided to package up source only, and not binaries.
This will change in the future, once the driver stabilises.

Changes in this release:
* Fix bug with probe function handling in kernels > 2.3.x (Leonardo Milano).
* Removed XawTV hack (use XawTV >= 3.65) (Leonardo Milano/korovkin).
* Added SPCA508 support for the ViewQuest VQ110 (David Adler).
* Spca50x_read infinite loop protection check (David Adler).
* Palette mode check (David Adler).
* VQ M318B description (David Adler).
* Added Kodak DVC-325 to supported cam list (Sebastian Voitzsch).
* Moved initialisation code to seperate header files (korovkin).
* Added some experimental code for brightness autoadjustment (korovkin).
* Change from tq_scheduler to schedule_task (dscottie).
* Quick fix for Gnomemeeting/PWLib problems seen on SPCA50X;
  VIDIOCSWIN sets size of frame[0] to new size (dscottie).
* Forced driver to say which resolutions it supports, in order to force
  gnomemeeting to emulate the mode, if it's not supported.
* Added control proc entry, which allows the user to change driver parameters
  without reinserting the module (korovkin).
* Added "whiteness" autoadjustment feature (korovkin).
* Fixed bug in VIDIOCSPICT ioctl handling in SPCA501 (korovkin).
* Fixed bridge type check in spca50x_close (korovkin).
* Fixed memory leak bug in spca50x_alloc (Amit Bhalla/korovkin).
* Added average R-6/B-6 in prox/.../spca50x/videoX entry (korovkin).
* Added ability to adjust red/blue offsets via Hue and Color settings
  (korovkin).
* Added GPL Licence information, for 2.4 series kernels (polesworth).
* Rejigged the Makefile and #defines (polesworth).
* Fixed bug in procfs support, whereby control file was created multiple
  times, but with the same name. We now create /proc/video/spca50x/controlX.
  (polesworth/korovkin).
* Various other minor changes/fixes.

Release 0.10
------------
This release coordinated by Darrell Scott (dscottie).

Changes in this release:
* Added support for ViewQuest M318B (0733:0402) (Leonardo Milano)
* Improved support for XawTV (korovkin)
* Improved Intel Create and Share (SPCA501-based cams) support (korovkin)
* Fixed initialization bug for connection/disconnection support (korovkin)

Release 0.9
-----------
This release coordinated by Joel Crisp (cydergoth).

Changes in this release:
* Fixed compile with CONFIG_FB and no video/font.h 
* Changed decode of 501 data - may now work.
* Updated some documentation


Previous releases not documented here.
