linux/drivers/media/usb/gspca/gl860/gl860.h
<<
>>
Prefs
   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
  94