Re: [PATCH] media: ipu-bridge: Add upside-down sensor quirk for Dell 16 Premium DA16250

From: Lukas Larson

Date: Wed Apr 08 2026 - 02:03:08 EST


Hi Sakari,

On pld 6.19 the camera powered on, but the image was flipped upside down.
Tested adding https://github.com/intel/ipu6-camera-bins and
https://github.com/intel/ipu6-drivers, still upside down.

Some logs from pld:
cam -l
[0:03:57.172445296] [3436] INFO Camera camera_manager.cpp:340 libcamera v0.7.0
[0:03:57.182450990] [3437] ERROR V4L2 v4l2_subdevice.cpp:1192 'ov02c10
21-0036': Unable to get rectangle 2 on pad 0/0: Inappro
priate ioctl for device
[0:03:57.182463100] [3437] WARN CameraSensor
camera_sensor_legacy.cpp:402 'ov02c10 21-0036': The PixelArraySize
property has
been defaulted to 1928x1092
[0:03:57.182465943] [3437] ERROR V4L2 v4l2_subdevice.cpp:1192 'ov02c10
21-0036': Unable to get rectangle 1 on pad 0/0: Inappro
priate ioctl for device
[0:03:57.182467749] [3437] WARN CameraSensor
camera_sensor_legacy.cpp:413 'ov02c10 21-0036': The
PixelArrayActiveAreas proper
ty has been defaulted to (0, 0)/1928x1092
[0:03:57.182470246] [3437] ERROR V4L2 v4l2_subdevice.cpp:1192 'ov02c10
21-0036': Unable to get rectangle 0 on pad 0/0: Inappro
priate ioctl for device
[0:03:57.182471832] [3437] WARN CameraSensor
camera_sensor_legacy.cpp:421 'ov02c10 21-0036': Failed to retrieve the
sensor cr
op rectangle
[0:03:57.182473078] [3437] WARN CameraSensor
camera_sensor_legacy.cpp:427 'ov02c10 21-0036': The sensor kernel
driver needs t
o be fixed
[0:03:57.182474331] [3437] WARN CameraSensor
camera_sensor_legacy.cpp:429 'ov02c10 21-0036': See
Documentation/sensor_driver_
requirements.rst in the libcamera sources for more information
[0:03:57.182546924] [3437] WARN CameraSensorProperties
camera_sensor_properties.cpp:538 No static properties available for 'o
v02c10'
[0:03:57.182551521] [3437] WARN CameraSensorProperties
camera_sensor_properties.cpp:540 Please consider updating the camera s
ensor properties database
[0:03:57.182554540] [3437] WARN CameraSensor
camera_sensor_legacy.cpp:502 'ov02c10 21-0036': No sensor delays found
in static
properties. Assuming unverified defaults.
[0:03:57.191258326] [3437] WARN IPAProxy ipa_proxy.cpp:192
Configuration file 'ov02c10.yaml' not found for IPA module 'simple
', falling back to '/usr/share/libcamera/ipa/simple/uncalibrated.yaml'
[0:03:57.191277124] [3437] ERROR V4L2 v4l2_subdevice.cpp:1192 'ov02c10
21-0036': Unable to get rectangle 0 on pad 0/0: Inappro
priate ioctl for device
[0:03:57.191281543] [3437] WARN CameraSensor
camera_sensor_legacy.cpp:881 'ov02c10 21-0036': The analogue crop
rectangle has
been defaulted to the active area size
[0:03:57.191291694] [3437] WARN IPASoft soft_simple.cpp:104 IPASoft:
Failed to create camera sensor helper for ov02c10
[0:03:57.191397279] [3437] INFO Camera camera_manager.cpp:223 Adding
camera '\_SB_.PC00.LNK1' for pipeline handler simple
Available cameras:
1: External camera 'ov02c10' (\_SB_.PC00.LNK1)

