Bug 2510889 - ov02c10 IPU6 camera on Dell DA14250 shows image upside down
Summary: ov02c10 IPU6 camera on Dell DA14250 shows image upside down
Keywords:
Status: NEW
Alias: None
Product: Fedora
Classification: Fedora
Component: kernel
Version: 44
Hardware: x86_64
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Justin M. Forbes
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2026-08-04 06:55 UTC by Andrey Motoshkov
Modified: 2026-09-09 02:35 UTC (History)
14 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Andrey Motoshkov 2026-08-04 06:55:47 UTC
1. Please describe the problem:
When applications use the built-in ov02c10 based camera, the captured image is upside-down

2. What is the Version-Release number of the kernel:
7.1.5-201.fc44.x86_64

3. Did it work previously in Fedora? If so, what kernel version did the issue
   *first* appear?  Old kernels are available for download at
   https://koji.fedoraproject.org/koji/packageinfo?packageID=8 :
kernel-6.18.9-200.fc43.x86_64

4. Can you reproduce this issue? If so, please provide the steps to reproduce
   the issue below:


5. Does this problem occur with the latest Rawhide kernel? To install the
   Rawhide kernel, run ``sudo dnf install fedora-repos-rawhide`` followed by
   ``sudo dnf update --enablerepo=rawhide kernel``:


6. Are you running any modules that not shipped with directly Fedora's kernel?:


7. Please attach the kernel logs. You can get the complete kernel log
   for a boot with ``journalctl --no-hostname -k > dmesg.txt``. If the
   issue occurred on a previous boot, use the journalctl ``-b`` flag.

Reproducible: Always

Comment 1 Andrey Motoshkov 2026-08-04 06:58:13 UTC
dmesg:
[    5.399397] intel-ipu6 0000:00:05.0: enabling device (0000 -> 0002)
[    5.447983] intel-ipu6 0000:00:05.0: Found supported sensor OVTI02C1:00
[    5.448165] intel-ipu6 0000:00:05.0: Connected 1 cameras
[    5.450349] intel-ipu6 0000:00:05.0: Sending BOOT_LOAD to CSE
[    5.487357] intel-ipu6 0000:00:05.0: Sending AUTHENTICATE_RUN to CSE
[    5.536771] intel-ipu6 0000:00:05.0: CSE authenticate_run done
[    5.536781] intel-ipu6 0000:00:05.0: IPU6-v4[7d19] hardware version 6

$ qcam
[20:36:42.202747115] [245936]  INFO Camera camera_manager.cpp:340 libcamera v0.7.1
[20:36:42.228116485] [245950] ERROR V4L2 v4l2_subdevice.cpp:1192 'ov02c10 18-0036': Unable to get rectangle 2 on pad 0/0: Inappropriate ioctl for device
[20:36:42.228158209] [245950]  WARN CameraSensor camera_sensor_legacy.cpp:402 'ov02c10 18-0036': The PixelArraySize property has been defaulted to 1928x1092
[20:36:42.228163136] [245950] ERROR V4L2 v4l2_subdevice.cpp:1192 'ov02c10 18-0036': Unable to get rectangle 1 on pad 0/0: Inappropriate ioctl for device
[20:36:42.228166925] [245950]  WARN CameraSensor camera_sensor_legacy.cpp:413 'ov02c10 18-0036': The PixelArrayActiveAreas property has been defaulted to (0, 0)/1928x1092
[20:36:42.228171755] [245950] ERROR V4L2 v4l2_subdevice.cpp:1192 'ov02c10 18-0036': Unable to get rectangle 0 on pad 0/0: Inappropriate ioctl for device
[20:36:42.228174379] [245950]  WARN CameraSensor camera_sensor_legacy.cpp:421 'ov02c10 18-0036': Failed to retrieve the sensor crop rectangle
[20:36:42.228176625] [245950]  WARN CameraSensor camera_sensor_legacy.cpp:427 'ov02c10 18-0036': The sensor kernel driver needs to be fixed
[20:36:42.228178337] [245950]  WARN CameraSensor camera_sensor_legacy.cpp:429 'ov02c10 18-0036': See Documentation/sensor_driver_requirements.rst in the libcamera sources for more information
[20:36:42.228306777] [245950]  WARN CameraSensorProperties camera_sensor_properties.cpp:538 No static properties available for 'ov02c10'
[20:36:42.228312552] [245950]  WARN CameraSensorProperties camera_sensor_properties.cpp:540 Please consider updating the camera sensor properties database
[20:36:42.228318285] [245950]  WARN CameraSensor camera_sensor_legacy.cpp:502 'ov02c10 18-0036': No sensor delays found in static properties. Assuming unverified defaults.
[20:36:42.232973561] [245950]  WARN IPAProxy ipa_proxy.cpp:196 Configuration file 'ov02c10.yaml' not found for IPA module 'simple', falling back to '/usr/share/libcamera/ipa/simple/uncalibrated.yaml'
[20:36:42.233032898] [245950] ERROR V4L2 v4l2_subdevice.cpp:1192 'ov02c10 18-0036': Unable to get rectangle 0 on pad 0/0: Inappropriate ioctl for device
[20:36:42.233040716] [245950]  WARN CameraSensor camera_sensor_legacy.cpp:881 'ov02c10 18-0036': The analogue crop rectangle has been defaulted to the active area size
[20:36:42.250130774] [245951]  INFO IPAProxySoftWorker soft_ipa_proxy_worker.cpp:443 Starting worker for IPA module /usr/lib64/libcamera/ipa/ipa_soft_simple.so with IPC fd = 35
[20:36:42.251052678] [245951]  WARN IPASoft soft_simple.cpp:104 IPASoft: Failed to create camera sensor helper for ov02c10
[20:36:42.251575687] [245950]  INFO Camera camera_manager.cpp:223 Adding camera '\_SB_.PC00.LNK1' for pipeline handler simple
[20:36:42.295374964] [245936]  INFO Camera camera.cpp:1216 configuring streams: (0) 1920x1092-ABGR8888/sRGB
[20:36:42.296183522] [245951]  INFO IPASoft soft_simple.cpp:258 IPASoft: Exposure 4-2320, gain 16-248 (1)
[20:36:42.296497451] [245950]  INFO SoftwareIsp software_isp.cpp:278 Input 1928x1092-GRBG-10 stride 3904
Zero-copy enabled
libEGL warning: pci id for fd 48: 10de:28a1, driver (null)

