From: Márton Németh <nm...@freemail.hu>

The PO2030N sensor chip found in hama AC-150 webcam supports vertical flipping
the image by hardware. Add support for this in the gspca_sonixj driver also.

Signed-off-by: Márton Németh <nm...@freemail.hu>
---
diff -upr b/drivers/media/video/gspca/sonixj.c 
c/drivers/media/video/gspca/sonixj.c
--- b/drivers/media/video/gspca/sonixj.c        2010-10-17 11:22:33.000000000 
+0200
+++ c/drivers/media/video/gspca/sonixj.c        2010-10-17 12:08:12.000000000 
+0200
@@ -45,7 +45,7 @@ struct sd {
        u8 blue;
        u8 red;
        u8 gamma;
-       u8 vflip;                       /* ov7630/ov7648 only */
+       u8 vflip;                       /* ov7630/ov7648/po2030n only */
        u8 sharpness;
        u8 infrared;                    /* mt9v111 only */
        u8 freq;                        /* ov76xx only */
@@ -219,7 +219,7 @@ static const struct ctrl sd_ctrls[] = {
            .set = sd_setautogain,
            .get = sd_getautogain,
        },
-/* ov7630/ov7648 only */
+/* ov7630/ov7648/po2030n only */
 #define VFLIP_IDX 7
        {
            {
@@ -328,7 +328,6 @@ static const __u32 ctrl_dis[] = {

 [SENSOR_PO2030N] =     (1 << AUTOGAIN_IDX) |
                        (1 << INFRARED_IDX) |
-                       (1 << VFLIP_IDX) |
                        (1 << FREQ_IDX),
 [SENSOR_SOI768] =      (1 << AUTOGAIN_IDX) |
                        (1 << INFRARED_IDX) |
@@ -2136,7 +2135,7 @@ static void setautogain(struct gspca_dev
                sd->ag_cnt = -1;
 }

-/* hv7131r/ov7630/ov7648 only */
+/* hv7131r/ov7630/ov7648/po2030n only */
 static void setvflip(struct sd *sd)
 {
        u8 comn;
@@ -2156,6 +2155,20 @@ static void setvflip(struct sd *sd)
                        comn |= 0x80;
                i2c_w1(&sd->gspca_dev, 0x75, comn);
                break;
+       case SENSOR_PO2030N:
+               /* Reg. 0x1E: Timing Generator Control Register 2 (Tgcontrol2)
+                * (reset value: 0x0A)
+                * bit7: HM: Horizontal Mirror: 0: disable, 1: enable
+                * bit6: VM: Vertical Mirror: 0: disable, 1: enable
+                * bit5: ST: Shutter Selection: 0: electrical, 1: mechanical
+                * bit4: FT: Single Frame Transfer: 0: disable, 1: enable
+                * bit3-0: X
+                */
+               comn = 0x0A;
+               if (sd->vflip)
+                       comn |= 0x40;
+               i2c_w1(&sd->gspca_dev, 0x1E, comn);
+               break;
        default:
 /*     case SENSOR_OV7648: */
                comn = 0x06;
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to