@@ -755,6 +755,23 @@ public:
};
REGISTER_CAMERA_SENSOR_HELPER("ov64a40", CameraSensorHelperOv64a40)
+class CameraSensorHelperOv08x40 : public CameraSensorHelper
+{
+public:
+ CameraSensorHelperOv08x40()
+ {
+ /*
+ * The Linux kernel ov08x40 driver advertises analogue-gain
+ * register values in the range 0x80..0x07c0 with a default
+ * of 0x80; matching the convention used by OmniVision's other
+ * 8/13MP class sensors (ov8858, ov8865, ov13858), the gain
+ * multiplier is encoded as register_value / 128.
+ */
+ gain_ = AnalogueGainLinear{ 1, 0, 0, 128 };
+ }
+};
+REGISTER_CAMERA_SENSOR_HELPER("ov08x40", CameraSensorHelperOv08x40)
+
class CameraSensorHelperOv8858 : public CameraSensorHelper
{
public:
Without an entry for ov08x40, the software ISP used by the simple pipeline handler can't run AGC for this sensor and logs: IPASoft: Failed to create camera sensor helper for ov08x40 The kernel driver (drivers/media/i2c/ov08x40.c) advertises analogue- gain register values in the range 0x80..0x07c0 with a default of 0x80, which is the same 1/128-step encoding already used by the other OmniVision sensors in this file (ov5675, ov8858, ov8865, ov13858). Add a helper that follows the same pattern. Tested on a Lenovo ThinkPad X1 Carbon Gen 13 (Intel Lunar Lake, IPU7), where this is the only front camera. Signed-off-by: Bogdan Radulescu <bogdan@nimblex.net> --- src/ipa/libipa/camera_sensor_helper.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)