From 42172a5124173f1c30ac097f2d788a1beaacbe3d Mon Sep 17 00:00:00 2001
From: Vladimir Barinov <vladimir.barinov@cogentembedded.com>
Date: Thu, 9 May 2019 23:09:53 +0300
Subject: [PATCH 116/122] lvds: AR0233: fix matrix size, set default h/vflip

AR0233 matrix array 2072x1296
set default hflip and vflip as perspecitve view i.e. flipped

Signed-off-by: Vladimir Barinov <vladimir.barinov@cogentembedded.com>
---
 drivers/media/i2c/soc_camera/ar0233.c      | 6 +++---
 drivers/media/i2c/soc_camera/ar0233.h      | 4 ++--
 drivers/media/i2c/soc_camera/ar0233_rev1.h | 2 +-
 drivers/media/i2c/soc_camera/ar0233_rev2.h | 4 +++-
 4 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/drivers/media/i2c/soc_camera/ar0233.c b/drivers/media/i2c/soc_camera/ar0233.c
index 5c3d4e1..862c820 100644
--- a/drivers/media/i2c/soc_camera/ar0233.c
+++ b/drivers/media/i2c/soc_camera/ar0233.c
@@ -99,7 +99,7 @@ static int ar0233_set_window(struct v4l2_subdev *sd)
 	struct i2c_client *client = v4l2_get_subdevdata(sd);
 	struct ar0233_priv *priv = to_ar0233(client);
 
-	dev_err(&client->dev, "L=%d T=%d %dx%d\n", priv->rect.left, priv->rect.top, priv->rect.width, priv->rect.height);
+	dev_dbg(&client->dev, "L=%d T=%d %dx%d\n", priv->rect.left, priv->rect.top, priv->rect.width, priv->rect.height);
 
 	/* horiz crop start */
 	reg16_write16(client, 0x3004, priv->rect.left);
@@ -554,9 +554,9 @@ static int ar0233_probe(struct i2c_client *client,
 	v4l2_ctrl_new_std(&priv->hdl, &ar0233_ctrl_ops,
 			  V4L2_CID_EXPOSURE, 1, 0x600, 1, 0x144);
 	v4l2_ctrl_new_std(&priv->hdl, &ar0233_ctrl_ops,
-			  V4L2_CID_HFLIP, 0, 1, 1, 0);
+			  V4L2_CID_HFLIP, 0, 1, 1, 1);
 	v4l2_ctrl_new_std(&priv->hdl, &ar0233_ctrl_ops,
-			  V4L2_CID_VFLIP, 0, 1, 1, 0);
+			  V4L2_CID_VFLIP, 0, 1, 1, 1);
 	priv->sd.ctrl_handler = &priv->hdl;
 
 	ret = priv->hdl.error;
diff --git a/drivers/media/i2c/soc_camera/ar0233.h b/drivers/media/i2c/soc_camera/ar0233.h
index f6ba245..5f2bada 100644
--- a/drivers/media/i2c/soc_camera/ar0233.h
+++ b/drivers/media/i2c/soc_camera/ar0233.h
@@ -17,8 +17,8 @@
 
 #define AR0233_DELAY		0xffff
 
-#define AR0233_SENSOR_WIDTH	2058
-#define AR0233_SENSOR_HEIGHT	1284
+#define AR0233_SENSOR_WIDTH	2072
+#define AR0233_SENSOR_HEIGHT	1296
 
 #define AR0233_X_START		((AR0233_SENSOR_WIDTH - AR0233_MAX_WIDTH) / 2)
 #define AR0233_Y_START		((AR0233_SENSOR_HEIGHT - AR0233_MAX_HEIGHT) / 2)
diff --git a/drivers/media/i2c/soc_camera/ar0233_rev1.h b/drivers/media/i2c/soc_camera/ar0233_rev1.h
index 7b6370b..ddc1612 100644
--- a/drivers/media/i2c/soc_camera/ar0233_rev1.h
+++ b/drivers/media/i2c/soc_camera/ar0233_rev1.h
@@ -1156,8 +1156,8 @@ static const struct ar0233_reg ar0233_rev1_Full_resolution[] = {
 }; /* Full_resolution */
 
 static const struct ar0233_reg ar0233_rev1_disable_embed_data_stat[] = {
+{0x3040, 0xC000}, //Embedded stat2 and data2 rows, hflip/vflip=1
 #ifdef AR0233_EMBEDDED_LINE
-{0x3040, 0x0000}, //Embedded stat2 and data2 rows
 {0x3064, 0x0180}, //Enable embedded data and stat
 #else
 {0x3064, 0x0}, //Disable embedded data and stat
diff --git a/drivers/media/i2c/soc_camera/ar0233_rev2.h b/drivers/media/i2c/soc_camera/ar0233_rev2.h
index 02d9af1..66c79ca 100644
--- a/drivers/media/i2c/soc_camera/ar0233_rev2.h
+++ b/drivers/media/i2c/soc_camera/ar0233_rev2.h
@@ -2265,9 +2265,11 @@ static const struct ar0233_reg ar0233_rev2_O1_Recommended_Defaults_SE_T1_LIN_T2[
 }; /* O1_Recommended_Defaults_SE_T1_LIN_T2 */
 
 static const struct ar0233_reg ar0233_rev2_disable_embed_data_stat[] = {
-{0x3064, 0x0}, // Disable embedded data and stat
+{0x3040, 0xC000}, //Embedded stat2 and data2 rows, hflip/vflip=1
 #ifdef AR0233_EMBEDDED_LINE
 {0x3064, 0x0180}, // SMIA_TEST: enable emb data and stats
+#else
+{0x3064, 0x0}, // Disable embedded data and stat
 #endif
 { }
 }; /* disable_embed_data_stat */
-- 
2.7.4

