gl860.h (2181B)
1/* SPDX-License-Identifier: GPL-2.0-or-later */ 2/* GSPCA subdrivers for Genesys Logic webcams with the GL860 chip 3 * Subdriver declarations 4 * 5 * 2009/10/14 Olivier LORIN <o.lorin@laposte.net> 6 */ 7#ifndef GL860_DEV_H 8#define GL860_DEV_H 9 10#include "gspca.h" 11 12#define MODULE_NAME "gspca_gl860" 13#define DRIVER_VERSION "0.9d10" 14 15#define ctrl_in gl860_RTx 16#define ctrl_out gl860_RTx 17 18#define ID_MI1320 1 19#define ID_OV2640 2 20#define ID_OV9655 4 21#define ID_MI2020 8 22 23#define _MI1320_ (((struct sd *) gspca_dev)->sensor == ID_MI1320) 24#define _MI2020_ (((struct sd *) gspca_dev)->sensor == ID_MI2020) 25#define _OV2640_ (((struct sd *) gspca_dev)->sensor == ID_OV2640) 26#define _OV9655_ (((struct sd *) gspca_dev)->sensor == ID_OV9655) 27 28#define IMAGE_640 0 29#define IMAGE_800 1 30#define IMAGE_1280 2 31#define IMAGE_1600 3 32 33struct sd_gl860 { 34 u16 backlight; 35 u16 brightness; 36 u16 sharpness; 37 u16 contrast; 38 u16 gamma; 39 u16 hue; 40 u16 saturation; 41 u16 whitebal; 42 u8 mirror; 43 u8 flip; 44 u8 AC50Hz; 45}; 46 47/* Specific webcam descriptor */ 48struct sd { 49 struct gspca_dev gspca_dev; /* !! must be the first item */ 50 51 struct sd_gl860 vcur; 52 struct sd_gl860 vold; 53 struct sd_gl860 vmax; 54 55 int (*dev_configure_alt) (struct gspca_dev *); 56 int (*dev_init_at_startup)(struct gspca_dev *); 57 int (*dev_init_pre_alt) (struct gspca_dev *); 58 void (*dev_post_unset_alt) (struct gspca_dev *); 59 int (*dev_camera_settings)(struct gspca_dev *); 60 61 u8 swapRB; 62 u8 mirrorMask; 63 u8 sensor; 64 s32 nbIm; 65 s32 nbRightUp; 66 u8 waitSet; 67}; 68 69struct validx { 70 u16 val; 71 u16 idx; 72}; 73 74struct idxdata { 75 u8 idx; 76 u8 data[3]; 77}; 78 79int fetch_validx(struct gspca_dev *gspca_dev, struct validx *tbl, int len); 80int keep_on_fetching_validx(struct gspca_dev *gspca_dev, struct validx *tbl, 81 int len, int n); 82void fetch_idxdata(struct gspca_dev *gspca_dev, struct idxdata *tbl, int len); 83 84int gl860_RTx(struct gspca_dev *gspca_dev, 85 unsigned char pref, u32 req, u16 val, u16 index, 86 s32 len, void *pdata); 87 88void mi1320_init_settings(struct gspca_dev *); 89void ov2640_init_settings(struct gspca_dev *); 90void ov9655_init_settings(struct gspca_dev *); 91void mi2020_init_settings(struct gspca_dev *); 92 93#endif