From nobody Fri Apr 3 10:19:24 2026 Received: from lx20.hoststar.hosting (lx20.hoststar.hosting [168.119.41.54]) (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 EF4593B3890; Tue, 24 Mar 2026 10:42:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=168.119.41.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774348928; cv=none; b=tV1KxjKozR9i98IHH7v45N6aChTYPM+TyAHc1aO9xqd8bM2euZmmCVw/Ewep2CIh8S80PDTNjYXax13g4Qo4LfxlrOZndRZrc81iFRCtHJr6sWtyRFoxMJTYcgXD/InwUazZ4EeOEAZnB3dYsnWpvHAHVfVippmpOthJGKxl50M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774348928; c=relaxed/simple; bh=Uc6xjJaFE7PobznqEBdDlJgmxrZXf0y3Ig7nqbSGQzY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=uIdnAaYUSKh9nXgvOyhUSBiV2QtI2uMpqJ6VpABkFi9ogUg5NE0zN4PYM2qqlgrzFwfdsCGsDqCyTMATxDr1lby0ZuJaxyU5SQzVl3cTFbGvXouwIIwadrMpxk2UINRXxqE7IYYiyF2vIrMZ7DW6fcR8Xow5XALGpw7jmKRetjc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=emfend.at; spf=pass smtp.mailfrom=emfend.at; dkim=pass (1024-bit key) header.d=emfend.at header.i=@emfend.at header.b=YmtBCGVr; arc=none smtp.client-ip=168.119.41.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=emfend.at Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=emfend.at Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=emfend.at header.i=@emfend.at header.b="YmtBCGVr" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=emfend.at; s=mail; h=Cc:To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:Subject:Date:From:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=XfCMILvliDmEG90LbBt8CLqzU1EbXJrdVztecSvsrrA=; b=YmtBCGVraPlzEIKgwiX1ruefs3 RNyKZ0hN663cwWsRvIl8ATbLpeN1FHyEXtm98UkKKzuy3vSFguPgOWkO17CaGt2f/a0X4DI4CCy0t IWvBfHG1YXDWiDb4jcmuZwMK3eMEjsx0s8qbXkFMKv/6jifuVm6S4g8u1qcxNlaM24BM=; Received: from 194-208-208-245.tele.net ([194.208.208.245]:55336 helo=[127.0.1.1]) by lx20.hoststar.hosting with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1w4zCz-00DIvK-Op; Tue, 24 Mar 2026 11:42:02 +0100 From: Matthias Fend Date: Tue, 24 Mar 2026 11:41:35 +0100 Subject: [PATCH v3 1/9] media: i2c: ov08d10: fix runtime PM handling in probe 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: <20260324-ov08d10-v3-1-1e44069cf91e@emfend.at> References: <20260324-ov08d10-v3-0-1e44069cf91e@emfend.at> In-Reply-To: <20260324-ov08d10-v3-0-1e44069cf91e@emfend.at> To: Jimmy Su , Sakari Ailus , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Matthias Fend , bsp-development.geo@leica-geosystems.com X-Mailer: b4 0.14.2 X-Spam-Score: -1.0 X-Spam-Bar: - X-Spam-Report: Spam detection software, running on the system "lx20.hoststar.hosting", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: This series provides basic device tree support and handling for power supplies, an optional reset, and the option to use a 24MHz input clock. In addition to a few minor fixes, a major problem with the configuration of the sensor modes has also been resolved. Content analysis details: (-1.0 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP 0.0 TVD_RCVD_IP Message was received from an IP address 0.0 KAM_DMARC_STATUS Test Rule for DKIM or SPF Failure with Strict Alignment (older systems) 0.0 Local_hs_NotFromHoststar Sender is NOT hoststar.(ch|at|com) 0.0 Local_hs_NotToHoststar Recipient is NOT hoststar.(ch|at|com) Set the device's runtime PM status and enable runtime PM before registering the async sub-device. This is needed to avoid the case where the device is runtime PM resumed while runtime PM has not been enabled yet. Remove the related, non-driver-specific comment while at it. Fixes: 7be91e02ed57 ("media: i2c: Add ov08d10 camera sensor driver") Reviewed-by: Philipp Zabel Signed-off-by: Matthias Fend --- drivers/media/i2c/ov08d10.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/media/i2c/ov08d10.c b/drivers/media/i2c/ov08d10.c index 43ec2a1f2fcffb7fa11a6268af3c2edc4df129f3..5b02f61e359fa900da9290c1c15= 1aa01b9d70e6e 100644 --- a/drivers/media/i2c/ov08d10.c +++ b/drivers/media/i2c/ov08d10.c @@ -1430,6 +1430,9 @@ static int ov08d10_probe(struct i2c_client *client) goto probe_error_v4l2_ctrl_handler_free; } =20 + pm_runtime_set_active(ov08d10->dev); + pm_runtime_enable(ov08d10->dev); + ret =3D v4l2_async_register_subdev_sensor(&ov08d10->sd); if (ret < 0) { dev_err(ov08d10->dev, "failed to register V4L2 subdev: %d", @@ -1437,17 +1440,13 @@ static int ov08d10_probe(struct i2c_client *client) goto probe_error_media_entity_cleanup; } =20 - /* - * Device is already turned on by i2c-core with ACPI domain PM. - * Enable runtime PM and turn off the device. - */ - pm_runtime_set_active(ov08d10->dev); - pm_runtime_enable(ov08d10->dev); pm_runtime_idle(ov08d10->dev); =20 return 0; =20 probe_error_media_entity_cleanup: + pm_runtime_disable(ov08d10->dev); + pm_runtime_set_suspended(ov08d10->dev); media_entity_cleanup(&ov08d10->sd.entity); =20 probe_error_v4l2_ctrl_handler_free: --=20 2.34.1 From nobody Fri Apr 3 10:19:24 2026 Received: from lx20.hoststar.hosting (lx20.hoststar.hosting [168.119.41.54]) (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 70E8B3D3494; Tue, 24 Mar 2026 10:42:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=168.119.41.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774348928; cv=none; b=td91mJi3QCF/UJUMg0rqsRsEwV1q6DFXoOaHy4c7CV39EoZbL5ZcWyND3sV9iESn+uT12aBHYh0ZyM6aYiNVDbqzW3h2UTuP13g9GnAGTqqHVVFHcosJ8VDI4CdLOBdw8S+5tsABFxwpwAEwargpO6/qov2dCtvpKWFI/pWnkb0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774348928; c=relaxed/simple; bh=Msne2OPU6AC8rANt+KJ9Nfx9HBaFIIS/y7bNrfoHsP4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=iTh1tEUtpQcs4Cl/yyuTE3yk+fzmqJsrfCjlXc3XuW5GxuxbZADlme2FuBELe/9XKa1Jx5U4zRUthTrnJcntPRDHpDhxjtgrQSNfJt+ImCJVFvgcdA+Oj0KEFZ5yakzIZhHeeG58zZSImuNlu+m4v9EaFjGKslov0X9Dat2+VP0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=emfend.at; spf=pass smtp.mailfrom=emfend.at; dkim=pass (1024-bit key) header.d=emfend.at header.i=@emfend.at header.b=bfy404VI; arc=none smtp.client-ip=168.119.41.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=emfend.at Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=emfend.at Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=emfend.at header.i=@emfend.at header.b="bfy404VI" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=emfend.at; s=mail; h=Cc:To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:Subject:Date:From:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=QhGjIQciuVNZ6DrTWNpHCvmxA9va2rN5Hjh+s//xY04=; b=bfy404VIqFcALQdEmDh+6KupBh A9PPpAUBeP2pNa6KVcyT7NUNuxWKq8r90INgpyLYvrVI4SsuCJfTmpT3EWBoI+b8YqobE0iUgqr9T IGxnTUEjqUz6PPY+BzjgSPFvn+wEVwMJ5DUHh1WDU4syLJ3jUY9F4zqiT1FJQMM8ZqMU=; Received: from 194-208-208-245.tele.net ([194.208.208.245]:55336 helo=[127.0.1.1]) by lx20.hoststar.hosting with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1w4zD0-00DIvK-Gx; Tue, 24 Mar 2026 11:42:02 +0100 From: Matthias Fend Date: Tue, 24 Mar 2026 11:41:36 +0100 Subject: [PATCH v3 2/9] media: i2c: ov08d10: fix image vertical start setting 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: <20260324-ov08d10-v3-2-1e44069cf91e@emfend.at> References: <20260324-ov08d10-v3-0-1e44069cf91e@emfend.at> In-Reply-To: <20260324-ov08d10-v3-0-1e44069cf91e@emfend.at> To: Jimmy Su , Sakari Ailus , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Matthias Fend , bsp-development.geo@leica-geosystems.com X-Mailer: b4 0.14.2 X-Spam-Score: -1.0 X-Spam-Bar: - X-Spam-Report: Spam detection software, running on the system "lx20.hoststar.hosting", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Set the device's runtime PM status and enable runtime PM before registering the async sub-device. This is needed to avoid the case where the device is runtime PM resumed while runtime PM has not been [...] Content analysis details: (-1.0 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP 0.0 TVD_RCVD_IP Message was received from an IP address 0.0 KAM_DMARC_STATUS Test Rule for DKIM or SPF Failure with Strict Alignment (older systems) 0.0 Local_hs_NotFromHoststar Sender is NOT hoststar.(ch|at|com) 0.0 Local_hs_NotToHoststar Recipient is NOT hoststar.(ch|at|com) The current settings for the "image vertical start" register appear to be incorrect. While this only results in an incorrect start line for native modes, this faulty setting causes actual problems in binning mode. At least on an i.MX8MP test system, only corrupted frames could be received. To correct this, the recommended settings from the reference register sets are used for all modes. Since this shifts the start by one line, the Bayer pattern also changes, which has also been corrected. Fixes: 7be91e02ed57 ("media: i2c: Add ov08d10 camera sensor driver") Signed-off-by: Matthias Fend --- drivers/media/i2c/ov08d10.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/media/i2c/ov08d10.c b/drivers/media/i2c/ov08d10.c index 5b02f61e359fa900da9290c1c151aa01b9d70e6e..5e1b8b58b3d64bcf20a7b1a4e47= f547d2fd82998 100644 --- a/drivers/media/i2c/ov08d10.c +++ b/drivers/media/i2c/ov08d10.c @@ -217,7 +217,7 @@ static const struct ov08d10_reg lane_2_mode_3280x2460[]= =3D { {0x9a, 0x30}, {0xa8, 0x02}, {0xfd, 0x02}, - {0xa1, 0x01}, + {0xa1, 0x00}, {0xa2, 0x09}, {0xa3, 0x9c}, {0xa5, 0x00}, @@ -335,7 +335,7 @@ static const struct ov08d10_reg lane_2_mode_3264x2448[]= =3D { {0x9a, 0x30}, {0xa8, 0x02}, {0xfd, 0x02}, - {0xa1, 0x09}, + {0xa1, 0x08}, {0xa2, 0x09}, {0xa3, 0x90}, {0xa5, 0x08}, @@ -467,7 +467,7 @@ static const struct ov08d10_reg lane_2_mode_1632x1224[]= =3D { {0xaa, 0xd0}, {0xab, 0x06}, {0xac, 0x68}, - {0xa1, 0x09}, + {0xa1, 0x04}, {0xa2, 0x04}, {0xa3, 0xc8}, {0xa5, 0x04}, @@ -613,8 +613,8 @@ static const struct ov08d10_lane_cfg lane_cfg_2 =3D { static u32 ov08d10_get_format_code(struct ov08d10 *ov08d10) { static const u32 codes[2][2] =3D { - { MEDIA_BUS_FMT_SGRBG10_1X10, MEDIA_BUS_FMT_SRGGB10_1X10}, - { MEDIA_BUS_FMT_SBGGR10_1X10, MEDIA_BUS_FMT_SGBRG10_1X10}, + { MEDIA_BUS_FMT_SBGGR10_1X10, MEDIA_BUS_FMT_SGBRG10_1X10 }, + { MEDIA_BUS_FMT_SGRBG10_1X10, MEDIA_BUS_FMT_SRGGB10_1X10 }, }; =20 return codes[ov08d10->vflip->val][ov08d10->hflip->val]; --=20 2.34.1 From nobody Fri Apr 3 10:19:24 2026 Received: from lx20.hoststar.hosting (lx20.hoststar.hosting [168.119.41.54]) (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 37F003D1CD7; Tue, 24 Mar 2026 10:42:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=168.119.41.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774348928; cv=none; b=mtXiqwT/VuwqhOvpyZ8txdy/K0v8WZr0dOKgaxJ4xiXP5vkFVLvHk5QxiaPKu6ajRdTFSj/7mHBuyylrdjt6xx50IZ8wZ+yco8HoZ2puBNnqb5rPK2ashSow7Lt7XGTof59h4gmW7haZFYKZzjFAa9WmYb8ouxROAlSi4X+MkOE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774348928; c=relaxed/simple; bh=9m8usDxjoIYEaL2IG/QrB3J6DW7Hoz4wLcyyEMK0pAE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=sCQFBaBLXic7o0TmNzCac9lq5uoCugh3NOQ8z4BdpOJTqzeRK1yEoIC697nVvighFFPOyvBb6CokQboYO+X0W+g9rBb87+GHzDrMZbUFmzjM0D9gGivbIfvwuaYoZ0V4t4fKTaNyk/1IvBnmw3krH+BvKE6GzdqZhQkNkhy9+yU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=emfend.at; spf=pass smtp.mailfrom=emfend.at; dkim=pass (1024-bit key) header.d=emfend.at header.i=@emfend.at header.b=Hok0jLrz; arc=none smtp.client-ip=168.119.41.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=emfend.at Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=emfend.at Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=emfend.at header.i=@emfend.at header.b="Hok0jLrz" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=emfend.at; s=mail; h=Cc:To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:Subject:Date:From:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=XnozTzcJqIffnJeCxoJ2SjzuE5JsUzNHOv3KnWqTbfc=; b=Hok0jLrzpJZA6BEbabcznRXcjA 3QsmuvYVj7vlDrU9tqlWkO/K4P7L+JTnole1A72avxAKdD07fkaPgNz3ns81/u8NA7MeR0BU+7UKk QyQI7lYMRtFUj3rbMEXPhUA69pUXXYm711Paag4Jdxmzv8CHE5Tm7krrTgsxNVDS8iqM=; Received: from 194-208-208-245.tele.net ([194.208.208.245]:55336 helo=[127.0.1.1]) by lx20.hoststar.hosting with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1w4zD1-00DIvK-9n; Tue, 24 Mar 2026 11:42:03 +0100 From: Matthias Fend Date: Tue, 24 Mar 2026 11:41:37 +0100 Subject: [PATCH v3 3/9] media: i2c: ov08d10: remove duplicate register write 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: <20260324-ov08d10-v3-3-1e44069cf91e@emfend.at> References: <20260324-ov08d10-v3-0-1e44069cf91e@emfend.at> In-Reply-To: <20260324-ov08d10-v3-0-1e44069cf91e@emfend.at> To: Jimmy Su , Sakari Ailus , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Matthias Fend , bsp-development.geo@leica-geosystems.com X-Mailer: b4 0.14.2 X-Spam-Score: -1.0 X-Spam-Bar: - X-Spam-Report: Spam detection software, running on the system "lx20.hoststar.hosting", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: The current settings for the "image vertical start" register appear to be incorrect. While this only results in an incorrect start line for native modes, this faulty setting causes actual problems in [...] Content analysis details: (-1.0 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP 0.0 TVD_RCVD_IP Message was received from an IP address 0.0 KAM_DMARC_STATUS Test Rule for DKIM or SPF Failure with Strict Alignment (older systems) 0.0 Local_hs_NotFromHoststar Sender is NOT hoststar.(ch|at|com) 0.0 Local_hs_NotToHoststar Recipient is NOT hoststar.(ch|at|com) Register P1:0x33 is written twice with the same value in the 'lane_2_mode_1632x1224' sequence. Remove one unnecessary write access. Signed-off-by: Matthias Fend --- drivers/media/i2c/ov08d10.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/media/i2c/ov08d10.c b/drivers/media/i2c/ov08d10.c index 5e1b8b58b3d64bcf20a7b1a4e47f547d2fd82998..9d54170cdf7da6fe4f03dbf64d5= e8976df247846 100644 --- a/drivers/media/i2c/ov08d10.c +++ b/drivers/media/i2c/ov08d10.c @@ -381,7 +381,6 @@ static const struct ov08d10_reg lane_2_mode_1632x1224[]= =3D { {0x07, 0x05}, {0x21, 0x02}, {0x24, 0x30}, - {0x33, 0x03}, {0x31, 0x06}, {0x33, 0x03}, {0x01, 0x03}, --=20 2.34.1 From nobody Fri Apr 3 10:19:24 2026 Received: from lx20.hoststar.hosting (lx20.hoststar.hosting [168.119.41.54]) (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 A75483D4102; Tue, 24 Mar 2026 10:42:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=168.119.41.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774348929; cv=none; b=n3ZtfkbJIE4EEiBG788iGbsH+0XfQXbv05/HgTAm/RhVGy5VFoEEZPkVUbCCOTLSUQ0BQHdnXmVWHhC0ythnAFd61/82XY8x4s97Z1fBPvRh290CvlhYAH77Ju4NFPpO40bLLLfUREDlGuc1KJEHm367KBS759q53DkCcbrYS08= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774348929; c=relaxed/simple; bh=IfU1Y8onDOfWqqELfqFJsJ0vpN6YdPyB9fFFjmm5Qfs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=pDlCyieXB9sM7aS7Gm5vJt+Fr1t8p2uQO4rlJ+12T8F3kfCtiZAWAxrKmDUW37HZ+cJsb/wl0yxy29sSyDKwY2HAXUJDSSB3o3yi4YkbE9T6RMHuHWOmfB14LfM7duVdgY1tbKVNzzPffpBHpGZwpmfbRIVlBPTzTWv/D3NMeX0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=emfend.at; spf=pass smtp.mailfrom=emfend.at; dkim=pass (1024-bit key) header.d=emfend.at header.i=@emfend.at header.b=Ss/lSACX; arc=none smtp.client-ip=168.119.41.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=emfend.at Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=emfend.at Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=emfend.at header.i=@emfend.at header.b="Ss/lSACX" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=emfend.at; s=mail; h=Cc:To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:Subject:Date:From:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=7SVm8W87fXLlxZkokAgEevAaF5wTPfi0LE7BY0/dgJ4=; b=Ss/lSACXx56UQrGjva/6MDo/wY IypKqcC9Qb0kmYfrmxnFdTM93aAsxU7PePBkc4xiL6xHqR5xwcgqoTOF7L5vNscNpgnm0oVjZQl7m Uhj5xi1MuaGhEcaa9I2KvPiu2tQ3uzqGHazXtc5T1nEEt1eVjc5pHQjCeQhZ59/wP8eY=; Received: from 194-208-208-245.tele.net ([194.208.208.245]:55336 helo=[127.0.1.1]) by lx20.hoststar.hosting with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1w4zD1-00DIvK-VW; Tue, 24 Mar 2026 11:42:04 +0100 From: Matthias Fend Date: Tue, 24 Mar 2026 11:41:38 +0100 Subject: [PATCH v3 4/9] media: i2c: ov08d10: fix some typos in comments 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: <20260324-ov08d10-v3-4-1e44069cf91e@emfend.at> References: <20260324-ov08d10-v3-0-1e44069cf91e@emfend.at> In-Reply-To: <20260324-ov08d10-v3-0-1e44069cf91e@emfend.at> To: Jimmy Su , Sakari Ailus , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Matthias Fend , bsp-development.geo@leica-geosystems.com X-Mailer: b4 0.14.2 X-Spam-Score: -1.0 X-Spam-Bar: - X-Spam-Report: Spam detection software, running on the system "lx20.hoststar.hosting", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Register P1:0x33 is written twice with the same value in the 'lane_2_mode_1632x1224' sequence. Remove one unnecessary write access. Signed-off-by: Matthias Fend --- drivers/media/i2c/ov08d10.c | 1 - 1 file changed, 1 deletion(-) Content analysis details: (-1.0 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP 0.0 TVD_RCVD_IP Message was received from an IP address 0.0 KAM_DMARC_STATUS Test Rule for DKIM or SPF Failure with Strict Alignment (older systems) 0.0 Local_hs_NotFromHoststar Sender is NOT hoststar.(ch|at|com) 0.0 Local_hs_NotToHoststar Recipient is NOT hoststar.(ch|at|com) Fix some spelling errors in comments. Reviewed-by: Philipp Zabel Signed-off-by: Matthias Fend --- drivers/media/i2c/ov08d10.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/media/i2c/ov08d10.c b/drivers/media/i2c/ov08d10.c index 9d54170cdf7da6fe4f03dbf64d5e8976df247846..fd1e0769eebe99ec2e827e9bfd0= d0a7731116669 100644 --- a/drivers/media/i2c/ov08d10.c +++ b/drivers/media/i2c/ov08d10.c @@ -88,13 +88,13 @@ struct ov08d10_mode { /* Frame height in pixels */ u32 height; =20 - /* Horizontal timining size */ + /* Horizontal timing size */ u32 hts; =20 - /* Default vertical timining size */ + /* Default vertical timing size */ u32 vts_def; =20 - /* Min vertical timining size */ + /* Min vertical timing size */ u32 vts_min; =20 /* Link frequency needed for this resolution */ @@ -533,7 +533,7 @@ struct ov08d10 { /* Current mode */ const struct ov08d10_mode *cur_mode; =20 - /* To serialize asynchronus callbacks */ + /* To serialize asynchronous callbacks */ struct mutex mutex; =20 /* lanes index */ @@ -863,7 +863,7 @@ static int ov08d10_set_ctrl(struct v4l2_ctrl *ctrl) exposure_max); } =20 - /* V4L2 controls values will be applied only when power is already up */ + /* V4L2 control values will be applied only when power is already up */ if (!pm_runtime_get_if_in_use(ov08d10->dev)) return 0; =20 --=20 2.34.1 From nobody Fri Apr 3 10:19:24 2026 Received: from lx20.hoststar.hosting (lx20.hoststar.hosting [168.119.41.54]) (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 9E1313E6DEA; Tue, 24 Mar 2026 10:42:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=168.119.41.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774348931; cv=none; b=kDNhHheNJrtRzu1VOjSXnKv5cChPz28EzVVD0tCT8dHrT5gV6gTrP/xGJz3RYyy1FIJnREqx43YUNxNf6aGq8Z8vTrrud8QvUOSaeId32Jn1Oyer4d3pE4RelUiYJh2y7b9F6XPsml0W/Lr1xgrIVd4HKlrzAGeQgHr20bBzgQo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774348931; c=relaxed/simple; bh=D6jSec0UYmhSDv7PAQQ10n/4xG35K8i0Tn8hpdntRDg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=KKlyzKFqMMhPN3pPTgUjJkTubqt6m81lIZXUHrInAYsDWpIDwGEHTmSZQkFOshjDH6XfKaGZ8CBdsfogVlXxMVfvvLX48b7zwZK/UyZf2ucnTceSpAaTxqxnBuZp0MB/Wi6f90i5wT9g2Z4sd1xZUiGZz6rT8LpX3oEJ7lRgU6E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=emfend.at; spf=pass smtp.mailfrom=emfend.at; dkim=pass (1024-bit key) header.d=emfend.at header.i=@emfend.at header.b=EMKmu0A+; arc=none smtp.client-ip=168.119.41.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=emfend.at Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=emfend.at Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=emfend.at header.i=@emfend.at header.b="EMKmu0A+" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=emfend.at; s=mail; h=Cc:To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:Subject:Date:From:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=ewmNQVXRY5b8V85ZELWmZRbLKnkQi274wQL1xk4UrLE=; b=EMKmu0A+DVr6lKFqo1Blu9p2ow TFdy8QgCbDIN5Ut7+M0P7o8xNfLQUR2CeSpbzVz0NchTBaHwfSWdxayss1Wa2dXH9jU6isy8V4hiX UA3X8VeikN94i9en9ijNO0r8PYyKw23FwbERhGexr160Vh2MnXLVIcQkbnd1unOV7oyA=; Received: from 194-208-208-245.tele.net ([194.208.208.245]:55336 helo=[127.0.1.1]) by lx20.hoststar.hosting with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1w4zD2-00DIvK-KK; Tue, 24 Mar 2026 11:42:05 +0100 From: Matthias Fend Date: Tue, 24 Mar 2026 11:41:39 +0100 Subject: [PATCH v3 5/9] media: i2c: ov08d10: add missing newline to prints 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: <20260324-ov08d10-v3-5-1e44069cf91e@emfend.at> References: <20260324-ov08d10-v3-0-1e44069cf91e@emfend.at> In-Reply-To: <20260324-ov08d10-v3-0-1e44069cf91e@emfend.at> To: Jimmy Su , Sakari Ailus , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Matthias Fend , bsp-development.geo@leica-geosystems.com X-Mailer: b4 0.14.2 X-Spam-Score: -1.0 X-Spam-Bar: - X-Spam-Report: Spam detection software, running on the system "lx20.hoststar.hosting", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Fix some spelling errors in comments. Reviewed-by: Philipp Zabel Signed-off-by: Matthias Fend --- drivers/media/i2c/ov08d10.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions( [...] Content analysis details: (-1.0 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP 0.0 TVD_RCVD_IP Message was received from an IP address 0.0 KAM_DMARC_STATUS Test Rule for DKIM or SPF Failure with Strict Alignment (older systems) 0.0 Local_hs_NotFromHoststar Sender is NOT hoststar.(ch|at|com) 0.0 Local_hs_NotToHoststar Recipient is NOT hoststar.(ch|at|com) Add trailing \n to dev_* prints where missing. Signed-off-by: Matthias Fend --- drivers/media/i2c/ov08d10.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/drivers/media/i2c/ov08d10.c b/drivers/media/i2c/ov08d10.c index fd1e0769eebe99ec2e827e9bfd0d0a7731116669..f2276f49506028c582e49a5b7ca= b3b07f6ca4e0d 100644 --- a/drivers/media/i2c/ov08d10.c +++ b/drivers/media/i2c/ov08d10.c @@ -664,7 +664,7 @@ static int ov08d10_write_reg_list(struct ov08d10 *ov08d= 10, r_list->regs[i].val); if (ret) { dev_err_ratelimited(ov08d10->dev, - "failed to write reg 0x%2.2x. error =3D %d", + "failed to write reg 0x%2.2x. error =3D %d\n", r_list->regs[i].address, ret); return ret; } @@ -1024,32 +1024,32 @@ static int ov08d10_start_streaming(struct ov08d10 *= ov08d10) /* soft reset */ ret =3D i2c_smbus_write_byte_data(client, OV08D10_REG_PAGE, 0x00); if (ret < 0) { - dev_err(ov08d10->dev, "failed to reset sensor"); + dev_err(ov08d10->dev, "failed to reset sensor\n"); return ret; } ret =3D i2c_smbus_write_byte_data(client, 0x20, 0x0e); if (ret < 0) { - dev_err(ov08d10->dev, "failed to reset sensor"); + dev_err(ov08d10->dev, "failed to reset sensor\n"); return ret; } usleep_range(3000, 4000); ret =3D i2c_smbus_write_byte_data(client, 0x20, 0x0b); if (ret < 0) { - dev_err(ov08d10->dev, "failed to reset sensor"); + dev_err(ov08d10->dev, "failed to reset sensor\n"); return ret; } =20 /* update sensor setting */ ret =3D ov08d10_write_reg_list(ov08d10, reg_list); if (ret) { - dev_err(ov08d10->dev, "failed to set plls"); + dev_err(ov08d10->dev, "failed to set plls\n"); return ret; } =20 reg_list =3D &ov08d10->cur_mode->reg_list; ret =3D ov08d10_write_reg_list(ov08d10, reg_list); if (ret) { - dev_err(ov08d10->dev, "failed to set mode"); + dev_err(ov08d10->dev, "failed to set mode\n"); return ret; } =20 @@ -1076,19 +1076,19 @@ static void ov08d10_stop_streaming(struct ov08d10 *= ov08d10) =20 ret =3D i2c_smbus_write_byte_data(client, OV08D10_REG_PAGE, 0x00); if (ret < 0) { - dev_err(ov08d10->dev, "failed to stop streaming"); + dev_err(ov08d10->dev, "failed to stop streaming\n"); return; } ret =3D i2c_smbus_write_byte_data(client, OV08D10_REG_MODE_SELECT, OV08D10_MODE_STANDBY); if (ret < 0) { - dev_err(ov08d10->dev, "failed to stop streaming"); + dev_err(ov08d10->dev, "failed to stop streaming\n"); return; } =20 ret =3D i2c_smbus_write_byte_data(client, OV08D10_REG_PAGE, 0x01); if (ret < 0) { - dev_err(ov08d10->dev, "failed to stop streaming"); + dev_err(ov08d10->dev, "failed to stop streaming\n"); return; } } @@ -1324,7 +1324,7 @@ static int ov08d10_get_hwcfg(struct ov08d10 *ov08d10) =20 /* Get number of data lanes */ if (bus_cfg.bus.mipi_csi2.num_data_lanes !=3D 2) { - dev_err(dev, "number of CSI2 data lanes %d is not supported", + dev_err(dev, "number of CSI2 data lanes %d is not supported\n", bus_cfg.bus.mipi_csi2.num_data_lanes); ret =3D -EINVAL; goto check_hwcfg_error; @@ -1336,7 +1336,7 @@ static int ov08d10_get_hwcfg(struct ov08d10 *ov08d10) ov08d10->modes_size =3D ov08d10_modes_num(ov08d10); =20 if (!bus_cfg.nr_of_link_frequencies) { - dev_err(dev, "no link frequencies defined"); + dev_err(dev, "no link frequencies defined\n"); ret =3D -EINVAL; goto check_hwcfg_error; } @@ -1349,7 +1349,7 @@ static int ov08d10_get_hwcfg(struct ov08d10 *ov08d10) } =20 if (j =3D=3D bus_cfg.nr_of_link_frequencies) { - dev_err(dev, "no link frequency %lld supported", + dev_err(dev, "no link frequency %lld supported\n", ov08d10->priv_lane->link_freq_menu[i]); ret =3D -EINVAL; goto check_hwcfg_error; @@ -1398,7 +1398,7 @@ static int ov08d10_probe(struct i2c_client *client) =20 ret =3D ov08d10_get_hwcfg(ov08d10); if (ret) { - dev_err(ov08d10->dev, "failed to get HW configuration: %d", + dev_err(ov08d10->dev, "failed to get HW configuration: %d\n", ret); return ret; } @@ -1407,7 +1407,7 @@ static int ov08d10_probe(struct i2c_client *client) =20 ret =3D ov08d10_identify_module(ov08d10); if (ret) { - dev_err(ov08d10->dev, "failed to find sensor: %d", ret); + dev_err(ov08d10->dev, "failed to find sensor: %d\n", ret); return ret; } =20 @@ -1415,7 +1415,7 @@ static int ov08d10_probe(struct i2c_client *client) ov08d10->cur_mode =3D &ov08d10->priv_lane->sp_modes[0]; ret =3D ov08d10_init_controls(ov08d10); if (ret) { - dev_err(ov08d10->dev, "failed to init controls: %d", ret); + dev_err(ov08d10->dev, "failed to init controls: %d\n", ret); goto probe_error_v4l2_ctrl_handler_free; } =20 @@ -1425,7 +1425,7 @@ static int ov08d10_probe(struct i2c_client *client) ov08d10->pad.flags =3D MEDIA_PAD_FL_SOURCE; ret =3D media_entity_pads_init(&ov08d10->sd.entity, 1, &ov08d10->pad); if (ret) { - dev_err(ov08d10->dev, "failed to init entity pads: %d", ret); + dev_err(ov08d10->dev, "failed to init entity pads: %d\n", ret); goto probe_error_v4l2_ctrl_handler_free; } =20 @@ -1434,7 +1434,7 @@ static int ov08d10_probe(struct i2c_client *client) =20 ret =3D v4l2_async_register_subdev_sensor(&ov08d10->sd); if (ret < 0) { - dev_err(ov08d10->dev, "failed to register V4L2 subdev: %d", + dev_err(ov08d10->dev, "failed to register V4L2 subdev: %d\n", ret); goto probe_error_media_entity_cleanup; } --=20 2.34.1 From nobody Fri Apr 3 10:19:24 2026 Received: from lx20.hoststar.hosting (lx20.hoststar.hosting [168.119.41.54]) (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 EC39C3E866F; Tue, 24 Mar 2026 10:42:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=168.119.41.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774348931; cv=none; b=OX6aZr32zMz6f4WUFUJSRaxXLEghXRht8Vi/+LWDePsp0f/oz41KWKgMZZUWDKsLM/flwVk/oXPZoieRMoU/zacFVMnGbgq9YGd9+0DnZkUBURwwNSCoDeW2JiKW29EaTgzGKnS3M54iNLMUNIxnmpikQQpn5YTobkWSi8u8uII= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774348931; c=relaxed/simple; bh=e85J5rUsoe9Pao8p/89snApfauekIyZ/IJ/pLZ0eD64=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=uW/rHQ2168cnDIgiuDBgaoRMasS+rTyNkGs0uPA5GDP/W6C/axvKfJEoTzo6G0YcQi1SdfX1KIFfq/Ao0W+Dz7/jy7VBunMfmf3aMoPYmtahomQPz7b7bPS2NbvfljMl3V8Rl4NlzICaPeWRkH5msVt9DIwxpWhnRc0AStRf9Mg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=emfend.at; spf=pass smtp.mailfrom=emfend.at; dkim=pass (1024-bit key) header.d=emfend.at header.i=@emfend.at header.b=WqQZJlTJ; arc=none smtp.client-ip=168.119.41.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=emfend.at Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=emfend.at Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=emfend.at header.i=@emfend.at header.b="WqQZJlTJ" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=emfend.at; s=mail; h=Cc:To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:Subject:Date:From:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=mTUyUhXXKKVENA+BCW6Oy4v/BPRVcJfR8AUg1u1iA4M=; b=WqQZJlTJ3wLsSGBmiFj/fxlfx+ JEsIqUu87HM3BTBCRvGdmrbPVNptTFNNgKX+4UMEJCcYEr4TFBPaJC0I7h4KFmLbTupX1TIyR5iZl eYcaFPBTWXhFPdgsUmlUYnuJvhWhGxta+Livmc/fmNsFflqKMUKyvX1xdj8nTsSgHisY=; Received: from 194-208-208-245.tele.net ([194.208.208.245]:55336 helo=[127.0.1.1]) by lx20.hoststar.hosting with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1w4zD3-00DIvK-JU; Tue, 24 Mar 2026 11:42:06 +0100 From: Matthias Fend Date: Tue, 24 Mar 2026 11:41:40 +0100 Subject: [PATCH v3 6/9] dt-bindings: media: i2c: document Omnivision OV08D10 CMOS image sensor 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: <20260324-ov08d10-v3-6-1e44069cf91e@emfend.at> References: <20260324-ov08d10-v3-0-1e44069cf91e@emfend.at> In-Reply-To: <20260324-ov08d10-v3-0-1e44069cf91e@emfend.at> To: Jimmy Su , Sakari Ailus , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Matthias Fend , bsp-development.geo@leica-geosystems.com, Krzysztof Kozlowski X-Mailer: b4 0.14.2 X-Spam-Score: -1.0 X-Spam-Bar: - X-Spam-Report: Spam detection software, running on the system "lx20.hoststar.hosting", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Add trailing \n to dev_* prints where missing. Signed-off-by: Matthias Fend --- drivers/media/i2c/ov08d10.c | 34 +++++++++++++++++ 1 file changed, 17 insertions(+), 17 deletions(-) Content analysis details: (-1.0 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP 0.0 TVD_RCVD_IP Message was received from an IP address 0.0 KAM_DMARC_STATUS Test Rule for DKIM or SPF Failure with Strict Alignment (older systems) 0.0 Local_hs_NotFromHoststar Sender is NOT hoststar.(ch|at|com) 0.0 Local_hs_NotToHoststar Recipient is NOT hoststar.(ch|at|com) Add bindings for the Omnivision OV08D10 CMOS image sensor. Reviewed-by: Krzysztof Kozlowski Signed-off-by: Matthias Fend --- .../bindings/media/i2c/ovti,ov08d10.yaml | 101 +++++++++++++++++= ++++ MAINTAINERS | 2 + 2 files changed, 103 insertions(+) diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov08d10.yaml = b/Documentation/devicetree/bindings/media/i2c/ovti,ov08d10.yaml new file mode 100644 index 0000000000000000000000000000000000000000..6f2017c7512566d47fc04fbd4c6= 72cb9633ca990 --- /dev/null +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov08d10.yaml @@ -0,0 +1,101 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/media/i2c/ovti,ov08d10.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Omnivision OV08D10 1/4-Inch 8MP CMOS color image sensor + +maintainers: + - Matthias Fend + +description: + The Omnivision OV08D10 is a 1/4-Inch 8MP CMOS color image sensor with an + active array size of 3280 x 2464. It is programmable through I2C + interface. Image data is transmitted via MIPI CSI-2 using 2 lanes. + +allOf: + - $ref: /schemas/media/video-interface-devices.yaml# + +properties: + compatible: + const: ovti,ov08d10 + + reg: + maxItems: 1 + + clocks: + description: MCLK input clock (6 - 27 MHz) + maxItems: 1 + + reset-gpios: + description: Active low XSHUTDN pin + maxItems: 1 + + dovdd-supply: + description: IO power supply (1.8V) + + avdd-supply: + description: Analog power supply (2.8V) + + dvdd-supply: + description: Core power supply (1.2V) + + port: + $ref: /schemas/graph.yaml#/$defs/port-base + additionalProperties: false + + properties: + endpoint: + $ref: /schemas/media/video-interfaces.yaml# + unevaluatedProperties: false + + required: + - data-lanes + - link-frequencies + + required: + - endpoint + +required: + - compatible + - reg + - clocks + - port + +unevaluatedProperties: false + +examples: + - | + #include + #include + + i2c { + #address-cells =3D <1>; + #size-cells =3D <0>; + + sensor@36 { + compatible =3D "ovti,ov08d10"; + reg =3D <0x36>; + + clocks =3D <&ov08d10_clk>; + + dovdd-supply =3D <&ov08d10_vdddo_1v8>; + avdd-supply =3D <&ov08d10_vdda_2v8>; + dvdd-supply =3D <&ov08d10_vddd_1v2>; + + orientation =3D <2>; + rotation =3D <0>; + + reset-gpios =3D <&gpio 1 GPIO_ACTIVE_LOW>; + + port { + ov08d10_output: endpoint { + data-lanes =3D <1 2>; + link-frequencies =3D /bits/ 64 <360000000 720000000>; + remote-endpoint =3D <&csi_input>; + }; + }; + }; + }; +... diff --git a/MAINTAINERS b/MAINTAINERS index 750ac8c4a7b00cc6668d80fff60a2b54838bfa7c..f91dbc3f3ed0e5b303882c2f389= 3b70d154a5bef 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -19502,9 +19502,11 @@ F: drivers/media/i2c/ov02e10.c =20 OMNIVISION OV08D10 SENSOR DRIVER M: Jimmy Su +R: Matthias Fend L: linux-media@vger.kernel.org S: Maintained T: git git://linuxtv.org/media.git +F: Documentation/devicetree/bindings/media/i2c/ovti,ov08d10.yaml F: drivers/media/i2c/ov08d10.c =20 OMNIVISION OV08X40 SENSOR DRIVER --=20 2.34.1 From nobody Fri Apr 3 10:19:24 2026 Received: from lx20.hoststar.hosting (lx20.hoststar.hosting [168.119.41.54]) (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 5E9333E95B6; Tue, 24 Mar 2026 10:42:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=168.119.41.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774348931; cv=none; b=VIAXJQOibaPFcQMwo12UwFA/kx4QbYhQuIMC5HLkBKko55/elRyYWV40Yidc/L0Fd5vSbaa8txtCNyESa52MouLca/x+AL1k4nIPzB9UHTPuxtm9MRGwjkkqhFwl3s/qQKHmDIFJQQPt1wi66XNNzX4qsT5Gl4caS5vs77Ogdhc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774348931; c=relaxed/simple; bh=ohg4vOAqnmp6jKcSARC0EGRVirl7CfsZWO9r9TKQeGI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=eBfKJCvpjeDPx++mAtCs5idlj2Lk6JSQmQjEQSArFIR/8sqFZjS1VrxdCVER9YHUaAV8HgWfcTamc3qWlyIbPAqpFFX1xl3JsVlxGQJi3G8+xMdW/1zTVTN0zUv+lN5JvCWzHZyjqLMPVw4xGxIgMpTj6pSkCIg89nS9DgzicS0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=emfend.at; spf=pass smtp.mailfrom=emfend.at; dkim=pass (1024-bit key) header.d=emfend.at header.i=@emfend.at header.b=FFDj8bMP; arc=none smtp.client-ip=168.119.41.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=emfend.at Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=emfend.at Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=emfend.at header.i=@emfend.at header.b="FFDj8bMP" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=emfend.at; s=mail; h=Cc:To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:Subject:Date:From:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=uDqJ+5X22HEssjSzJwK+VACNwW1maLafgmcOYMRW++k=; b=FFDj8bMPgDtqN0rydorsT8qP1m G6w1D6KfDa2toskDxN/hF+LhSANpiDN3xIDzdlWiMMlkzp14naya1TKAyCQ3kImRI/irqq25u8cgw 6vbDHa412isLf/T6GOQzbmWrXrQ9DH7ug5A/ghbDgg+uE61iKP4TQG+Z7R8pRGxX8Fw8=; Received: from 194-208-208-245.tele.net ([194.208.208.245]:55336 helo=[127.0.1.1]) by lx20.hoststar.hosting with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1w4zD4-00DIvK-Hh; Tue, 24 Mar 2026 11:42:06 +0100 From: Matthias Fend Date: Tue, 24 Mar 2026 11:41:41 +0100 Subject: [PATCH v3 7/9] media: i2c: ov08d10: add support for binding via device tree 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: <20260324-ov08d10-v3-7-1e44069cf91e@emfend.at> References: <20260324-ov08d10-v3-0-1e44069cf91e@emfend.at> In-Reply-To: <20260324-ov08d10-v3-0-1e44069cf91e@emfend.at> To: Jimmy Su , Sakari Ailus , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Matthias Fend , bsp-development.geo@leica-geosystems.com X-Mailer: b4 0.14.2 X-Spam-Score: -0.7 X-Spam-Bar: / X-Spam-Report: Spam detection software, running on the system "lx20.hoststar.hosting", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Add bindings for the Omnivision OV08D10 CMOS image sensor. Reviewed-by: Krzysztof Kozlowski Signed-off-by: Matthias Fend --- .../bindings/media/i2c/ovti,ov08d10.yaml | 101 +++++++++++++++++++++ [...] Content analysis details: (-0.7 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP 0.0 TVD_RCVD_IP Message was received from an IP address 0.0 URIBL_DBL_BLOCKED_OPENDNS ADMINISTRATOR NOTICE: The query to dbl.spamhaus.org was blocked due to usage of an open resolver. See https://www.spamhaus.org/returnc/pub/ [URIs: devicetree.org] 0.1 POISEN_SPAM_PILL_3 BODY: random spam to be learned in bayes 0.0 URIBL_ZEN_BLOCKED_OPENDNS ADMINISTRATOR NOTICE: The query to zen.spamhaus.org was blocked due to usage of an open resolver. See https://www.spamhaus.org/returnc/pub/ [URIs: devicetree.org] 0.1 POISEN_SPAM_PILL_1 RAW: random spam to be learned in bayes 0.0 KAM_DMARC_STATUS Test Rule for DKIM or SPF Failure with Strict Alignment (older systems) 0.1 POISEN_SPAM_PILL Meta: its spam 0.0 Local_hs_NotFromHoststar Sender is NOT hoststar.(ch|at|com) 0.0 Local_hs_NotToHoststar Recipient is NOT hoststar.(ch|at|com) The OV08D10 can be used also on embedded designs using device tree so allow the sensor to bind to a device tree node. Signed-off-by: Matthias Fend --- drivers/media/i2c/ov08d10.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/media/i2c/ov08d10.c b/drivers/media/i2c/ov08d10.c index f2276f49506028c582e49a5b7cab3b07f6ca4e0d..ce0fa30a86129302b5dda0b8796= e44054fd77c88 100644 --- a/drivers/media/i2c/ov08d10.c +++ b/drivers/media/i2c/ov08d10.c @@ -1464,10 +1464,17 @@ static const struct acpi_device_id ov08d10_acpi_ids= [] =3D { MODULE_DEVICE_TABLE(acpi, ov08d10_acpi_ids); #endif =20 +static const struct of_device_id ov08d10_of_match[] =3D { + { .compatible =3D "ovti,ov08d10" }, + { /* sentinel */ } +}; +MODULE_DEVICE_TABLE(of, ov08d10_of_match); + static struct i2c_driver ov08d10_i2c_driver =3D { .driver =3D { .name =3D "ov08d10", .acpi_match_table =3D ACPI_PTR(ov08d10_acpi_ids), + .of_match_table =3D ov08d10_of_match, }, .probe =3D ov08d10_probe, .remove =3D ov08d10_remove, --=20 2.34.1 From nobody Fri Apr 3 10:19:24 2026 Received: from lx20.hoststar.hosting (lx20.hoststar.hosting [168.119.41.54]) (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 4256C3EC2E6; Tue, 24 Mar 2026 10:42:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=168.119.41.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774348932; cv=none; b=kUnugpH3NiL1NrjOGip7SyaL21Qshe+tOAUBVqV37XXb1WYzMbb4EPK+S3R+dHQyxpHUKe/qYdt6OAMLiAtIRogUx0/XbL/dlsjy2aSRABm72exiOMaCYGYvhbxmWMyUFZ1c/jqL2pCi38FL5MDIeyfdCWW9gxQ3cEze2PVw6sI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774348932; c=relaxed/simple; bh=fN6VySsURCQWMVtjg8/dz48NZHv3BhQj06urpFQP4Rc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=I3hUzzWcgkVP7h4nfSj1jBBi4yGVmp4wp1+eStfI4kctWkCuSdhDSiPsVI7ovY7eGh6hSgveoO8yLgeEOuN5oN0UwRKuFUZf6cR3UvSFE4XKLZHIAt9DRitsdCv/eTQxnHRfZXYv+xyYq6vXN8Qp1qmrQ0y5e92HKX6jEz6zqV8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=emfend.at; spf=pass smtp.mailfrom=emfend.at; dkim=pass (1024-bit key) header.d=emfend.at header.i=@emfend.at header.b=Uate+BHN; arc=none smtp.client-ip=168.119.41.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=emfend.at Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=emfend.at Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=emfend.at header.i=@emfend.at header.b="Uate+BHN" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=emfend.at; s=mail; h=Cc:To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:Subject:Date:From:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=WlrlJbkbc6GmZ5841B7RnZB+zG8zrXt9wpDIkZ/6yWU=; b=Uate+BHNWlB+NSU4FX1b2OZQzF q7QQQ3x/rT/nmB84o7IHB6rndQiZ24DyEsPqxYn79zMgZBrphBxl6s8+eqrpnDb+hU6fgwPZXbOH5 7nyByX84MREpwFwCTf3kkuBpTDdsQ2TIBtorb6RIeyKpFECPcvHK7GrKOFcr3upSXO14=; Received: from 194-208-208-245.tele.net ([194.208.208.245]:55336 helo=[127.0.1.1]) by lx20.hoststar.hosting with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1w4zD5-00DIvK-5i; Tue, 24 Mar 2026 11:42:07 +0100 From: Matthias Fend Date: Tue, 24 Mar 2026 11:41:42 +0100 Subject: [PATCH v3 8/9] media: i2c: ov08d10: add support for reset and power management 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: <20260324-ov08d10-v3-8-1e44069cf91e@emfend.at> References: <20260324-ov08d10-v3-0-1e44069cf91e@emfend.at> In-Reply-To: <20260324-ov08d10-v3-0-1e44069cf91e@emfend.at> To: Jimmy Su , Sakari Ailus , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Matthias Fend , bsp-development.geo@leica-geosystems.com X-Mailer: b4 0.14.2 X-Spam-Score: -1.0 X-Spam-Bar: - X-Spam-Report: Spam detection software, running on the system "lx20.hoststar.hosting", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: The OV08D10 can be used also on embedded designs using device tree so allow the sensor to bind to a device tree node. Signed-off-by: Matthias Fend --- drivers/media/i2c/ov08d10.c | 7 +++++++ 1 file changed, 7 insertions(+) Content analysis details: (-1.0 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP 0.0 TVD_RCVD_IP Message was received from an IP address 0.0 KAM_DMARC_STATUS Test Rule for DKIM or SPF Failure with Strict Alignment (older systems) 0.0 Local_hs_NotFromHoststar Sender is NOT hoststar.(ch|at|com) 0.0 Local_hs_NotToHoststar Recipient is NOT hoststar.(ch|at|com) Add support for the required power supplies as well as the control of an optional sensor reset. Signed-off-by: Matthias Fend --- drivers/media/i2c/ov08d10.c | 93 +++++++++++++++++++++++++++++++++++++++++= +++- 1 file changed, 92 insertions(+), 1 deletion(-) diff --git a/drivers/media/i2c/ov08d10.c b/drivers/media/i2c/ov08d10.c index ce0fa30a86129302b5dda0b8796e44054fd77c88..19035991e8bb164d4fca5d87ee4= 551191974e8bb 100644 --- a/drivers/media/i2c/ov08d10.c +++ b/drivers/media/i2c/ov08d10.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include @@ -513,9 +514,17 @@ static const char * const ov08d10_test_pattern_menu[] = =3D { "Standard Color Bar", }; =20 +static const char *const ov08d10_supply_names[] =3D { + "dovdd", /* Digital I/O power */ + "avdd", /* Analog power */ + "dvdd", /* Digital core power */ +}; + struct ov08d10 { struct device *dev; struct clk *clk; + struct reset_control *reset; + struct regulator_bulk_data supplies[ARRAY_SIZE(ov08d10_supply_names)]; =20 struct v4l2_subdev sd; struct media_pad pad; @@ -1265,6 +1274,56 @@ static const struct v4l2_subdev_internal_ops ov08d10= _internal_ops =3D { .open =3D ov08d10_open, }; =20 +static int ov08d10_power_off(struct device *dev) +{ + struct v4l2_subdev *sd =3D dev_get_drvdata(dev); + struct ov08d10 *ov08d10 =3D to_ov08d10(sd); + + reset_control_assert(ov08d10->reset); + + regulator_bulk_disable(ARRAY_SIZE(ov08d10->supplies), + ov08d10->supplies); + + clk_disable_unprepare(ov08d10->clk); + + return 0; +} + +static int ov08d10_power_on(struct device *dev) +{ + struct v4l2_subdev *sd =3D dev_get_drvdata(dev); + struct ov08d10 *ov08d10 =3D to_ov08d10(sd); + int ret; + + ret =3D regulator_bulk_enable(ARRAY_SIZE(ov08d10->supplies), + ov08d10->supplies); + if (ret < 0) { + dev_err(dev, "failed to enable regulators: %d\n", ret); + return ret; + } + + ret =3D clk_prepare_enable(ov08d10->clk); + if (ret < 0) { + regulator_bulk_disable(ARRAY_SIZE(ov08d10->supplies), + ov08d10->supplies); + + dev_err(dev, "failed to enable imaging clock: %d\n", ret); + return ret; + } + + if (ov08d10->reset) { + /* Delay from DVDD stable to sensor XSHUTDN pull up: 5ms */ + fsleep(5 * USEC_PER_MSEC); + + reset_control_deassert(ov08d10->reset); + + /* Delay from XSHUTDN pull up to SCCB start: 8ms */ + fsleep(8 * USEC_PER_MSEC); + } + + return 0; +} + static int ov08d10_identify_module(struct ov08d10 *ov08d10) { struct i2c_client *client =3D v4l2_get_subdevdata(&ov08d10->sd); @@ -1371,6 +1430,10 @@ static void ov08d10_remove(struct i2c_client *client) media_entity_cleanup(&sd->entity); v4l2_ctrl_handler_free(sd->ctrl_handler); pm_runtime_disable(ov08d10->dev); + if (!pm_runtime_status_suspended(ov08d10->dev)) { + ov08d10_power_off(ov08d10->dev); + pm_runtime_set_suspended(ov08d10->dev); + } mutex_destroy(&ov08d10->mutex); } =20 @@ -1378,6 +1441,7 @@ static int ov08d10_probe(struct i2c_client *client) { struct ov08d10 *ov08d10; unsigned long freq; + unsigned int i; int ret; =20 ov08d10 =3D devm_kzalloc(&client->dev, sizeof(*ov08d10), GFP_KERNEL); @@ -1403,12 +1467,32 @@ static int ov08d10_probe(struct i2c_client *client) return ret; } =20 + ov08d10->reset =3D devm_reset_control_get_optional_exclusive(ov08d10->dev= , NULL); + if (IS_ERR(ov08d10->reset)) + return dev_err_probe(ov08d10->dev, PTR_ERR(ov08d10->reset), + "failed to get reset\n"); + reset_control_assert(ov08d10->reset); + + for (i =3D 0; i < ARRAY_SIZE(ov08d10_supply_names); i++) + ov08d10->supplies[i].supply =3D ov08d10_supply_names[i]; + + ret =3D devm_regulator_bulk_get(ov08d10->dev, + ARRAY_SIZE(ov08d10->supplies), + ov08d10->supplies); + if (ret) + return dev_err_probe(ov08d10->dev, ret, + "failed to get regulators\n"); + v4l2_i2c_subdev_init(&ov08d10->sd, client, &ov08d10_subdev_ops); =20 + ret =3D ov08d10_power_on(ov08d10->dev); + if (ret) + return dev_err_probe(ov08d10->dev, ret, "failed to power on\n"); + ret =3D ov08d10_identify_module(ov08d10); if (ret) { dev_err(ov08d10->dev, "failed to find sensor: %d\n", ret); - return ret; + goto probe_error_power_off; } =20 mutex_init(&ov08d10->mutex); @@ -1452,9 +1536,15 @@ static int ov08d10_probe(struct i2c_client *client) v4l2_ctrl_handler_free(ov08d10->sd.ctrl_handler); mutex_destroy(&ov08d10->mutex); =20 +probe_error_power_off: + ov08d10_power_off(ov08d10->dev); + return ret; } =20 +static DEFINE_RUNTIME_DEV_PM_OPS(ov08d10_pm_ops, + ov08d10_power_off, ov08d10_power_on, NULL); + #ifdef CONFIG_ACPI static const struct acpi_device_id ov08d10_acpi_ids[] =3D { { "OVTI08D1" }, @@ -1473,6 +1563,7 @@ MODULE_DEVICE_TABLE(of, ov08d10_of_match); static struct i2c_driver ov08d10_i2c_driver =3D { .driver =3D { .name =3D "ov08d10", + .pm =3D pm_ptr(&ov08d10_pm_ops), .acpi_match_table =3D ACPI_PTR(ov08d10_acpi_ids), .of_match_table =3D ov08d10_of_match, }, --=20 2.34.1 From nobody Fri Apr 3 10:19:24 2026 Received: from lx20.hoststar.hosting (lx20.hoststar.hosting [168.119.41.54]) (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 AB6203ED105; Tue, 24 Mar 2026 10:42:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=168.119.41.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774348933; cv=none; b=BQf09XCaszqBC9sc8fCkYA+UrRyKKcBt/rpMcbXUq2wLouUcDUFMz2OPV4/duNR2DpQdVDvjdYq5HBmkQUuj7FxEwGE/lf5KPWslDXGyRYvQVr0VHZs57U3hQrXBxey0i8t4gV9hWt3fuk+QoAMUB5BiTXZOEybBcTFxemKiKK0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774348933; c=relaxed/simple; bh=kDhXWNpU+Z3cNQziKC4jCvZunHLIPJUxSnZ3f1xr1EQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=FddteJyh/EH01LXT9U9Rwk5DLXZGcARqH8xnrY0vkNQXTlLC9AeCuDYJ06mhpmUJ25PVPuTBjeAjok6QuMjaKb+re8t81AJFcklFSwvPngQW82rkOBi4XykOzxiHw+jcHzNbBkujaYx1WnAUg3Bib83FAkHMmA9Eyt5OO2yJTl4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=emfend.at; spf=pass smtp.mailfrom=emfend.at; dkim=pass (1024-bit key) header.d=emfend.at header.i=@emfend.at header.b=OQ+C2YrH; arc=none smtp.client-ip=168.119.41.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=emfend.at Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=emfend.at Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=emfend.at header.i=@emfend.at header.b="OQ+C2YrH" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=emfend.at; s=mail; h=Cc:To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:Subject:Date:From:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=SmfjdOOxN9oFPnKzL3556jZBgVQoOTG2EB4JaGgvhrA=; b=OQ+C2YrH9fGtOKtwpTfZ7m3t8c LrkfxmRIQVRqSTIwHh4HI8YylKynxvVXuprR4rR4G9y9cY/Y0rUDtR/vRSNDnZ4pTYsTfBGNJ6cBY 5KE2jpOSbComJ6J47q65K38qkIooRgafRvi+j59PtLeFvlNfMsx97pjbQW3MyiztdHr0=; Received: from 194-208-208-245.tele.net ([194.208.208.245]:55336 helo=[127.0.1.1]) by lx20.hoststar.hosting with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1w4zD6-00DIvK-6n; Tue, 24 Mar 2026 11:42:08 +0100 From: Matthias Fend Date: Tue, 24 Mar 2026 11:41:43 +0100 Subject: [PATCH v3 9/9] media: i2c: ov08d10: add support for 24 MHz input clock 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: <20260324-ov08d10-v3-9-1e44069cf91e@emfend.at> References: <20260324-ov08d10-v3-0-1e44069cf91e@emfend.at> In-Reply-To: <20260324-ov08d10-v3-0-1e44069cf91e@emfend.at> To: Jimmy Su , Sakari Ailus , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Matthias Fend , bsp-development.geo@leica-geosystems.com X-Mailer: b4 0.14.2 X-Spam-Score: -1.0 X-Spam-Bar: - X-Spam-Report: Spam detection software, running on the system "lx20.hoststar.hosting", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Add support for the required power supplies as well as the control of an optional sensor reset. Signed-off-by: Matthias Fend --- drivers/media/i2c/ov08d10.c | 93 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 92 insertions(+), 1 deletion(-) Content analysis details: (-1.0 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP 0.0 TVD_RCVD_IP Message was received from an IP address 0.0 KAM_DMARC_STATUS Test Rule for DKIM or SPF Failure with Strict Alignment (older systems) 0.0 Local_hs_NotFromHoststar Sender is NOT hoststar.(ch|at|com) 0.0 Local_hs_NotToHoststar Recipient is NOT hoststar.(ch|at|com) The sensor supports an input clock in the range of 6 to 27 MHz. Currently, the driver only supports a 19.2 MHz clock. Extend the driver so that at least 24 MHz, which is a typical frequency for this sensor, can also be used. Signed-off-by: Matthias Fend --- drivers/media/i2c/ov08d10.c | 80 ++++++++++++++++++++++++++++++++++++-----= ---- 1 file changed, 64 insertions(+), 16 deletions(-) diff --git a/drivers/media/i2c/ov08d10.c b/drivers/media/i2c/ov08d10.c index 19035991e8bb164d4fca5d87ee4551191974e8bb..9adef5446a61f3204fb809ca3f0= 77c1afb5f7a47 100644 --- a/drivers/media/i2c/ov08d10.c +++ b/drivers/media/i2c/ov08d10.c @@ -14,7 +14,6 @@ #include =20 #define OV08D10_SCLK 144000000ULL -#define OV08D10_XVCLK_19_2 19200000 #define OV08D10_ROWCLK 36000 #define OV08D10_DATA_LANES 2 #define OV08D10_RGB_DEPTH 10 @@ -78,8 +77,13 @@ struct ov08d10_reg_list { const struct ov08d10_reg *regs; }; =20 +static const u32 ov08d10_xvclk_freqs[] =3D { + 19200000, + 24000000 +}; + struct ov08d10_link_freq_config { - const struct ov08d10_reg_list reg_list; + const struct ov08d10_reg_list reg_list[ARRAY_SIZE(ov08d10_xvclk_freqs)]; }; =20 struct ov08d10_mode { @@ -108,8 +112,8 @@ struct ov08d10_mode { u8 data_lanes; }; =20 -/* 3280x2460, 3264x2448 need 720Mbps/lane, 2 lanes */ -static const struct ov08d10_reg mipi_data_rate_720mbps[] =3D { +/* 3280x2460, 3264x2448 need 720Mbps/lane, 2 lanes - 19.2 MHz */ +static const struct ov08d10_reg mipi_data_rate_720mbps_19_2[] =3D { {0xfd, 0x00}, {0x11, 0x2a}, {0x14, 0x43}, @@ -119,8 +123,8 @@ static const struct ov08d10_reg mipi_data_rate_720mbps[= ] =3D { {0xb7, 0x02} }; =20 -/* 1632x1224 needs 360Mbps/lane, 2 lanes */ -static const struct ov08d10_reg mipi_data_rate_360mbps[] =3D { +/* 1632x1224 needs 360Mbps/lane, 2 lanes - 19.2 MHz */ +static const struct ov08d10_reg mipi_data_rate_360mbps_19_2[] =3D { {0xfd, 0x00}, {0x1a, 0x04}, {0x1b, 0xe1}, @@ -132,6 +136,30 @@ static const struct ov08d10_reg mipi_data_rate_360mbps= [] =3D { {0xb7, 0x02} }; =20 +/* 3280x2460, 3264x2448 need 720Mbps/lane, 2 lanes - 24 MHz */ +static const struct ov08d10_reg mipi_data_rate_720mbps_24_0[] =3D { + {0xfd, 0x00}, + {0x11, 0x2a}, + {0x14, 0x43}, + {0x1a, 0x04}, + {0x1b, 0xb4}, + {0x1e, 0x13}, + {0xb7, 0x02} +}; + +/* 1632x1224 needs 360Mbps/lane, 2 lanes - 24 MHz */ +static const struct ov08d10_reg mipi_data_rate_360mbps_24_0[] =3D { + {0xfd, 0x00}, + {0x1a, 0x04}, + {0x1b, 0xb4}, + {0x1d, 0x00}, + {0x1c, 0x19}, + {0x11, 0x2a}, + {0x14, 0x54}, + {0x1e, 0x13}, + {0xb7, 0x02} +}; + static const struct ov08d10_reg lane_2_mode_3280x2460[] =3D { /* 3280x2460 resolution */ {0xfd, 0x01}, @@ -525,6 +553,7 @@ struct ov08d10 { struct clk *clk; struct reset_control *reset; struct regulator_bulk_data supplies[ARRAY_SIZE(ov08d10_supply_names)]; + u8 xvclk_index; =20 struct v4l2_subdev sd; struct media_pad pad; @@ -565,17 +594,29 @@ static const struct ov08d10_lane_cfg lane_cfg_2 =3D { }, {{ .reg_list =3D { + { .num_of_regs =3D - ARRAY_SIZE(mipi_data_rate_720mbps), - .regs =3D mipi_data_rate_720mbps, - } + ARRAY_SIZE(mipi_data_rate_720mbps_19_2), + .regs =3D mipi_data_rate_720mbps_19_2, + }, + { + .num_of_regs =3D + ARRAY_SIZE(mipi_data_rate_720mbps_24_0), + .regs =3D mipi_data_rate_720mbps_24_0, + }} }, { .reg_list =3D { + { .num_of_regs =3D - ARRAY_SIZE(mipi_data_rate_360mbps), - .regs =3D mipi_data_rate_360mbps, - } + ARRAY_SIZE(mipi_data_rate_360mbps_19_2), + .regs =3D mipi_data_rate_360mbps_19_2, + }, + { + .num_of_regs =3D + ARRAY_SIZE(mipi_data_rate_360mbps_24_0), + .regs =3D mipi_data_rate_360mbps_24_0, + }} }}, {{ .width =3D 3280, @@ -1028,7 +1069,8 @@ static int ov08d10_start_streaming(struct ov08d10 *ov= 08d10) =20 link_freq_index =3D ov08d10->cur_mode->link_freq_index; reg_list =3D - &ov08d10->priv_lane->link_freq_configs[link_freq_index].reg_list; + &ov08d10->priv_lane->link_freq_configs[link_freq_index] + .reg_list[ov08d10->xvclk_index]; =20 /* soft reset */ ret =3D i2c_smbus_write_byte_data(client, OV08D10_REG_PAGE, 0x00); @@ -1456,9 +1498,15 @@ static int ov08d10_probe(struct i2c_client *client) "failed to get clock\n"); =20 freq =3D clk_get_rate(ov08d10->clk); - if (freq !=3D OV08D10_XVCLK_19_2) - dev_warn(ov08d10->dev, - "external clock rate %lu is not supported\n", freq); + for (i =3D 0; i < ARRAY_SIZE(ov08d10_xvclk_freqs); i++) { + if (freq =3D=3D ov08d10_xvclk_freqs[i]) + break; + } + if (i >=3D ARRAY_SIZE(ov08d10_xvclk_freqs)) + return dev_err_probe(ov08d10->dev, -EINVAL, + "external clock rate %lu is not supported\n", + freq); + ov08d10->xvclk_index =3D i; =20 ret =3D ov08d10_get_hwcfg(ov08d10); if (ret) { --=20 2.34.1