0001
0002
0003
0004
0005
0006
0007 #ifndef GL860_DEV_H
0008 #define GL860_DEV_H
0009
0010 #include "gspca.h"
0011
0012 #define MODULE_NAME "gspca_gl860"
0013 #define DRIVER_VERSION "0.9d10"
0014
0015 #define ctrl_in gl860_RTx
0016 #define ctrl_out gl860_RTx
0017
0018 #define ID_MI1320 1
0019 #define ID_OV2640 2
0020 #define ID_OV9655 4
0021 #define ID_MI2020 8
0022
0023 #define _MI1320_ (((struct sd *) gspca_dev)->sensor == ID_MI1320)
0024 #define _MI2020_ (((struct sd *) gspca_dev)->sensor == ID_MI2020)
0025 #define _OV2640_ (((struct sd *) gspca_dev)->sensor == ID_OV2640)
0026 #define _OV9655_ (((struct sd *) gspca_dev)->sensor == ID_OV9655)
0027
0028 #define IMAGE_640 0
0029 #define IMAGE_800 1
0030 #define IMAGE_1280 2
0031 #define IMAGE_1600 3
0032
0033 struct sd_gl860 {
0034 u16 backlight;
0035 u16 brightness;
0036 u16 sharpness;
0037 u16 contrast;
0038 u16 gamma;
0039 u16 hue;
0040 u16 saturation;
0041 u16 whitebal;
0042 u8 mirror;
0043 u8 flip;
0044 u8 AC50Hz;
0045 };
0046
0047
0048 struct sd {
0049 struct gspca_dev gspca_dev;
0050
0051 struct sd_gl860 vcur;
0052 struct sd_gl860 vold;
0053 struct sd_gl860 vmax;
0054
0055 int (*dev_configure_alt) (struct gspca_dev *);
0056 int (*dev_init_at_startup)(struct gspca_dev *);
0057 int (*dev_init_pre_alt) (struct gspca_dev *);
0058 void (*dev_post_unset_alt) (struct gspca_dev *);
0059 int (*dev_camera_settings)(struct gspca_dev *);
0060
0061 u8 swapRB;
0062 u8 mirrorMask;
0063 u8 sensor;
0064 s32 nbIm;
0065 s32 nbRightUp;
0066 u8 waitSet;
0067 };
0068
0069 struct validx {
0070 u16 val;
0071 u16 idx;
0072 };
0073
0074 struct idxdata {
0075 u8 idx;
0076 u8 data[3];
0077 };
0078
0079 int fetch_validx(struct gspca_dev *gspca_dev, struct validx *tbl, int len);
0080 int keep_on_fetching_validx(struct gspca_dev *gspca_dev, struct validx *tbl,
0081 int len, int n);
0082 void fetch_idxdata(struct gspca_dev *gspca_dev, struct idxdata *tbl, int len);
0083
0084 int gl860_RTx(struct gspca_dev *gspca_dev,
0085 unsigned char pref, u32 req, u16 val, u16 index,
0086 s32 len, void *pdata);
0087
0088 void mi1320_init_settings(struct gspca_dev *);
0089 void ov2640_init_settings(struct gspca_dev *);
0090 void ov9655_init_settings(struct gspca_dev *);
0091 void mi2020_init_settings(struct gspca_dev *);
0092
0093 #endif