]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/media/video/gspca/vc032x.c
Merge tag 'v2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[mv-sheeva.git] / drivers / media / video / gspca / vc032x.c
index 38a6efe1a5f91ed185cce6d71775c90dbce06f56..6caed734a06ab0559892a869f330f0d0840f8865 100644 (file)
@@ -47,24 +47,29 @@ struct sd {
        u8 image_offset;
 
        u8 bridge;
-#define BRIDGE_VC0321 0
-#define BRIDGE_VC0323 1
        u8 sensor;
-#define SENSOR_HV7131R 0
-#define SENSOR_MI0360 1
-#define SENSOR_MI1310_SOC 2
-#define SENSOR_MI1320 3
-#define SENSOR_MI1320_SOC 4
-#define SENSOR_OV7660 5
-#define SENSOR_OV7670 6
-#define SENSOR_PO1200 7
-#define SENSOR_PO3130NC 8
-#define SENSOR_POxxxx 9
        u8 flags;
 #define FL_SAMSUNG 0x01                /* SamsungQ1 (2 sensors) */
 #define FL_HFLIP 0x02          /* mirrored by default */
 #define FL_VFLIP 0x04          /* vertical flipped by default */
 };
+enum bridges {
+       BRIDGE_VC0321,
+       BRIDGE_VC0323,
+};
+enum sensors {
+       SENSOR_HV7131R,
+       SENSOR_MI0360,
+       SENSOR_MI1310_SOC,
+       SENSOR_MI1320,
+       SENSOR_MI1320_SOC,
+       SENSOR_OV7660,
+       SENSOR_OV7670,
+       SENSOR_PO1200,
+       SENSOR_PO3130NC,
+       SENSOR_POxxxx,
+       NSENSORS
+};
 
 /* V4L2 controls supported by the driver */
 static int sd_setbrightness(struct gspca_dev *gspca_dev, __s32 val);
@@ -260,56 +265,56 @@ static const struct ctrl sd_ctrls[] = {
 };
 
 /* table of the disabled controls */
