]> rtime.felk.cvut.cz Git - sojka/nv-tegra/linux-3.10.git/commitdiff
drivers: soc_camera: imx230 crop corruption
authorArun Kannan <akannan@nvidia.com>
Thu, 28 Apr 2016 21:42:09 +0000 (14:42 -0700)
committermobile promotions <svcmobile_promotions@nvidia.com>
Tue, 3 May 2016 02:29:06 +0000 (19:29 -0700)
Allow IMX230 sensor to output corrupted frame when changing
the cropping region.

Bug 1713205

Change-Id: Ica61f367bc6bb8617d7af10ec80e703f2cd6da2b
Signed-off-by: Arun Kannan <akannan@nvidia.com>
Reviewed-on: http://git-master/r/1134497
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
drivers/media/i2c/soc_camera/imx230_v4l2.c
include/media/imx230.h

index f96ad0e3af15f7aa918224ba251503a4747cff2d..5d46494b75e6247e886c118cd0a542354b9ac16f 100644 (file)
@@ -826,6 +826,12 @@ static int imx230_set_crop_data(struct imx230 *priv, struct v4l2_rect *rect)
        imx230_get_crop_regs(reg_list_crop, rect);
        imx230_set_group_hold(priv);
 
+       err = imx230_write_reg(priv->s_data, IMX230_MASK_CORRUPT_FRAME_ADDR,
+               IMX230_MASK_CORRUPT_FRAME_TRANSMIT);
+       if (err)
+               dev_err(&priv->i2c_client->dev,
+                       "%s: SENSOR_CROP: MASK_CORR_FRAME error\n", __func__);
+
        for (i = 0; i < IMX230_NUM_CROP_REGS; i++) {
                err = imx230_write_reg(priv->s_data, reg_list_crop[i].addr,
                         reg_list_crop[i].val);
index 68e564166f3a67b4bf8a907712289762cacd6e52..7b42d70e24212d02b2d8d4c5edc6bdb9e7ed9b7a 100644 (file)
 #define IMX230_GAIN_SHORT_ADDR_LSB             0x0217
 #define IMX230_GROUP_HOLD_ADDR                 0x0104
 
+#define IMX230_MASK_CORRUPT_FRAME_ADDR         0x0105
+#define IMX230_MASK_CORRUPT_FRAME_TRANSMIT     0
+#define IMX230_MASK_CORRUPT_FRAME_MASK         1
+
 #define IMX230_CROP_X_START_ADDR_MSB   0x0344
 #define IMX230_CROP_X_START_ADDR_LSB   0x0345
 #define IMX230_CROP_Y_START_ADDR_MSB   0x0346