94 lines · c
1/* SPDX-License-Identifier: GPL-2.0-or-later */2/* GSPCA subdrivers for Genesys Logic webcams with the GL860 chip3 * Subdriver declarations4 *5 * 2009/10/14 Olivier LORIN <o.lorin@laposte.net>6 */7#ifndef GL860_DEV_H8#define GL860_DEV_H9 10#include "gspca.h"11 12#define MODULE_NAME "gspca_gl860"13#define DRIVER_VERSION "0.9d10"14 15#define ctrl_in gl860_RTx16#define ctrl_out gl860_RTx17 18#define ID_MI1320 119#define ID_OV2640 220#define ID_OV9655 421#define ID_MI2020 822 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 029#define IMAGE_800 130#define IMAGE_1280 231#define IMAGE_1600 332 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#endif94