-static u32 ctrl_dis[] = {
-/* SENSOR_HV7131R 0 */
+static u32 ctrl_dis[NSENSORS] = {
+    [SENSOR_HV7131R] =
        (1 << BRIGHTNESS_IDX) | (1 << CONTRAST_IDX) | (1 << COLORS_IDX)
                | (1 << HFLIP_IDX) | (1 << VFLIP_IDX) | (1 << LIGHTFREQ_IDX)
                | (1 << SHARPNESS_IDX)
                | (1 << GAIN_IDX) | (1 << EXPOSURE_IDX)
                | (1 << AUTOGAIN_IDX) | (1 << BACKLIGHT_IDX),
-/* SENSOR_MI0360 1 */
+    [SENSOR_MI0360] =
        (1 << BRIGHTNESS_IDX) | (1 << CONTRAST_IDX) | (1 << COLORS_IDX)
                | (1 << HFLIP_IDX) | (1 << VFLIP_IDX) | (1 << LIGHTFREQ_IDX)
                | (1 << SHARPNESS_IDX)
                | (1 << GAIN_IDX) | (1 << EXPOSURE_IDX)
                | (1 << AUTOGAIN_IDX) | (1 << BACKLIGHT_IDX),
-/* SENSOR_MI1310_SOC 2 */
+    [SENSOR_MI1310_SOC] =
        (1 << BRIGHTNESS_IDX) | (1 << CONTRAST_IDX) | (1 << COLORS_IDX)
                | (1 << LIGHTFREQ_IDX) | (1 << SHARPNESS_IDX)
                | (1 << GAIN_IDX) | (1 << EXPOSURE_IDX)
                | (1 << AUTOGAIN_IDX) | (1 << BACKLIGHT_IDX),
-/* SENSOR_MI1320 3 */
+    [SENSOR_MI1320] =
        (1 << BRIGHTNESS_IDX) | (1 << CONTRAST_IDX) | (1 << COLORS_IDX)
                | (1 << LIGHTFREQ_IDX) | (1 << SHARPNESS_IDX)
                | (1 << GAIN_IDX) | (1 << EXPOSURE_IDX)
                | (1 << AUTOGAIN_IDX) | (1 << BACKLIGHT_IDX),
-/* SENSOR_MI1320_SOC 4 */
+    [SENSOR_MI1320_SOC] =
        (1 << BRIGHTNESS_IDX) | (1 << CONTRAST_IDX) | (1 << COLORS_IDX)
                | (1 << LIGHTFREQ_IDX) | (1 << SHARPNESS_IDX)
                | (1 << GAIN_IDX) | (1 << EXPOSURE_IDX)
                | (1 << AUTOGAIN_IDX) | (1 << BACKLIGHT_IDX),
-/* SENSOR_OV7660 5 */
+    [SENSOR_OV7660] =
        (1 << BRIGHTNESS_IDX) | (1 << CONTRAST_IDX) | (1 << COLORS_IDX)
                | (1 << LIGHTFREQ_IDX) | (1 << SHARPNESS_IDX)
                | (1 << GAIN_IDX) | (1 << EXPOSURE_IDX)
                | (1 << AUTOGAIN_IDX) | (1 << BACKLIGHT_IDX),
-/* SENSOR_OV7670 6 */
+    [SENSOR_OV7670] =
        (1 << BRIGHTNESS_IDX) | (1 << CONTRAST_IDX) | (1 << COLORS_IDX)
                | (1 << SHARPNESS_IDX)
                | (1 << GAIN_IDX) | (1 << EXPOSURE_IDX)
                | (1 << AUTOGAIN_IDX) | (1 << BACKLIGHT_IDX),
-/* SENSOR_PO1200 7 */
+    [SENSOR_PO1200] =
        (1 << BRIGHTNESS_IDX) | (1 << CONTRAST_IDX) | (1 << COLORS_IDX)
                | (1 << LIGHTFREQ_IDX)
                | (1 << GAIN_IDX) | (1 << EXPOSURE_IDX)
                | (1 << AUTOGAIN_IDX) | (1 << BACKLIGHT_IDX),
-/* SENSOR_PO3130NC 8 */
+    [SENSOR_PO3130NC] =
        (1 << BRIGHTNESS_IDX) | (1 << CONTRAST_IDX) | (1 << COLORS_IDX)
                | (1 << HFLIP_IDX) | (1 << VFLIP_IDX) | (1 << LIGHTFREQ_IDX)
                | (1 << SHARPNESS_IDX)
                | (1 << GAIN_IDX) | (1 << EXPOSURE_IDX)
                | (1 << AUTOGAIN_IDX) | (1 << BACKLIGHT_IDX),
-/* SENSOR_POxxxx 9 */
+    [SENSOR_POxxxx] =
        (1 << HFLIP_IDX) | (1 << VFLIP_IDX) | (1 << LIGHTFREQ_IDX),
 };
 
@@ -3420,17 +3425,18 @@ static int sd_init(struct gspca_dev *gspca_dev)
        struct sd *sd = (struct sd *) gspca_dev;
        struct cam *cam;
        int sensor;
-       static u8 npkt[] = {    /* number of packets per ISOC message */
-               64,             /* HV7131R 0 */
-               32,             /* MI0360 1 */
-               32,             /* MI1310_SOC 2 */
-               64,             /* MI1320 3 */
-               128,            /* MI1320_SOC 4 */
-               32,             /* OV7660 5 */
-               64,             /* OV7670 6 */
-               128,            /* PO1200 7 */
-               128,            /* PO3130NC 8 */
-               128,            /* POxxxx 9 */
+       /* number of packets per ISOC message */
+       static u8 npkt[NSENSORS] = {
+               [SENSOR_HV7131R] =      64,
+               [SENSOR_MI0360] =       32,
+               [SENSOR_MI1310_SOC] =   32,
+               [SENSOR_MI1320] =       64,
+               [SENSOR_MI1320_SOC] =   128,
+               [SENSOR_OV7660] =       32,
+               [SENSOR_OV7670] =       64,
+               [SENSOR_PO1200] =       128,
+               [SENSOR_PO3130NC] =     128,
+               [SENSOR_POxxxx] =       128,
        };
 
        if (sd->sensor != SENSOR_POxxxx)
@@ -4186,7 +4192,7 @@ static const struct sd_desc sd_desc = {
 #define BF(bridge, flags) \
        .driver_info = (BRIDGE_ ## bridge << 8) \
                | (flags)
-static const __devinitdata struct usb_device_id device_table[] = {
+static const struct usb_device_id device_table[] = {
        {USB_DEVICE(0x041e, 0x405b), BF(VC0323, FL_VFLIP)},
        {USB_DEVICE(0x046d, 0x0892), BF(VC0321, 0)},
        {USB_DEVICE(0x046d, 0x0896), BF(VC0321, 0)},