lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:   Mon, 26 Jul 2021 15:50:06 +0200
From:   Martin Dørum <martid0311@...il.com>
To:     sakari.ailus@...ux.intel.com,
        Mauro Carvalho Chehab <mchehab@...nel.org>,
        Martin Dørum <martid0311@...il.com>,
        Hans Verkuil <hverkuil-cisco@...all.nl>,
        Laurent Pinchart <laurent.pinchart@...asonboard.com>,
        Tomi Valkeinen <tomi.valkeinen@...asonboard.com>,
        linux-media@...r.kernel.org (open list:MEDIA INPUT INFRASTRUCTURE
        (V4L/DVB)), linux-kernel@...r.kernel.org (open list)
Subject: [PATCH] media: i2c: ov5645: Fix horizontal flip

The ov5645 driver currently handles horizontal flipping by setting the
"sensor mirror" bit (bit 1) in the TIMING_TC_REG21 register. This
just reverses the sensor data readout for each row, which works for the
brightness (Y) bytes, but it ends up reversing the color (U and V)
bytes.

This fix adds the "ISP mirror" bit (bit 2) in the same register.
The datasheet I have isn't very detailed, but it seems like "ISP mirror"
makes the image sensor processor flip the color byte pairs (so UV -> VU),
so reversing data readout in combination with "ISP mirror" gives us a
horizontally flipped image with correct colors.

Signed-off-by: Martin Dørum <martid0311@...il.com>
---
 drivers/media/i2c/ov5645.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/media/i2c/ov5645.c b/drivers/media/i2c/ov5645.c
index 368fa21e675e..c40bcb4b5484 100644
--- a/drivers/media/i2c/ov5645.c
+++ b/drivers/media/i2c/ov5645.c
@@ -52,7 +52,7 @@
 #define		OV5645_SENSOR_VFLIP		BIT(1)
 #define		OV5645_ISP_VFLIP		BIT(2)
 #define OV5645_TIMING_TC_REG21		0x3821
-#define		OV5645_SENSOR_MIRROR		BIT(1)
+#define		OV5645_SENSOR_MIRROR		(BIT(1) | BIT(2))
 #define OV5645_MIPI_CTRL00		0x4800
 #define OV5645_PRE_ISP_TEST_SETTING_1	0x503d
 #define		OV5645_TEST_PATTERN_MASK	0x3
-- 
2.31.1

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