Merge branch 'fix/hda' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6
[pandora-kernel.git] / drivers / media / video / em28xx / em28xx.h
index d90fef4..8c2dc38 100644 (file)
@@ -358,10 +358,15 @@ struct em28xx_input {
 #define INPUT(nr) (&em28xx_boards[dev->model].input[nr])
 
 enum em28xx_decoder {
-       EM28XX_NODECODER,
+       EM28XX_NODECODER = 0,
        EM28XX_TVP5150,
        EM28XX_SAA711X,
+};
+
+enum em28xx_sensor {
+       EM28XX_NOSENSOR = 0,
        EM28XX_MT9V011,
+       EM28XX_MT9M001,
 };
 
 enum em28xx_adecoder {
@@ -390,7 +395,7 @@ struct em28xx_board {
        unsigned int max_range_640_480:1;
        unsigned int has_dvb:1;
        unsigned int has_snapshot_button:1;
-       unsigned int is_27xx:1;
+       unsigned int is_webcam:1;
        unsigned int valid:1;
 
        unsigned char xclk, i2c_speed;
@@ -474,6 +479,17 @@ struct em28xx {
        struct v4l2_device v4l2_dev;
        struct em28xx_board board;
 
+       /* Webcam specific fields */
+       enum em28xx_sensor em28xx_sensor;
+       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;
+
        unsigned int stream_on:1;       /* Locks streams */
        unsigned int has_audio_class:1;
        unsigned int has_alsa_audio:1;
@@ -754,17 +770,23 @@ static inline int em28xx_gamma_set(struct em28xx *dev, s32 val)
 /*FIXME: maxw should be dependent of alt mode */
 static inline unsigned int norm_maxw(struct em28xx *dev)
 {
+       if (dev->board.is_webcam)
+               return dev->sensor_xres;
+
        if (dev->board.max_range_640_480)
                return 640;
-       else
-               return 720;
+
+       return 720;
 }
 
 static inline unsigned int norm_maxh(struct em28xx *dev)
 {
+       if (dev->board.is_webcam)
+               return dev->sensor_yres;
+
        if (dev->board.max_range_640_480)
                return 480;
-       else
-               return (dev->norm & V4L2_STD_625_50) ? 576 : 480;
+
+       return (dev->norm & V4L2_STD_625_50) ? 576 : 480;
 }
 #endif