Signed-off-by: Kuninori Morimoto <morimoto.kunin...@renesas.com>
---
I used flags to judge though
I said I use edge_threshold un-used 4 bit.

v1 -> v2
o add struct ov772x_edge_ctrl
o add new flags

 drivers/media/video/ov772x.c |   31 +++++++++++++++++++++++++++++++
 include/media/ov772x.h       |   26 +++++++++++++++++++++++---
 2 files changed, 54 insertions(+), 3 deletions(-)

diff --git a/drivers/media/video/ov772x.c b/drivers/media/video/ov772x.c
index 34c9819..ae832e6 100644
--- a/drivers/media/video/ov772x.c
+++ b/drivers/media/video/ov772x.c
@@ -816,6 +816,37 @@ static int ov772x_set_params(struct ov772x_priv *priv, u32 
width, u32 height,
        ov772x_reset(priv->client);
 
        /*
+        * set Edge Ctrl
+        */
+       if (priv->info->flags & OV772X_FLAG_EDGE_STRENGTH) {
+               ret = ov772x_mask_set(priv->client, EDGE0, 0x1F,
+                                     priv->info->edgectrl.strength);
+               if (ret < 0)
+                       goto ov772x_set_fmt_error;
+       }
+
+       if (priv->info->flags & OV772X_FLAG_EDGE_THRESHOLD) {
+               ret = ov772x_mask_set(priv->client, EDGE1, 0x0F,
+                                     priv->info->edgectrl.threshold);
+               if (ret < 0)
+                       goto ov772x_set_fmt_error;
+       }
+
+       if (priv->info->flags & OV772X_FLAG_EDGE_LOW) {
+               ret = ov772x_mask_set(priv->client, EDGE2, 0xFF,
+                                     priv->info->edgectrl.low);
+               if (ret < 0)
+                       goto ov772x_set_fmt_error;
+       }
+
+       if (priv->info->flags & OV772X_FLAG_EDGE_HIGH) {
+               ret = ov772x_mask_set(priv->client, EDGE3, 0xFF,
+                                     priv->info->edgectrl.high);
+               if (ret < 0)
+                       goto ov772x_set_fmt_error;
+       }
+
+       /*
         * set size format
         */
        ret = ov772x_write_array(priv->client, priv->win->regs);
diff --git a/include/media/ov772x.h b/include/media/ov772x.h
index 57db48d..c5051c7 100644
--- a/include/media/ov772x.h
+++ b/include/media/ov772x.h
@@ -13,14 +13,34 @@
 
 #include <media/soc_camera.h>
 
-/* for flags */
-#define OV772X_FLAG_VFLIP     0x00000001 /* Vertical flip image */
-#define OV772X_FLAG_HFLIP     0x00000002 /* Horizontal flip image */
+/*
+ * for flags
+ */
+#define OV772X_FLAG_VFLIP              (1 << 0) /* Vertical flip image */
+#define OV772X_FLAG_HFLIP              (1 << 1) /* Horizontal flip image */
+#define OV772X_FLAG_EDGE_STRENGTH      (1 << 2) /* Edge Ctrl strength */
+#define OV772X_FLAG_EDGE_THRESHOLD     (1 << 3) /* Edge ctrl threshold */
+#define OV772X_FLAG_EDGE_LOW           (1 << 4) /* Edge ctrl low */
+#define OV772X_FLAG_EDGE_HIGH          (1 << 5) /* Edge ctrl high */
 
+/*
+ * for Edge ctrl
+ */
+struct ov772x_edge_ctrl {
+       unsigned char strength;  /* strength control */
+       unsigned char threshold; /* threshold control */
+       unsigned char low;       /* strength Low point control */
+       unsigned char high;      /* strength High point control */
+};
+
+/*
+ * ov772x camera info
+ */
 struct ov772x_camera_info {
        unsigned long          buswidth;
        unsigned long          flags;
        struct soc_camera_link link;
+       struct ov772x_edge_ctrl edgectrl;
 };
 
 #endif /* __OV772X_H__ */
-- 
1.5.6.3

--
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