1
2
3
4
5
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
48struct sd {
49 struct gspca_dev gspca_dev;
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