qcam
[0:04:08.229742046] [3443] INFO Camera camera_manager.cpp:340 libcamera v0.7.0
[0:04:08.239552370] [3454] ERROR V4L2 v4l2_subdevice.cpp:1192 'ov02c10
21-0036': Unable to get rectangle 2 on pad 0/0: Inappro
priate ioctl for device
[0:04:08.239566225] [3454] WARN CameraSensor
camera_sensor_legacy.cpp:402 'ov02c10 21-0036': The PixelArraySize
property has
been defaulted to 1928x1092
[0:04:08.239569234] [3454] ERROR V4L2 v4l2_subdevice.cpp:1192 'ov02c10
21-0036': Unable to get rectangle 1 on pad 0/0: Inappro
priate ioctl for device
[0:04:08.239571547] [3454] WARN CameraSensor
camera_sensor_legacy.cpp:413 'ov02c10 21-0036': The
PixelArrayActiveAreas proper
ty has been defaulted to (0, 0)/1928x1092
[0:04:08.239574007] [3454] ERROR V4L2 v4l2_subdevice.cpp:1192 'ov02c10
21-0036': Unable to get rectangle 0 on pad 0/0: Inappro
priate ioctl for device
[0:04:08.239575842] [3454] WARN CameraSensor
camera_sensor_legacy.cpp:421 'ov02c10 21-0036': Failed to retrieve the
sensor cr
op rectangle
[0:04:08.239577195] [3454] WARN CameraSensor
camera_sensor_legacy.cpp:427 'ov02c10 21-0036': The sensor kernel
driver needs t
o be fixed
[0:04:08.239578598] [3454] WARN CameraSensor
camera_sensor_legacy.cpp:429 'ov02c10 21-0036': See
Documentation/sensor_driver_
requirements.rst in the libcamera sources for more information
[0:04:08.239652341] [3454] WARN CameraSensorProperties
camera_sensor_properties.cpp:538 No static properties available for 'o
v02c10'
[0:04:08.239655770] [3454] WARN CameraSensorProperties
camera_sensor_properties.cpp:540 Please consider updating the camera s
ensor properties database
[0:04:08.239659621] [3454] WARN CameraSensor
camera_sensor_legacy.cpp:502 'ov02c10 21-0036': No sensor delays found
in static
properties. Assuming unverified defaults.
[0:04:08.248493543] [3454] WARN IPAProxy ipa_proxy.cpp:192
Configuration file 'ov02c10.yaml' not found for IPA module 'simple
', falling back to '/usr/share/libcamera/ipa/simple/uncalibrated.yaml'
[0:04:08.248514916] [3454] ERROR V4L2 v4l2_subdevice.cpp:1192 'ov02c10
21-0036': Unable to get rectangle 0 on pad 0/0: Inappro
priate ioctl for device
[0:04:08.248520342] [3454] WARN CameraSensor
camera_sensor_legacy.cpp:881 'ov02c10 21-0036': The analogue crop
rectangle has
been defaulted to the active area size
[0:04:08.248535573] [3454] WARN IPASoft soft_simple.cpp:104 IPASoft:
Failed to create camera sensor helper for ov02c10
[0:04:08.248669436] [3454] INFO Camera camera_manager.cpp:223 Adding
camera '\_SB_.PC00.LNK1' for pipeline handler simple
[0:04:08.266367143] [3443] INFO Camera camera.cpp:1215 configuring
streams: (0) 1920x1092-ABGR8888/sRGB
[0:04:08.266483080] [3454] INFO IPASoft soft_simple.cpp:258 IPASoft:
Exposure 4-2320, gain 16-248 (1)
Zero-copy enabled
MESA: error: ZINK: vkCreateInstance failed (VK_ERROR_INCOMPATIBLE_DRIVER)
libEGL warning: egl: failed to create dri2 screen
libEGL warning: DRI2: failed to create screen
[0:04:10.776690674] [3456] INFO eGL egl.cpp:305 EGL: EGL_VERSION: 1.5
[0:04:10.776721706] [3456] INFO eGL egl.cpp:306 EGL: EGL_VENDOR: Mesa Project
[0:04:10.776727746] [3456] INFO eGL egl.cpp:307 EGL: EGL_CLIENT_APIS:
OpenGL OpenGL_ES
[0:04:10.776732346] [3456] INFO eGL egl.cpp:308 EGL: EGL_EXTENSIONS:
EGL_ANDROID_blob_cache EGL_ANDROID_native_fence_sync EGL
_EXT_config_select_group EGL_EXT_create_context_robustness
EGL_EXT_image_dma_buf_import EGL_EXT_image_dma_buf_import_modifiers
EGL_EXT_protected_content EGL_EXT_query_reset_notification_strategy
EGL_EXT_surface_compression EGL_IMG_context_priority EGL_
KHR_cl_event2 EGL_KHR_config_attribs EGL_KHR_context_flush_control
EGL_KHR_create_context EGL_KHR_create_context_no_error EGL_
KHR_fence_sync EGL_KHR_get_all_proc_addresses EGL_KHR_gl_colorspace
EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image
EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image
EGL_KHR_image_base EGL_KHR_no_config_context EGL_KHR_partial_upda
te EGL_KHR_reusable_sync EGL_KHR_surfaceless_context
EGL_EXT_pixel_format_float EGL_KHR_wait_sync
EGL_MESA_configless_context
EGL_MESA_gl_interop EGL_MESA_image_dma_buf_export
EGL_MESA_query_driver EGL_MESA_x11_native_visual_id
[0:04:10.779627096] [3456] INFO eGL egl.cpp:349 EGL: GL_VERSION:
OpenGL ES 3.2 Mesa 26.0.4-arch1.1
[0:04:13.015244935] [3456] INFO Benchmark benchmark.cpp:83 Processed
30 frames in 151023us, 5034 us/frame