pci id for fd 49: 10de:28a1, driver (null)
pci id for fd 50: 10de:28a1, driver (null)
libEGL warning: egl: failed to create dri2 screen
libEGL warning: DRI2: failed to create screen
[20:36:42.373027305] [245954]  INFO eGL egl.cpp:288 EGL: EGL_VERSION: 1.5
[20:36:42.373060222] [245954]  INFO eGL egl.cpp:289 EGL: EGL_VENDOR: Mesa Project
[20:36:42.373062959] [245954]  INFO eGL egl.cpp:290 EGL: EGL_CLIENT_APIS: OpenGL OpenGL_ES 
[20:36:42.373064672] [245954]  INFO eGL egl.cpp:291 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_update 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 
[20:36:42.375410988] [245954]  INFO eGL egl.cpp:332 EGL: GL_VERSION: OpenGL ES 3.2 Mesa 26.1.5

$ grep . /sys/class/dmi/id/* 2> /dev/null
/sys/class/dmi/id/bios_date:04/23/2026
/sys/class/dmi/id/bios_release:1.11
/sys/class/dmi/id/bios_vendor:Dell Inc.
/sys/class/dmi/id/bios_version:1.11.0
/sys/class/dmi/id/board_name:025J9Y
/sys/class/dmi/id/board_vendor:Dell Inc.
/sys/class/dmi/id/board_version:A00
/sys/class/dmi/id/chassis_type:10
/sys/class/dmi/id/chassis_vendor:Dell Inc.
/sys/class/dmi/id/ec_firmware_release:1.8
/sys/class/dmi/id/modalias:dmi:bvnDellInc.:bvr1.11.0:bd04/23/2026:br1.11:efr1.8:svnDellInc.:pnXPS14(Dell14Premium)DA14250:pvr:rvnDellInc.:rn025J9Y:rvrA00:cvnDellInc.:ct10:cvr:sku0CE5:pfaDellLaptops:
/sys/class/dmi/id/product_family:Dell Laptops
/sys/class/dmi/id/product_name:XPS 14 (Dell 14 Premium) DA14250
/sys/class/dmi/id/product_sku:0CE5
/sys/class/dmi/id/sys_vendor:Dell Inc.
/sys/class/dmi/id/uevent:MODALIAS=dmi:bvnDellInc.:bvr1.11.0:bd04/23/2026:br1.11:efr1.8:svnDellInc.:pnXPS14(Dell14Premium)DA14250:pvr:rvnDellInc.:rn025J9Y:rvrA00:cvnDellInc.:ct10:cvr:sku0CE5:pfaDellLaptops:

Comment 2 Kate Hsuan 2026-08-11 08:47:42 UTC
Hi,

Thank you for reporting the issue.

The test build can be found here
https://koji.fedoraproject.org/koji/taskinfo?taskID=148963053

After the build completes, you can download the rpm package from the URL mentioned above.
If the test build works, I'll submit the fix to the kernel upstream.

Comment 3 Kate Hsuan 2026-08-11 12:20:15 UTC
The updated test build can be found at this URL
https://koji.fedoraproject.org/koji/taskinfo?taskID=148966815

Comment 4 Andrey Motoshkov 2026-08-13 14:25:38 UTC
Still the same.
I see linux boot log has changed:
Linux version 7.1.8-200.fc44.x86_64 (mockbuild@8fa886061aa64c89a620afd1a30d33ca) (gcc (GCC) 16.1.1 20260515 (Red Hat 16.1.1-2), GNU ld version 2.46.1-1.fc44) #1 SMP PREEMPT_DYNAMIC Tue Aug 11 13:02:56 UTC 2026

But ipu_bridge.ko.xz timestamp from kernel-modules is:
# ls -al ./lib/modules/7.1.8-200.fc44.x86_64/kernel/drivers/media/pci/intel/ipu-bridge.ko.xz 
-rw-r--r--. 1 root root 23520 Aug  9 03:00 ./lib/modules/7.1.8-200.fc44.x86_64/kernel/drivers/media/pci/intel/ipu-bridge.ko.xz

Checksum:
sha256sum kernel-modules-7.1.8-200.fc44.x86_64.rpm
d9dd87bba7bf51ff41b6ade5c591884a55a717231e689afce6a8a959ff35c19a  kernel-modules-7.1.8-200.fc44.x86_64.rpm

Comment 5 Kate Hsuan 2026-08-19 02:42:11 UTC
Hi,

Thank you for your testing.

There is a upside down list in the ipu-bridge driver. The vendor may install the camera sensor upside down for some reasons.
I'll try to match the DMI string.
Could you please find the "/sys/class/dmi/id/product_name:XPS 14 (Dell 14 Premium) DA14250" using the dmidecode command
`sudo dmidecode -s system-product-name`

Thank you

Comment 6 Andrey Motoshkov 2026-08-19 09:02:00 UTC
(In reply to Kate Hsuan from comment #5)
> Hi,
> 
> Thank you for your testing.
> 
> There is a upside down list in the ipu-bridge driver. The vendor may install
> the camera sensor upside down for some reasons.
> I'll try to match the DMI string.
> Could you please find the "/sys/class/dmi/id/product_name:XPS 14 (Dell 14
> Premium) DA14250" using the dmidecode command
> `sudo dmidecode -s system-product-name`
> 
> Thank you

Please find below:
$ sudo dmidecode -s system-product-name
XPS 14 (Dell 14 Premium) DA14250

Comment 7 Kate Hsuan 2026-08-25 14:01:53 UTC
I rebuild the kernel against your product name. The kernel can be found here
https://koji.fedoraproject.org/koji/taskinfo?taskID=149458204

Can you please test it.

Thank you.

Comment 8 Andrey Motoshkov 2026-08-30 13:19:56 UTC
Unable to test as intel_cvs driver crashes:

[    5.645838] intel_cvs: loading out-of-tree module taints kernel.
[    5.645843] intel_cvs: module verification failed: signature and/or required key missing - tainting kernel
[    5.659191] Intel CVS driver i2c-INTC10E0:00: cvs_common_probe: probed as i2c device
[    5.661471] ------------[ cut here ]------------
[    5.661473] WARNING: kernel/irq/manage.c:1503 at __setup_irq+0x666/0x780, CPU#9: (udev-worker)/779
[    5.661482] Modules linked in: btbcm(+) hid_sensor_trigger(+) btintel snd_timer(+) dell_smbios(+) vfat hid_sensor_iio_common intel_cstate intel_cvs(OE+) kfifo_buf dcdbas fat intel_uncore libarc4 bluetooth pcspkr dell_smm_hwmon dell_wmi_ddv dell_wmi_sysman(+) dell_wmi_descriptor firmware_attributes_class wmi_bmof mei_me snd i2c_i801 spi_intel_pci industrialio v4l2_cci iwlwifi mei i2c_smbus soundcore spi_intel idma64 v4l2_fwnode intel_skl_int3472_tps68470 v4l2_async tps68470_regulator i2c_usbio videodev processor_thermal_device_pci gpio_usbio clk_tps68470 cfg80211 int3403_thermal processor_thermal_device intel_pmc_core mc processor_thermal_wt_hint intel_skl_int3472_discrete usbio platform_temperature_control intel_skl_int3472_common processor_thermal_soc_slider pmt_telemetry processor_thermal_rfim acpi_tad pmt_discovery processor_thermal_rapl intel_hid int3400_thermal intel_rapl_common pmt_class sparse_keymap acpi_thermal_rel acpi_pad processor_thermal_wt_req processor_thermal_power_floor intel_ipu6
[    5.661512]  intel_pmc_ssram_telemetry rfkill processor_thermal_mbox intel_pmc_pwrm_telemetry ipu_bridge int340x_thermal_zone joydev igen6_edac dm_multipath xe drm_ttm_helper drm_suballoc_helper gpu_sched drm_gpuvm drm_exec drm_gpusvm_helper hid_sensor_hub intel_ishtp_hid i915 ucsi_acpi typec_ucsi typec nvme rtsx_pci_sdmmc mmc_core nvme_core drm_buddy i2c_algo_bit video ttm nvme_keyring hid_multitouch rtsx_pci nvme_auth thunderbolt i2c_hid_acpi drm_display_helper i2c_hid intel_vpu intel_ish_ipc wmi intel_ishtp pinctrl_meteorlake cec intel_vsec serio_raw fuse ntsync i2c_dev scsi_dh_alua scsi_dh_rdac scsi_dh_emc
[    5.661539] CPU: 9 UID: 0 PID: 779 Comm: (udev-worker) Tainted: G           OE      ------  ---  7.3.0-0.rc0.66498c75b4f8.11.test.fc46.x86_64 #1 PREEMPT(lazy) 
[    5.661541] Tainted: [O]=OOT_MODULE, [E]=UNSIGNED_MODULE
[    5.661542] Hardware name: Dell Inc. XPS 14 (Dell 14 Premium) DA14250/025J9Y, BIOS 1.12.0 06/01/2026
[    5.661545] RIP: 0010:__setup_irq+0x666/0x780
[    5.661547] Code: 00 00 02 e9 94 fb ff ff 48 8b 90 b8 00 00 00 48 85 d2 0f 84 d2 fb ff ff 48 8d 7b 28 2e 2e 2e ff d2 48 8b 43 40 e9 c0 fb ff ff <0f> 0b f6 c6 80 75 11 81 e2 00 00 01 00 0f 85 1b fa ff ff e9 e7 fa
[    5.661548] RSP: 0018:ffffd182014bba48 EFLAGS: 00010246
[    5.661550] RAX: 0000000000206002 RBX: ffff8f2a02112c00 RCX: 0000000000000000
[    5.661551] RDX: 0000000000000402 RSI: ffff8f2a02112c00 RDI: 0000000000000000
[    5.661552] RBP: 00000000000000d7 R08: 0000000000000080 R09: ffff8f2a19358e80
[    5.661552] R10: 0000000000000000 R11: 0000000000000000 R12: 00000000000000d7
[    5.661553] R13: ffff8f2a19358e80 R14: 0000000000000000 R15: 0000000000000402
[    5.661554] FS:  00007efdec75cf00(0000) GS:ffff8f31c1ea9000(0000) knlGS:0000000000000000
[    5.661555] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[    5.661556] CR2: 0000556e5045b5e8 CR3: 000000010cc1d005 CR4: 0000000008f70ef0
[    5.661556] PKRU: 55555554
[    5.661558] Call Trace:
[    5.661560]  <TASK>
[    5.661562]  ? request_threaded_irq+0xcb/0x200
[    5.661565]  ? __pfx_cvs_irq_handler+0x10/0x10 [intel_cvs]
[    5.661571]  request_threaded_irq+0x10b/0x200
[    5.661572]  devm_request_threaded_irq+0x94/0x160
[    5.661575]  ? __pfx_cvs_irq_handler+0x10/0x10 [intel_cvs]
[    5.661578]  cvs_common_probe.cold+0x2ca/0x513 [intel_cvs]
[    5.661583]  i2c_device_probe+0x44a/0x490
[    5.661590]  call_driver_probe+0x23/0x100
[    5.661594]  ? driver_sysfs_add+0x55/0xc0
[    5.661595]  really_probe+0xd7/0x2d0
[    5.661597]  ? __pm_runtime_resume+0x5f/0x90
[    5.661601]  __driver_probe_device+0x9c/0x1b0
[    5.661602]  driver_probe_device+0x1f/0x80
[    5.661605]  ? __pfx___driver_attach+0x10/0x10
[    5.661606]  __driver_attach+0xca/0x1f0
[    5.661607]  ? __pfx___driver_attach+0x10/0x10
[    5.661608]  bus_for_each_dev+0x97/0x100
[    5.661611]  bus_add_driver+0x15c/0x260
[    5.661613]  ? __pfx_init_module+0x10/0x10 [intel_cvs]
[    5.661616]  driver_register+0x75/0xe0
[    5.661617]  i2c_register_driver+0x50/0xe0
[    5.661619]  icvs_init+0x1d/0xff0 [intel_cvs]
[    5.661622]  do_one_initcall+0x89/0x3d0
[    5.661629]  do_init_module+0x8e/0x2b0
[    5.661634]  init_module_from_file+0xc8/0x180
[    5.661637]  idempotent_init_module+0x23e/0x360
[    5.661638]  __x64_sys_finit_module+0x7f/0x110
[    5.661640]  do_syscall_64+0xbe/0x470
[    5.661646]  ? do_syscall_64+0x37/0x470
[    5.661647]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[    5.662025] RIP: 0033:0x7efdec0fb37d
[    5.662052] Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 4b aa 0f 00 f7 d8 64 89 01 48
[    5.662054] RSP: 002b:00007ffde48254f8 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
[    5.662055] RAX: ffffffffffffffda RBX: 0000556e5014c9d0 RCX: 00007efdec0fb37d
[    5.662056] RDX: 0000000000000000 RSI: 00007efdeb8dc5c8 RDI: 000000000000004f
[    5.662057] RBP: 00007ffde4825590 R08: 0000000000000000 R09: 0000556e5044daa0
[    5.662057] R10: 0000000000000000 R11: 0000000000000246 R12: 00007efdeb8dc5c8
[    5.662058] R13: 0000556e5044ceb0 R14: 0000000000020000 R15: 0000000000000000
[    5.662059]  </TASK>
[    5.662060] ---[ end trace 0000000000000000 ]---
[    5.662120] Intel CVS driver i2c-INTC10E0:00: find_oem_prod_id: ACPI method OPID not found
[    5.663684] Intel CVS driver i2c-INTC10E0:00: magic number in dev response not supported
[    5.663687] Intel CVS driver i2c-INTC10E0:00: cvs_find_magic_num_support:Device protocol is 1.0


Without intel_cvs driver working, camera doesn't work too.
Can you build older kernel for test?

Comment 9 Kate Hsuan 2026-08-31 04:02:12 UTC
Hi,

Thank you for your testing and feedback.

Please unload the out-of-tree rpmfusion packages (ipu6 and intel-vision) and then test the latest kernel. I build the test build against rawhide kernel.
Moreover, the intel-cvs driver is included in the fedora rawhide kernel and I has enabled it.
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/4583

You only need the test build kernel + libcamera > 0.7.1 to make the sensor work.

Comment 10 Andrey Motoshkov 2026-09-02 11:46:44 UTC
fix doesn't work.
I don't see my dell product in strings:
$ xz -d </lib/modules/7.3.0-0.rc0.66498c75b4f8.11.test.fc46.x86_64/kernel/drivers/media/pci/intel/ipu-bridge.ko.xz |strings|grep -i dell
Dell Inc.
Dell Inc.
Dell Inc.
Dell Inc.
Dell Inc.
XPS 16 (Dell 16 Premium) DA16250

Comment 11 Kate Hsuan 2026-09-04 09:05:06 UTC
Hi

The test build can be found here
https://koji.fedoraproject.org/koji/taskinfo?taskID=149840242

The build process is still running. After it is built successfully, you can down load the test kernel from it.

Comment 12 Andrey Motoshkov 2026-09-06 09:25:58 UTC
test build fixes the issue - camera is detected and produces image with correct orientation

Comment 13 Kate Hsuan 2026-09-09 02:35:44 UTC
Complete upstream work can be found (missing Lattice companion device ID + upside down issue)
https://lore.kernel.org/linux-media/20260907102504.60512-1-hpa@redhat.com/

You can test the upstream patch and if you find it works, replying a "Tested-by" tag is appreciated.


Note You need to log in before you can comment on or make changes to this bug.