]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/media/video/em28xx/em28xx.h
V4L/DVB (12741): em28xx: make video isoc stream work when VBI is enabled
[mv-sheeva.git] / drivers / media / video / em28xx / em28xx.h
index 45bd513f62dcb8ed42bd9e37c58956f204f1d23f..1656d2cf34a9d28557cffcce5032ccd21d357e75 100644 (file)
 #define EM2882_BOARD_KWORLD_ATSC_315U            69
 #define EM2882_BOARD_EVGA_INDTUBE                70
 #define EM2820_BOARD_SILVERCREST_WEBCAM           71
+#define EM2861_BOARD_GADMEI_UTV330PLUS           72
 
 /* Limits minimum and default number of buffers */
 #define EM28XX_MIN_BUF 4
@@ -367,6 +368,7 @@ enum em28xx_sensor {
        EM28XX_NOSENSOR = 0,
        EM28XX_MT9V011,
        EM28XX_MT9M001,
+       EM28XX_MT9M111,
 };
 
 enum em28xx_adecoder {
@@ -397,6 +399,7 @@ struct em28xx_board {
        unsigned int has_snapshot_button:1;
        unsigned int is_webcam:1;
        unsigned int valid:1;
+       unsigned int has_ir_i2c:1;
 
        unsigned char xclk, i2c_speed;
        unsigned char radio_addr;
@@ -407,7 +410,7 @@ struct em28xx_board {
 
        struct em28xx_input       input[MAX_EM28XX_INPUT];
        struct em28xx_input       radio;
-       IR_KEYTAB_TYPE            *ir_codes;
+       struct ir_scancode_table  *ir_codes;
 };
 
 struct em28xx_eeprom {
@@ -484,6 +487,9 @@ struct em28xx {
        int sensor_xres, sensor_yres;
        int sensor_xtal;
 
+       /* Allows progressive (e. g. non-interlaced) mode */
+       int progressive;
+
        /* Vinmode/Vinctl used at the driver */
        int vinmode, vinctl;
 
@@ -538,6 +544,12 @@ struct em28xx {
        enum em28xx_dev_state state;
        enum em28xx_io_method io;
 
+       /* vbi related state tracking */
+       int capture_type;
+       int vbi_read;
+       unsigned char cur_field;
+
+
        struct work_struct         request_module_wk;
 
        /* locks */
@@ -591,6 +603,10 @@ struct em28xx {
        struct delayed_work sbutton_query_work;
 
        struct em28xx_dvb *dvb;
+
+       /* I2C keyboard data */
+       struct i2c_board_info info;
+       struct IR_i2c_init_data init_data;
 };
 
 struct em28xx_ops {
@@ -629,6 +645,7 @@ int em28xx_audio_setup(struct em28xx *dev);
 
 int em28xx_colorlevels_set_default(struct em28xx *dev);
 int em28xx_capture_start(struct em28xx *dev, int start);
+int em28xx_vbi_supported(struct em28xx *dev);
 int em28xx_set_outfmt(struct em28xx *dev);
 int em28xx_resolution_set(struct em28xx *dev);
 int em28xx_set_alternate(struct em28xx *dev);