Applied
+ acpi_handle_warn(acpi_device_handle(adev),
+ "on sailus pld 6.19, ssdb degree %d \n",
+ ssdb->degree);
+

sudo dmesg | grep -e sailus -e ovti -e ov02c1 -e ipu -e PLD -e orientation
[ 6.010337] intel-ipu6 0000:00:05.0: enabling device (0000 -> 0002)
[ 6.014964] ACPI: \_SB_.PC00.LNK1: on sailus pld 6.19, ssdb degree 0
[ 6.016208] ACPI: \_SB_.PC00.LNK1: Using default orientation
[ 6.016366] intel-ipu6 0000:00:05.0: Found supported sensor OVTI02C1:00
[ 6.016432] intel-ipu6 0000:00:05.0: Connected 1 cameras
[ 6.017342] intel-ipu6 0000:00:05.0: Sending BOOT_LOAD to CSE
[ 6.018354] ov02c10 i2c-OVTI02C1:00: supply dovdd not found, using
dummy regulator
[ 6.018395] ov02c10 i2c-OVTI02C1:00: supply avdd not found, using
dummy regulator
[ 6.018400] ov02c10 i2c-OVTI02C1:00: supply dvdd not found, using
dummy regulator
[ 6.061002] intel-ipu6 0000:00:05.0: Sending AUTHENTICATE_RUN to CSE
[ 6.109029] intel-ipu6 0000:00:05.0: CSE authenticate_run done
[ 6.109036] intel-ipu6 0000:00:05.0: IPU6-v4[7d19] hardware version 6

Did not see the "_PLD exists; not use rotation".

After adding the DA16250 explicitly the camera was the correct orientation.

static const struct dmi_system_id upside_down_sensor_dmi_ids[] = {
+ {
+ .matches = {
+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Dell 16
Premium DA16250"),
+ },
+ .driver_data = "OVTI02C1",
+ },

--
Best Regards,
Lukas Larson