From: Alain Cousinie <alain.cousinie@laposte.net>
To: wenmeng.liu@oss.qualcomm.com
Cc: conor+dt@kernel.org, conor.dooley@microchip.com,
devicetree@vger.kernel.org, krzk+dt@kernel.org,
linux-kernel@vger.kernel.org, linux-media@vger.kernel.org,
mchehab@kernel.org, robh@kernel.org,
sakari.ailus@linux.intel.com, vladimir.zapolskiy@linaro.org
Subject: Re: [PATCH v3 0/3] media: i2c: Add OmniVision OG0VA1B camera sensor driver - IPU and ACPI
Date: Tue, 28 Jul 2026 10:27:32 +0200 [thread overview]
Message-ID: <cc697c8d-8389-4d26-ac3e-4dc51a247dba@laposte.net> (raw)
In-Reply-To: <f12c1344-67ff-4242-9c39-59ac208e9b35@oss.qualcomm.com>
Hello,
I am a novice when it comes to the Linux kernel.
The og0va1b sensor is also used in laptops (HP, Dell, etc.) with IPU6
and ACPI.
I tried this on my HP Spectre 14-eu0xxx laptop, and it seems to work
(though it isn't fully functional yet, as other elements are missing).
I would like to propose adding this configuration for this sensor.
So, I added the ACPI ID—OVTI00AB for og0va1b—to the IPU:
+++ b/drivers/media/pci/intel/ipu-bridge.c
@@ -73,6 +73,8 @@
IPU_SENSOR_CONFIG("INT3537", 1, 437000000),
/* Lontium lt6911uxe */
IPU_SENSOR_CONFIG("INTC10C5", 0),
+ /* Omnivision OG0VA1B */
+ IPU_SENSOR_CONFIG("OVTI00AB", 1, 480000000),
/* Omnivision OV01A10 / OV01A1S */
IPU_SENSOR_CONFIG("OVTI01A0", 1, 400000000),
IPU_SENSOR_CONFIG("OVTI01AS", 1, 400000000),
---
Then, I added the ACPI declaration to `ov0ve1b.c`, following the patches
for og0va1b:
diff --git a/drivers/media/i2c/og0ve1b.c b/drivers/media/i2c/og0ve1b.c
--- a/drivers/media/i2c/og0ve1b.c
+++ b/drivers/media/i2c/og0ve1b.c
@@ -978,8 +978,11 @@
og0ve1b->dev = &client->dev;
og0ve1b->data = i2c_get_match_data(client);
- if (!og0ve1b->data)
- return -ENODEV;
+ if (!og0ve1b->data) {
+ og0ve1b->data = device_get_match_data(&client->dev);
+ if (!og0ve1b->data)
+ return -ENODEV;
+ }
v4l2_i2c_subdev_init(&og0ve1b->sd, client, &og0ve1b_subdev_ops);
v4l2_i2c_subdev_set_name(&og0ve1b->sd, client,
@@ -1114,6 +1117,15 @@
SET_RUNTIME_PM_OPS(og0ve1b_power_off, og0ve1b_power_on, NULL)
};
+#ifdef CONFIG_ACPI
+static const struct acpi_device_id og0ve1b_acpi_ids[] = {
+ {"OVTI00AB", (uintptr_t)&og0va1b_data},
+ { /* sentinel */ }
+};
+
+MODULE_DEVICE_TABLE(acpi, og0ve1b_acpi_ids);
+#endif
+
static const struct of_device_id og0ve1b_of_match[] = {
{ .compatible = "ovti,og0va1b", .data = &og0va1b_data },
{ .compatible = "ovti,og0ve1b", .data = &og0ve1b_data },
@@ -1126,6 +1138,7 @@
.name = "og0ve1b",
.pm = &og0ve1b_pm_ops,
.of_match_table = og0ve1b_of_match,
+ .acpi_match_table = ACPI_PTR(og0ve1b_acpi_ids),
},
.probe = og0ve1b_probe,
.remove = og0ve1b_remove,
---
Here is an example of my tests: `$ cam -c2 -C1 -Ftest.bin`
Using camera \_SB_.PC00.LNK1 as cam0
[3:02:57.280464484] [55404] INFO Camera camera.cpp:1216
configuring streams: (0) 640x480-R10/sYCC
cam0: Capture 1 frames
10977.366149 (0.00 fps) cam0-stream0 seq: 000000 bytesused: 614400
This produces a raw image file that I can view using various tools, and
it appears to correspond to the sensor.
Best Regards,
Alain
> On 23/07/2026 à 04:41, Wenmeng Liu wrote :
>>
>>
>> On 7/8/2026 10:33 PM, Wenmeng Liu wrote:
>>> Add OmniVision OG0VA1B driver support. The OmniVision OG0VA1B is a
>>> 1/10-inch monochrome CMOS VGA image sensor. It outputs 10-bit raw (Y10)
>>> frames at up to 640x480 resolution over a single-lane MIPI CSI-2
>>> interface and is controlled via an I2C-compatible SCCB bus.
>>>
>>> This driver has been verified(include tpg) on the Purwa EVK.
>>>
>>> Signed-off-by: Wenmeng Liu <wenmeng.liu@oss.qualcomm.com>
>>> ---
>>> Changes in v3:
>>> - Generalise the binding title and description for both sensors. --
>>> Vladimir
>>> - Keep the cached pre_isp read so the OG0VE1B test pattern still works,
>>> select it via a per-sensor callback. -- Bryan, Vladimir
>>> - Rename the "sensor" field to "data", drop bpp (derive from code) and
>>> add og0ve1b_pixel_rate(). -- Vladimir
>>> - Sort defines, rename the shared CHIP_ID reg to OG0V_ and order
>>> og0va1b_data first. -- Vladimir
>>> - Expose all four OG0VA1B test patterns instead of one.
>>> - Link to v2:
>>> https://lore.kernel.org/r/20260702-og0va1b-v2-0-0071442caa2a@oss.qualcomm.com
>>>
>>> Changes in v2:
>>> - Integrate OG0VA1B into the existing og0ve1b driver and binding
>>> instead. -- Vladimir
>>> - Link to v1:
>>> https://lore.kernel.org/r/20260618-og0va1b-v1-0-dda71bb83009@oss.qualcomm.com
>>>
>>> ---
>>> Wenmeng Liu (3):
>>> dt-bindings: media: i2c: og0ve1b: Add OmniVision OG0VA1B
>>> camera sensor
>>> media: i2c: og0ve1b: Introduce per-sensor data structure
>>> media: i2c: og0ve1b: Add support for OmniVision OG0VA1B
>>>
>>> .../bindings/media/i2c/ovti,og0ve1b.yaml | 15 +-
>>> drivers/media/i2c/og0ve1b.c | 375
>>> ++++++++++++++++++---
>>> 2 files changed, 344 insertions(+), 46 deletions(-)
>>> ---
>>> base-commit: 5c73cd9f0819c1c44e373e3dabb68318b1de1a12
>>> change-id: 20260618-og0va1b-55bbf3cabb0e
>>>
>>> Best regards,
>>
>>
>> Gentle reminder to review this patchset.
>>
>> Thanks,
>> Wenmeng
>>
prev parent reply other threads:[~2026-07-28 12:28 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-08 14:33 [PATCH v3 0/3] media: i2c: Add OmniVision OG0VA1B camera sensor driver Wenmeng Liu
2026-07-08 14:33 ` [PATCH v3 1/3] dt-bindings: media: i2c: og0ve1b: Add OmniVision OG0VA1B camera sensor Wenmeng Liu
2026-07-08 14:33 ` [PATCH v3 2/3] media: i2c: og0ve1b: Introduce per-sensor data structure Wenmeng Liu
2026-07-08 14:45 ` sashiko-bot
2026-07-23 13:48 ` Vladimir Zapolskiy
2026-07-08 14:33 ` [PATCH v3 3/3] media: i2c: og0ve1b: Add support for OmniVision OG0VA1B Wenmeng Liu
2026-07-23 13:51 ` Vladimir Zapolskiy
2026-07-24 13:35 ` Vladimir Zapolskiy
2026-07-27 9:38 ` Wenmeng Liu
2026-07-27 19:05 ` Vladimir Zapolskiy
2026-07-23 2:41 ` [PATCH v3 0/3] media: i2c: Add OmniVision OG0VA1B camera sensor driver Wenmeng Liu
2026-07-28 8:27 ` Alain Cousinie [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cc697c8d-8389-4d26-ac3e-4dc51a247dba@laposte.net \
--to=alain.cousinie@laposte.net \
--cc=conor+dt@kernel.org \
--cc=conor.dooley@microchip.com \
--cc=devicetree@vger.kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=robh@kernel.org \
--cc=sakari.ailus@linux.intel.com \
--cc=vladimir.zapolskiy@linaro.org \
--cc=wenmeng.liu@oss.qualcomm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox