linux/drivers/media/video/gspca/gl860/gl860.h
<<
>>
Prefs
   1/* GSPCA subdrivers for Genesys Logic webcams with the GL860 chip
   2 * Subdriver declarations
   3 *
   4 * 2009/10/14 Olivier LORIN <o.lorin@laposte.net>
   5 *
   6 * This program is free software; you can redistribute it and/or modify
   7 * it under the terms of the GNU General Public License as published by
   8 * the Free Software Foundation; either version 2 of the License, or
   9 * any later version.
  10 *
  11 * This program is distributed in the hope that it will be useful,
  12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14 * GNU General Public License for more details.
  15 *
  16 * You should have received a copy of the GNU General Public License
  17 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  18 */
  19#ifndef GL860_DEV_H
  20#define GL860_DEV_H
  21#include <linux/version.h>
  22
  23#include "gspca.h"
  24
  25#define MODULE_NAME "gspca_gl860"
  26#define DRIVER_VERSION "0.9d10"
  27
  28#define ctrl_in  gl860_RTx
  29#define ctrl_out gl860_RTx
  30
  31#define ID_MI1320   1
  32#define ID_OV2640   2
  33#define ID_OV9655   4
  34#define ID_MI2020   8
  35
  36#define _MI1320_  (((struct sd *) gspca_dev)->sensor == ID_MI1320)
  37#define _MI2020_  (((struct sd *) gspca_dev)->sensor == ID_MI2020)
  38#define _OV2640_  (((struct sd *) gspca_dev)->sensor == ID_OV2640)
  39#define _OV9655_  (((struct sd *) gspca_dev)->sensor == ID_OV9655)
  40
  41#define IMAGE_640   0
  42#define IMAGE_800   1
  43#define IMAGE_1280  2
  44#define IMAGE_1600  3
  45
  46struct sd_gl860 {
  47        u16 backlight;
  48        u16 brightness;
  49        u16 sharpness;
  50        u16 contrast;
  51        u16 gamma;
  52        u16 hue;
  53        u16 saturation;
  54        u16 whitebal;
  55        u8  mirror;
  56        u8  flip;
  57        u8  AC50Hz;
  58};
  59
  60/* Specific webcam descriptor */
  61struct sd {
  62        struct gspca_dev gspca_dev;     /* !! must be the first item */
  63
  64        struct sd_gl860 vcur;
  65        struct sd_gl860 vold;
  66        struct sd_gl860 vmax;
  67
  68        int  (*dev_configure_alt)  (struct gspca_dev *);
  69        int  (*dev_init_at_startup)(struct gspca_dev *);
  70        int  (*dev_init_pre_alt)   (struct gspca_dev *);
  71        void (*dev_post_unset_alt) (struct gspca_dev *);
  72        int  (*dev_camera_settings)(struct gspca_dev *);
  73
  74        u8   swapRB;
  75        u8   mirrorMask;
  76        u8   sensor;
  77        s32  nbIm;
  78        s32  nbRightUp;
  79        u8   waitSet;
  80};
  81
  82struct validx {
  83        u16 val;
  84        u16 idx;
  85};
  86
  87struct idxdata {
  88        u8 idx;
  89        u8 data[3];
  90};
  91
  92int fetch_validx(struct gspca_dev *gspca_dev, struct validx *tbl, int len);
  93int keep_on_fetching_validx(struct gspca_dev *gspca_dev, struct validx *tbl,
  94                                int len, int n);
  95void fetch_idxdata(struct gspca_dev *gspca_dev, struct idxdata *tbl, int len);
  96
  97int gl860_RTx(struct gspca_dev *gspca_dev,
  98                        unsigned char pref, u32 req, u16 val, u16 index,
  99                        s32 len, void *pdata);
 100
 101void mi1320_init_settings(struct gspca_dev *);
 102void ov2640_init_settings(struct gspca_dev *);
 103void ov9655_init_settings(struct gspca_dev *);
 104void mi2020_init_settings(struct gspca_dev *);
 105
 106#endif
 107