From nobody Sat Oct 4 04:57:35 2025 Received: from ring0.de (ring0.de [152.53.19.228]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8A1255680; Wed, 20 Aug 2025 00:14:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=152.53.19.228 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755648843; cv=none; b=PSoGZTp9uqDfAI2zzgh5sJvtik7MbVFziunNDD8aMlRo3VVQzSvcwzA8r2W4WfqSr5b7JiNG65iry1joDXpcg01T5vvJKjjwhhwLq1ccEaUY5+Nqb13sEsNrx5ya8jjKwZqgdYO3I8RoZtFKUS1AzfqC+9c7d+K96ZEbxfqjIcI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755648843; c=relaxed/simple; bh=U4g1JtvDsdcbH8rRfpOM3VKcFjQCA1IDC0rsOf49jts=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=KZrS3HXjWcLKRTHzvxvLfiByfmipEkUel+5Re1ZotQ9XExHTBvoYIsg3NL7QfZqplqgjah9sp9Rv9ru9QNgqnt0N4QdWZFSekJ5tw8K+sgzZQVJFsk/miIgLUDvKwPje68/Dhxgz7pU4kC03dzeYwrgWNodt7UGC4KBa4ACidMY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=kernel.org; spf=pass smtp.mailfrom=ring0.de; arc=none smtp.client-ip=152.53.19.228 Authentication-Results: smtp.subspace.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=kernel.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ring0.de From: Sebastian Reichel Authentication-Results: ring0.de; auth=pass smtp.mailfrom=sre@ring0.de Date: Wed, 20 Aug 2025 02:13:19 +0200 Subject: [PATCH 1/2] media: ov02c10: Fix default vertical flip Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250820-ov02c10-fix-v1-1-3fcca2cfbfbf@kernel.org> References: <20250820-ov02c10-fix-v1-0-3fcca2cfbfbf@kernel.org> In-Reply-To: <20250820-ov02c10-fix-v1-0-3fcca2cfbfbf@kernel.org> To: Hans de Goede , Bryan O'Donoghue , Sakari Ailus , Mauro Carvalho Chehab , Heimir Thor Sverrisson , Hans Verkuil Cc: Frederic Stuyk , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, Sebastian Reichel X-Developer-Signature: v=1; a=openpgp-sha256; l=1068; i=sre@kernel.org; h=from:subject:message-id; bh=U4g1JtvDsdcbH8rRfpOM3VKcFjQCA1IDC0rsOf49jts=; b=owEBbQKS/ZANAwAKAdju1/PIO/qaAcsmYgBopRM48xk/kjIttvaRQ2A1pSwB9W+Jd1UaOqTi/ NQVJMVxcIuJAjMEAAEKAB0WIQTvZg0HRj+Lcmp5VBPY7tfzyDv6mgUCaKUTOAAKCRDY7tfzyDv6 ml7eEAClk53b/tVpqVoVM6Y9bFMAAZemuMrypT7aI9lv5ZR4xVa1sdrIzhDDWCDOXp88mcF82DN XQQ3Xir5+6JKYoQARav5oQ+nWWgYlyE5cPpBDgncSpGmPOyKwiyPf9lEedTJvqT2atMFuSzbOy1 hqBXe8CAUQbev/jeSBb17eivsKJvk2htXhZWBjAFiS9pFhx+3oF3ih45Mcjta3TF3uC4vDVRDKL BYltoo60GSuLs513nLP4EeeDOacvqiLu4BcYyIE5jOgQX+oQSWnEPIwatk+sDrUccrivnEgmgT9 LV3BLIylvctWlzz/fIAnSngRxCBVfx2K9QY27w9rB7jH7MgHelclIM7hnmOQvS0NJfXbflp8yo1 G/l0Ya9vhIW4IYphyXyRg1+HiJDq9aQs/LpvcC4WYk1vmo89mj9tAHYS6Ih8jVlI1V4FCuUH4s7 +97WNIK+wLfs8vSZiGosdl+5byJ8iHDgiY15bC6hJihZpE8a6OdvJXyw7iFiuQtqomO8fMbdD/k rkOauTgwJxTMI6s/I6UpnlPfZskktvL6DQTnLajks8i0VL9k71yHmsLY9rHCYmbUayatBzbX67J FcfKG22F85jPXD4ZYuYhPeaU2eN4ge10kHu0JiuQCkt2+QZbU86cGQZVSn2MQm6STWhpZvJ9FBX FKPjlrKUlSW84Zg== X-Developer-Key: i=sre@kernel.org; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A X-Rspamd-Server: antispam X-Rspamd-Queue-Id: 7D2D6E31EC X-Spamd-Result: default: False [-1.30 / 15.00]; BAYES_HAM(-3.00)[100.00%]; SUSPICIOUS_RECIPS(1.50)[]; FORGED_SENDER(0.30)[sre@kernel.org,sre@ring0.de]; MIME_GOOD(-0.10)[text/plain]; TAGGED_RCPT(0.00)[]; ARC_NA(0.00)[]; ASN(0.00)[asn:39351, ipnet:193.32.248.0/24, country:SE]; MISSING_XM_UA(0.00)[]; RCVD_COUNT_ZERO(0.00)[0]; MIME_TRACE(0.00)[0:+]; FREEMAIL_TO(0.00)[kernel.org,linux.intel.com,gmail.com]; MID_RHS_MATCH_FROM(0.00)[]; TO_DN_SOME(0.00)[]; FROM_HAS_DN(0.00)[]; FREEMAIL_CC(0.00)[runbox.com,vger.kernel.org,kernel.org]; RCPT_COUNT_SEVEN(0.00)[10]; TO_MATCH_ENVRCPT_ALL(0.00)[]; IS_LOCAL_DOMAIN_E(0.00)[ring0.de]; FROM_NEQ_ENVFROM(0.00)[sre@kernel.org,sre@ring0.de]; FREEMAIL_ENVRCPT(0.00)[gmail.com,runbox.com] X-Rspamd-Action: no action X-Spamd-Bar: - The driver right now defaults to setting the vertical flip bit. This conflicts with proper handling of the rotation property defined in ACPI or device tree, so drop the VFLIP bit. It should be handled via V4L2_CID_VFLIP instead. Reported-by: Frederic Stuyk Closes: https://lore.kernel.org/all/b6df9ae7-ea9f-4e5a-8065-5b130f534f37@ru= nbox.com/ Fixes: 44f89010dae0 ("media: i2c: Add Omnivision OV02C10 sensor driver") Signed-off-by: Sebastian Reichel Reviewed-by: Bryan O'Donoghue --- drivers/media/i2c/ov02c10.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/media/i2c/ov02c10.c b/drivers/media/i2c/ov02c10.c index 089a4fd9627cf6c13efa65c104caeac370b53bc0..3a02fce0a9bc0ca3ab87defe3ee= fd04efb4012e7 100644 --- a/drivers/media/i2c/ov02c10.c +++ b/drivers/media/i2c/ov02c10.c @@ -175,7 +175,7 @@ static const struct reg_sequence sensor_1928x1092_30fps= _setting[] =3D { {0x3816, 0x01}, {0x3817, 0x01}, =20 - {0x3820, 0xb0}, + {0x3820, 0xa0}, {0x3821, 0x00}, {0x3822, 0x80}, {0x3823, 0x08}, --=20 2.50.1 From nobody Sat Oct 4 04:57:35 2025 Received: from ring0.de (ring0.de [152.53.19.228]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8A0F24A32; Wed, 20 Aug 2025 00:14:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=152.53.19.228 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755648843; cv=none; b=NlN/rl+02zK9NBZT60Wum0jAaMBQlIz2ua0EX/Zh2cmvFhMh8OIRATOVlmku04HfGZuTRx8ufFKmQsd43C6qquSuw4AET2UklWIpcj7gm+T1ZZrjKYoyyfQfgp+q5fWUsDFd8aJeXq5oFli9FODItqoenFZsIyqPaaYxeyHyZLE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755648843; c=relaxed/simple; bh=KCY7Qq4+JICG9df4WUnLRlAsQad19ixemPvFLVyQn48=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=HD5T9XYFcXs4hhlzIuRosBdFLHndcHI5dOCFRDQX/9Lyt3y4vTzsiFko+6U0Zc/KYwBZr0RSbisriuKNYJdA81m9oVOEvskM9xLAAfGgSjloq9y0aQ58seDgdOd0yg63rlMD9lXrdcZ2fGlRMWc6290KouQhaDmDjpT0dIlKUhI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=kernel.org; spf=pass smtp.mailfrom=ring0.de; arc=none smtp.client-ip=152.53.19.228 Authentication-Results: smtp.subspace.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=kernel.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ring0.de From: Sebastian Reichel Authentication-Results: ring0.de; auth=pass smtp.mailfrom=sre@ring0.de Date: Wed, 20 Aug 2025 02:13:20 +0200 Subject: [PATCH 2/2] media: ov02c10: Support hflip and vflip Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250820-ov02c10-fix-v1-2-3fcca2cfbfbf@kernel.org> References: <20250820-ov02c10-fix-v1-0-3fcca2cfbfbf@kernel.org> In-Reply-To: <20250820-ov02c10-fix-v1-0-3fcca2cfbfbf@kernel.org> To: Hans de Goede , Bryan O'Donoghue , Sakari Ailus , Mauro Carvalho Chehab , Heimir Thor Sverrisson , Hans Verkuil Cc: Frederic Stuyk , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, Sebastian Reichel X-Developer-Signature: v=1; a=openpgp-sha256; l=2304; i=sre@kernel.org; h=from:subject:message-id; bh=KCY7Qq4+JICG9df4WUnLRlAsQad19ixemPvFLVyQn48=; b=owEBbQKS/ZANAwAKAdju1/PIO/qaAcsmYgBopRM4RLhi0GrEULs2NRB83omMvHzp6rV8xTyML 30HcNsyAVmJAjMEAAEKAB0WIQTvZg0HRj+Lcmp5VBPY7tfzyDv6mgUCaKUTOAAKCRDY7tfzyDv6 mjMsD/9x8sK+x4Mfya5Boj1JlrU1UfhxkdG3+0Xp8qtB5LWv97IIS5M02+DsE99PNDjPdaaHjhc QG/syvpgVxwmPy/AecNC2HeSSVrl+iRICT49v9OmgqxPmeFI0KXab80ITiwFKpqGQeNWmaO4g+R gi+9kL1rfKqh6n4DlQ6OvF8ADRsEsfbn4rhkM7a02rqbGPTyc21l72dJgS6jXZ8dwK4DkU0xw9y 0hDrj+dIX6jZF3fxPk93cnisqttMEiCSTZQS/GeBghlx+hu3NlkM2XBqMEs/bHFUYv7uUjskSL/ tL5HqCfxZfWtGzs18LgBeiH8pI5P5BdGn6+N0TFEuVnTHqBv1OepJ0/DEHPOorcDm0D9gqtsS6k 2I4pP+HPtEWldoyWpBv3ipp/MX/4sMxweJ9oT2+A+Vu7FBJ+++WAJKj95p83zVwXHXdKs4qEoo2 NYH30qscDencKTM3Ls1+arsKzl4IGjRJ+J3ORfTnaUVz69SSVoLAdeybpEX3LKfE6HXj/i87+O8 t8aEKI6H3J5ZYEaTcloFMY2KXXK6ovvrg3VVklj+sQGr4R92kZKFi1eTG/RQcifpGlmSH1BDG5Z snt+sOcO9hYl9ZUGMOa+Dc3Pw8iaypFXK4p6UD1L6CUGVcTENVAyn+qMLxBdZ6yulbFr8NcWMMc NSuYWkiZpv1LO1w== X-Developer-Key: i=sre@kernel.org; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A X-Rspamd-Server: antispam X-Rspamd-Queue-Id: B0148E31FA X-Spamd-Result: default: False [-1.30 / 15.00]; BAYES_HAM(-3.00)[100.00%]; SUSPICIOUS_RECIPS(1.50)[]; FORGED_SENDER(0.30)[sre@kernel.org,sre@ring0.de]; MIME_GOOD(-0.10)[text/plain]; TAGGED_RCPT(0.00)[]; ARC_NA(0.00)[]; ASN(0.00)[asn:39351, ipnet:193.32.248.0/24, country:SE]; MISSING_XM_UA(0.00)[]; RCVD_COUNT_ZERO(0.00)[0]; MIME_TRACE(0.00)[0:+]; FREEMAIL_TO(0.00)[kernel.org,linux.intel.com,gmail.com]; MID_RHS_MATCH_FROM(0.00)[]; TO_DN_SOME(0.00)[]; FROM_HAS_DN(0.00)[]; FREEMAIL_CC(0.00)[runbox.com,vger.kernel.org,kernel.org]; RCPT_COUNT_SEVEN(0.00)[10]; TO_MATCH_ENVRCPT_ALL(0.00)[]; IS_LOCAL_DOMAIN_E(0.00)[ring0.de]; FROM_NEQ_ENVFROM(0.00)[sre@kernel.org,sre@ring0.de]; FREEMAIL_ENVRCPT(0.00)[gmail.com,runbox.com] X-Rspamd-Action: no action X-Spamd-Bar: - Support horizontal and vertical flip, which is necessary to handle upside-down mounted sensors. Suggested-by: Bryan O'Donoghue Signed-off-by: Sebastian Reichel Reviewed-by: Bryan O'Donoghue --- drivers/media/i2c/ov02c10.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/drivers/media/i2c/ov02c10.c b/drivers/media/i2c/ov02c10.c index 3a02fce0a9bc0ca3ab87defe3eefd04efb4012e7..103d007415348a8bd31a09e518d= e23f5fd77c618 100644 --- a/drivers/media/i2c/ov02c10.c +++ b/drivers/media/i2c/ov02c10.c @@ -384,6 +384,8 @@ struct ov02c10 { struct v4l2_ctrl *vblank; struct v4l2_ctrl *hblank; struct v4l2_ctrl *exposure; + struct v4l2_ctrl *hflip; + struct v4l2_ctrl *vflip; =20 struct clk *img_clk; struct gpio_desc *reset; @@ -462,6 +464,16 @@ static int ov02c10_set_ctrl(struct v4l2_ctrl *ctrl) ret =3D ov02c10_test_pattern(ov02c10, ctrl->val); break; =20 + case V4L2_CID_HFLIP: + cci_update_bits(ov02c10->regmap, OV02C10_ROTATE_CONTROL, + BIT(3), ov02c10->hflip->val << 3, &ret); + break; + + case V4L2_CID_VFLIP: + cci_update_bits(ov02c10->regmap, OV02C10_ROTATE_CONTROL, + BIT(4), ov02c10->vflip->val << 4, &ret); + break; + default: ret =3D -EINVAL; break; @@ -486,7 +498,7 @@ static int ov02c10_init_controls(struct ov02c10 *ov02c1= 0) s64 exposure_max, h_blank, pixel_rate; int ret; =20 - v4l2_ctrl_handler_init(ctrl_hdlr, 10); + v4l2_ctrl_handler_init(ctrl_hdlr, 12); =20 ov02c10->link_freq =3D v4l2_ctrl_new_int_menu(ctrl_hdlr, &ov02c10_ctrl_ops, @@ -537,6 +549,17 @@ static int ov02c10_init_controls(struct ov02c10 *ov02c= 10) exposure_max, OV02C10_EXPOSURE_STEP, exposure_max); + + ov02c10->hflip =3D v4l2_ctrl_new_std(ctrl_hdlr, &ov02c10_ctrl_ops, + V4L2_CID_HFLIP, 0, 1, 1, 0); + if (ov02c10->hflip) + ov02c10->hflip->flags |=3D V4L2_CTRL_FLAG_MODIFY_LAYOUT; + + ov02c10->vflip =3D v4l2_ctrl_new_std(ctrl_hdlr, &ov02c10_ctrl_ops, + V4L2_CID_VFLIP, 0, 1, 1, 0); + if (ov02c10->vflip) + ov02c10->vflip->flags |=3D V4L2_CTRL_FLAG_MODIFY_LAYOUT; + v4l2_ctrl_new_std_menu_items(ctrl_hdlr, &ov02c10_ctrl_ops, V4L2_CID_TEST_PATTERN, ARRAY_SIZE(ov02c10_test_pattern_menu) - 1, --=20 2.50.1