xref: /openbmc/linux/drivers/media/usb/pwc/pwc-dec23.h (revision 0c0d06ca)
10c0d06caSMauro Carvalho Chehab /* Linux driver for Philips webcam
20c0d06caSMauro Carvalho Chehab    (C) 2004-2006 Luc Saillard (luc@saillard.org)
30c0d06caSMauro Carvalho Chehab 
40c0d06caSMauro Carvalho Chehab    NOTE: this version of pwc is an unofficial (modified) release of pwc & pcwx
50c0d06caSMauro Carvalho Chehab    driver and thus may have bugs that are not present in the original version.
60c0d06caSMauro Carvalho Chehab    Please send bug reports and support requests to <luc@saillard.org>.
70c0d06caSMauro Carvalho Chehab    The decompression routines have been implemented by reverse-engineering the
80c0d06caSMauro Carvalho Chehab    Nemosoft binary pwcx module. Caveat emptor.
90c0d06caSMauro Carvalho Chehab 
100c0d06caSMauro Carvalho Chehab    This program is free software; you can redistribute it and/or modify
110c0d06caSMauro Carvalho Chehab    it under the terms of the GNU General Public License as published by
120c0d06caSMauro Carvalho Chehab    the Free Software Foundation; either version 2 of the License, or
130c0d06caSMauro Carvalho Chehab    (at your option) any later version.
140c0d06caSMauro Carvalho Chehab 
150c0d06caSMauro Carvalho Chehab    This program is distributed in the hope that it will be useful,
160c0d06caSMauro Carvalho Chehab    but WITHOUT ANY WARRANTY; without even the implied warranty of
170c0d06caSMauro Carvalho Chehab    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
180c0d06caSMauro Carvalho Chehab    GNU General Public License for more details.
190c0d06caSMauro Carvalho Chehab 
200c0d06caSMauro Carvalho Chehab    You should have received a copy of the GNU General Public License
210c0d06caSMauro Carvalho Chehab    along with this program; if not, write to the Free Software
220c0d06caSMauro Carvalho Chehab    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
230c0d06caSMauro Carvalho Chehab */
240c0d06caSMauro Carvalho Chehab 
250c0d06caSMauro Carvalho Chehab #ifndef PWC_DEC23_H
260c0d06caSMauro Carvalho Chehab #define PWC_DEC23_H
270c0d06caSMauro Carvalho Chehab 
280c0d06caSMauro Carvalho Chehab struct pwc_device;
290c0d06caSMauro Carvalho Chehab 
300c0d06caSMauro Carvalho Chehab struct pwc_dec23_private
310c0d06caSMauro Carvalho Chehab {
320c0d06caSMauro Carvalho Chehab 	struct mutex lock;
330c0d06caSMauro Carvalho Chehab 
340c0d06caSMauro Carvalho Chehab 	unsigned char last_cmd, last_cmd_valid;
350c0d06caSMauro Carvalho Chehab 
360c0d06caSMauro Carvalho Chehab   unsigned int scalebits;
370c0d06caSMauro Carvalho Chehab   unsigned int nbitsmask, nbits; /* Number of bits of a color in the compressed stream */
380c0d06caSMauro Carvalho Chehab 
390c0d06caSMauro Carvalho Chehab   unsigned int reservoir;
400c0d06caSMauro Carvalho Chehab   unsigned int nbits_in_reservoir;
410c0d06caSMauro Carvalho Chehab 
420c0d06caSMauro Carvalho Chehab   const unsigned char *stream;
430c0d06caSMauro Carvalho Chehab   int temp_colors[16];
440c0d06caSMauro Carvalho Chehab 
450c0d06caSMauro Carvalho Chehab   unsigned char table_0004_pass1[16][1024];
460c0d06caSMauro Carvalho Chehab   unsigned char table_0004_pass2[16][1024];
470c0d06caSMauro Carvalho Chehab   unsigned char table_8004_pass1[16][256];
480c0d06caSMauro Carvalho Chehab   unsigned char table_8004_pass2[16][256];
490c0d06caSMauro Carvalho Chehab   unsigned int  table_subblock[256][12];
500c0d06caSMauro Carvalho Chehab 
510c0d06caSMauro Carvalho Chehab   unsigned char table_bitpowermask[8][256];
520c0d06caSMauro Carvalho Chehab   unsigned int  table_d800[256];
530c0d06caSMauro Carvalho Chehab   unsigned int  table_dc00[256];
540c0d06caSMauro Carvalho Chehab 
550c0d06caSMauro Carvalho Chehab };
560c0d06caSMauro Carvalho Chehab 
570c0d06caSMauro Carvalho Chehab void pwc_dec23_init(struct pwc_device *pdev, const unsigned char *cmd);
580c0d06caSMauro Carvalho Chehab void pwc_dec23_decompress(struct pwc_device *pdev,
590c0d06caSMauro Carvalho Chehab 			  const void *src,
600c0d06caSMauro Carvalho Chehab 			  void *dst);
610c0d06caSMauro Carvalho Chehab #endif
62