Re: [PATCH v3 0/3] media: i2c: Add OmniVision OG0VA1B camera sensor driver - IPU and ACPI

From: Alain Cousinie

Date: Tue Jul 28 2026 - 10:33:48 EST


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@xxxxxxxxxxxxxxxx>
---
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@xxxxxxxxxxxxxxxx

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@xxxxxxxxxxxxxxxx

---
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