106 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* GSPCA subdrivers for Genesys Logic webcams with the GL860 chip
 | 
						|
 * Subdriver declarations
 | 
						|
 *
 | 
						|
 * 2009/10/14 Olivier LORIN <o.lorin@laposte.net>
 | 
						|
 *
 | 
						|
 * This program is free software; you can redistribute it and/or modify
 | 
						|
 * it under the terms of the GNU General Public License as published by
 | 
						|
 * the Free Software Foundation; either version 2 of the License, or
 | 
						|
 * any later version.
 | 
						|
 *
 | 
						|
 * This program is distributed in the hope that it will be useful,
 | 
						|
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 | 
						|
 * GNU General Public License for more details.
 | 
						|
 *
 | 
						|
 * You should have received a copy of the GNU General Public License
 | 
						|
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
						|
 */
 | 
						|
#ifndef GL860_DEV_H
 | 
						|
#define GL860_DEV_H
 | 
						|
 | 
						|
#include "gspca.h"
 | 
						|
 | 
						|
#define MODULE_NAME "gspca_gl860"
 | 
						|
#define DRIVER_VERSION "0.9d10"
 | 
						|
 | 
						|
#define ctrl_in  gl860_RTx
 | 
						|
#define ctrl_out gl860_RTx
 | 
						|
 | 
						|
#define ID_MI1320   1
 | 
						|
#define ID_OV2640   2
 | 
						|
#define ID_OV9655   4
 | 
						|
#define ID_MI2020   8
 | 
						|
 | 
						|
#define _MI1320_  (((struct sd *) gspca_dev)->sensor == ID_MI1320)
 | 
						|
#define _MI2020_  (((struct sd *) gspca_dev)->sensor == ID_MI2020)
 | 
						|
#define _OV2640_  (((struct sd *) gspca_dev)->sensor == ID_OV2640)
 | 
						|
#define _OV9655_  (((struct sd *) gspca_dev)->sensor == ID_OV9655)
 | 
						|
 | 
						|
#define IMAGE_640   0
 | 
						|
#define IMAGE_800   1
 | 
						|
#define IMAGE_1280  2
 | 
						|
#define IMAGE_1600  3
 | 
						|
 | 
						|
struct sd_gl860 {
 | 
						|
	u16 backlight;
 | 
						|
	u16 brightness;
 | 
						|
	u16 sharpness;
 | 
						|
	u16 contrast;
 | 
						|
	u16 gamma;
 | 
						|
	u16 hue;
 | 
						|
	u16 saturation;
 | 
						|
	u16 whitebal;
 | 
						|
	u8  mirror;
 | 
						|
	u8  flip;
 | 
						|
	u8  AC50Hz;
 | 
						|
};
 | 
						|
 | 
						|
/* Specific webcam descriptor */
 | 
						|
struct sd {
 | 
						|
	struct gspca_dev gspca_dev;	/* !! must be the first item */
 | 
						|
 | 
						|
	struct sd_gl860 vcur;
 | 
						|
	struct sd_gl860 vold;
 | 
						|
	struct sd_gl860 vmax;
 | 
						|
 | 
						|
	int  (*dev_configure_alt)  (struct gspca_dev *);
 | 
						|
	int  (*dev_init_at_startup)(struct gspca_dev *);
 | 
						|
	int  (*dev_init_pre_alt)   (struct gspca_dev *);
 | 
						|
	void (*dev_post_unset_alt) (struct gspca_dev *);
 | 
						|
	int  (*dev_camera_settings)(struct gspca_dev *);
 | 
						|
 | 
						|
	u8   swapRB;
 | 
						|
	u8   mirrorMask;
 | 
						|
	u8   sensor;
 | 
						|
	s32  nbIm;
 | 
						|
	s32  nbRightUp;
 | 
						|
	u8   waitSet;
 | 
						|
};
 | 
						|
 | 
						|
struct validx {
 | 
						|
	u16 val;
 | 
						|
	u16 idx;
 | 
						|
};
 | 
						|
 | 
						|
struct idxdata {
 | 
						|
	u8 idx;
 | 
						|
	u8 data[3];
 | 
						|
};
 | 
						|
 | 
						|
int fetch_validx(struct gspca_dev *gspca_dev, struct validx *tbl, int len);
 | 
						|
int keep_on_fetching_validx(struct gspca_dev *gspca_dev, struct validx *tbl,
 | 
						|
				int len, int n);
 | 
						|
void fetch_idxdata(struct gspca_dev *gspca_dev, struct idxdata *tbl, int len);
 | 
						|
 | 
						|
int gl860_RTx(struct gspca_dev *gspca_dev,
 | 
						|
			unsigned char pref, u32 req, u16 val, u16 index,
 | 
						|
			s32 len, void *pdata);
 | 
						|
 | 
						|
void mi1320_init_settings(struct gspca_dev *);
 | 
						|
void ov2640_init_settings(struct gspca_dev *);
 | 
						|
void ov9655_init_settings(struct gspca_dev *);
 | 
						|
void mi2020_init_settings(struct gspca_dev *);
 | 
						|
 | 
						|
#endif
 |