- patches.apparmor/remove_suid_new_case_in_2.6.22.diff: Merge fix.
[linux-flexiantxendom0-3.2.10.git] / drivers / media / video / sn9c102 / sn9c102_pas202bcb.c
index 7894f01..ca4a150 100644 (file)
@@ -28,9 +28,6 @@
 #include "sn9c102_sensor.h"
 
 
-static struct sn9c102_sensor pas202bcb;
-
-
 static int pas202bcb_init(struct sn9c102_device* cam)
 {
        int err = 0;
@@ -38,47 +35,28 @@ static int pas202bcb_init(struct sn9c102_device* cam)
        switch (sn9c102_get_bridge(cam)) {
        case BRIDGE_SN9C101:
        case BRIDGE_SN9C102:
-       err += sn9c102_write_reg(cam, 0x00, 0x10);
-       err += sn9c102_write_reg(cam, 0x00, 0x11);
-       err += sn9c102_write_reg(cam, 0x00, 0x14);
-       err += sn9c102_write_reg(cam, 0x20, 0x17);
-       err += sn9c102_write_reg(cam, 0x30, 0x19);
-       err += sn9c102_write_reg(cam, 0x09, 0x18);
+               err = sn9c102_write_const_regs(cam, {0x00, 0x10}, {0x00, 0x11},
+                                              {0x00, 0x14}, {0x20, 0x17},
+                                              {0x30, 0x19}, {0x09, 0x18});
                break;
        case BRIDGE_SN9C103:
-               err += sn9c102_write_reg(cam, 0x00, 0x02);
-               err += sn9c102_write_reg(cam, 0x00, 0x03);
-               err += sn9c102_write_reg(cam, 0x1a, 0x04);
-               err += sn9c102_write_reg(cam, 0x20, 0x05);
-               err += sn9c102_write_reg(cam, 0x20, 0x06);
-               err += sn9c102_write_reg(cam, 0x20, 0x07);
-               err += sn9c102_write_reg(cam, 0x00, 0x10);
-               err += sn9c102_write_reg(cam, 0x00, 0x11);
-               err += sn9c102_write_reg(cam, 0x00, 0x14);
-               err += sn9c102_write_reg(cam, 0x20, 0x17);
-               err += sn9c102_write_reg(cam, 0x30, 0x19);
-               err += sn9c102_write_reg(cam, 0x09, 0x18);
-               err += sn9c102_write_reg(cam, 0x02, 0x1c);
-               err += sn9c102_write_reg(cam, 0x03, 0x1d);
-               err += sn9c102_write_reg(cam, 0x0f, 0x1e);
-               err += sn9c102_write_reg(cam, 0x0c, 0x1f);
-               err += sn9c102_write_reg(cam, 0x00, 0x20);
-               err += sn9c102_write_reg(cam, 0x10, 0x21);
-               err += sn9c102_write_reg(cam, 0x20, 0x22);
-               err += sn9c102_write_reg(cam, 0x30, 0x23);
-               err += sn9c102_write_reg(cam, 0x40, 0x24);
-               err += sn9c102_write_reg(cam, 0x50, 0x25);
-               err += sn9c102_write_reg(cam, 0x60, 0x26);
-               err += sn9c102_write_reg(cam, 0x70, 0x27);
-               err += sn9c102_write_reg(cam, 0x80, 0x28);
-               err += sn9c102_write_reg(cam, 0x90, 0x29);
-               err += sn9c102_write_reg(cam, 0xa0, 0x2a);
-               err += sn9c102_write_reg(cam, 0xb0, 0x2b);
-               err += sn9c102_write_reg(cam, 0xc0, 0x2c);
-               err += sn9c102_write_reg(cam, 0xd0, 0x2d);
-               err += sn9c102_write_reg(cam, 0xe0, 0x2e);
-               err += sn9c102_write_reg(cam, 0xf0, 0x2f);
-               err += sn9c102_write_reg(cam, 0xff, 0x30);
+               err = sn9c102_write_const_regs(cam, {0x00, 0x02}, {0x00, 0x03},
+                                              {0x1a, 0x04}, {0x20, 0x05},
+                                              {0x20, 0x06}, {0x20, 0x07},
+                                              {0x00, 0x10}, {0x00, 0x11},
+                                              {0x00, 0x14}, {0x20, 0x17},
+                                              {0x30, 0x19}, {0x09, 0x18},
+                                              {0x02, 0x1c}, {0x03, 0x1d},
+                                              {0x0f, 0x1e}, {0x0c, 0x1f},
+                                              {0x00, 0x20}, {0x10, 0x21},
+                                              {0x20, 0x22}, {0x30, 0x23},
+                                              {0x40, 0x24}, {0x50, 0x25},
+                                              {0x60, 0x26}, {0x70, 0x27},
+                                              {0x80, 0x28}, {0x90, 0x29},
+                                              {0xa0, 0x2a}, {0xb0, 0x2b},
+                                              {0xc0, 0x2c}, {0xd0, 0x2d},
+                                              {0xe0, 0x2e}, {0xf0, 0x2f},
+                                              {0xff, 0x30});
                break;
        default:
                break;
@@ -218,7 +196,7 @@ static int pas202bcb_set_crop(struct sn9c102_device* cam,
 }
 
 
-static struct sn9c102_sensor pas202bcb = {
+static const struct sn9c102_sensor pas202bcb = {
        .name = "PAS202BCB",
        .maintainer = "Luca Risolia <luca.risolia@studio.unibo.it>",
        .supported_bridge = BRIDGE_SN9C101 | BRIDGE_SN9C102 | BRIDGE_SN9C103,
@@ -328,15 +306,14 @@ int sn9c102_probe_pas202bcb(struct sn9c102_device* cam)
        switch (sn9c102_get_bridge(cam)) {
        case BRIDGE_SN9C101:
        case BRIDGE_SN9C102:
-               err += sn9c102_write_reg(cam, 0x01, 0x01); /* power down */
-               err += sn9c102_write_reg(cam, 0x40, 0x01); /* power on */
-               err += sn9c102_write_reg(cam, 0x28, 0x17); /* clock 24 MHz */
+               err = sn9c102_write_const_regs(cam,
+                                              {0x01, 0x01}, /* power down */
+                                              {0x40, 0x01}, /* power on */
+                                              {0x28, 0x17});/* clock 24 MHz */
                break;
        case BRIDGE_SN9C103: /* do _not_ change anything! */
-               err += sn9c102_write_reg(cam, 0x09, 0x01);
-               err += sn9c102_write_reg(cam, 0x44, 0x01);
-               err += sn9c102_write_reg(cam, 0x44, 0x02);
-               err += sn9c102_write_reg(cam, 0x29, 0x17);
+               err = sn9c102_write_const_regs(cam, {0x09, 0x01}, {0x44, 0x01},
+                                              {0x44, 0x02}, {0x29, 0x17});
                break;
        default:
                break;