This is an automatic generated email to let you know that the following patch 
were queued at the 
http://git.linuxtv.org/media_tree.git tree:

Subject: [media] gspca - ov534: Add saturation control for ov767x
Author:  Jean-François Moine <[email protected]>
Date:    Thu Feb 10 10:15:45 2011 -0300

Signed-off-by: Jean-François Moine <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>

 drivers/media/video/gspca/ov534.c |   37 +++++++++++++++++++++++++++++++++++++
 1 files changed, 37 insertions(+), 0 deletions(-)

---

http://git.linuxtv.org/media_tree.git?a=commitdiff;h=ff5b108857d4fa410d31810ec5a16814820972e3

diff --git a/drivers/media/video/gspca/ov534.c 
b/drivers/media/video/gspca/ov534.c
index 8dada2b..0c6369b 100644
--- a/drivers/media/video/gspca/ov534.c
+++ b/drivers/media/video/gspca/ov534.c
@@ -61,6 +61,7 @@ enum e_ctrl {
        SHARPNESS,
        HFLIP,
        VFLIP,
+       COLORS,
        LIGHTFREQ,
        NCTRLS          /* number of controls */
 };
@@ -93,6 +94,7 @@ static void setawb(struct gspca_dev *gspca_dev);
 static void setaec(struct gspca_dev *gspca_dev);
 static void setsharpness(struct gspca_dev *gspca_dev);
 static void sethvflip(struct gspca_dev *gspca_dev);
+static void setcolors(struct gspca_dev *gspca_dev);
 static void setlightfreq(struct gspca_dev *gspca_dev);
 
 static int sd_start(struct gspca_dev *gspca_dev);
@@ -219,6 +221,18 @@ static const struct ctrl sd_ctrls[] = {
                },
                .set_control = sethvflip
        },
+[COLORS] = {
+               {
+                       .id      = V4L2_CID_SATURATION,
+                       .type    = V4L2_CTRL_TYPE_INTEGER,
+                       .name    = "Saturation",
+                       .minimum = 0,
+                       .maximum = 6,
+                       .step    = 1,
+                       .default_value = 3,
+               },
+               .set_control = setcolors
+       },
 [LIGHTFREQ] = {
                {
                        .id      = V4L2_CID_POWER_LINE_FREQUENCY,
@@ -1116,6 +1130,26 @@ static void sethvflip(struct gspca_dev *gspca_dev)
        }
 }
 
+static void setcolors(struct gspca_dev *gspca_dev)
+{
+       struct sd *sd = (struct sd *) gspca_dev;
+       u8 val;
+       int i;
+       static u8 color_tb[][6] = {
+               {0x42, 0x42, 0x00, 0x11, 0x30, 0x41},
+               {0x52, 0x52, 0x00, 0x16, 0x3c, 0x52},
+               {0x66, 0x66, 0x00, 0x1b, 0x4b, 0x66},
+               {0x80, 0x80, 0x00, 0x22, 0x5e, 0x80},
+               {0x9a, 0x9a, 0x00, 0x29, 0x71, 0x9a},
+               {0xb8, 0xb8, 0x00, 0x31, 0x87, 0xb8},
+               {0xdd, 0xdd, 0x00, 0x3b, 0xa2, 0xdd},
+       };
+
+       val = sd->ctrls[COLORS].val;
+       for (i = 0; i < ARRAY_SIZE(color_tb[0]); i++)
+               sccb_reg_write(gspca_dev, 0x4f + i, color_tb[val][i]);
+}
+
 static void setlightfreq(struct gspca_dev *gspca_dev)
 {
        struct sd *sd = (struct sd *) gspca_dev;
@@ -1207,6 +1241,7 @@ static int sd_init(struct gspca_dev *gspca_dev)
                gspca_dev->cam.nmodes = ARRAY_SIZE(ov767x_mode);
        } else {
                sd->sensor = SENSOR_OV772x;
+               gspca_dev->ctrl_dis = (1 << COLORS);
                gspca_dev->cam.bulk = 1;
                gspca_dev->cam.bulk_size = 16384;
                gspca_dev->cam.bulk_nurbs = 2;
@@ -1277,6 +1312,8 @@ static int sd_start(struct gspca_dev *gspca_dev)
        if (!(gspca_dev->ctrl_dis & (1 << SHARPNESS)))
                setsharpness(gspca_dev);
        sethvflip(gspca_dev);
+       if (!(gspca_dev->ctrl_dis & (1 << COLORS)))
+               setcolors(gspca_dev);
        setlightfreq(gspca_dev);
 
        ov534_set_led(gspca_dev, 1);

_______________________________________________
linuxtv-commits mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to