To clarify my previous update: I do not have a Raspberry Pi available, so I cannot test or verify the linux-raspi/7.0.0-1023.23 kernel. My testing hardware is a Microsoft Surface Go 2.
Regards, Stephen Jack Henry On Sat, 31 Oct 2026 18:04:35 -0000, Ubuntu Kernel Bot < [email protected]> wrote: This bug is awaiting verification that the linux-raspi/7.0.0-1023.23 kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-resolute-linux-raspi' to 'verification-done- resolute-linux-raspi'. If the problem still exists, change the tag 'verification-needed-resolute-linux-raspi' to 'verification-failed- resolute-linux-raspi'. If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you! ** Tags added: kernel-spammed-resolute-linux-raspi-v2 verification-needed-resolute-linux-raspi -- You received this bug notification because you are subscribed to the bug report. https://bugs.launchpad.net/bugs/2162045 Title: linux 7.0: dw9719 VCM never binds, disabling all IPU3 cameras (regression, fixed upstream) Status in linux package in Ubuntu: Fix Released Bug description: [Impact] On Intel IPU3 devices whose camera module uses a DW9719 voice-coil focus motor (e.g. Microsoft Surface Go 2), no cameras work at all on the 7.0 kernel. libcamera enumerates zero cameras, so no application can use the webcam. This is a regression. Kernels up to and including 6.14 are unaffected, and the fix is already in mainline. [Test Case] On a Surface Go 2 running Zorin OS 18.1 (Ubuntu 24.04 base), kernel 7.0.0-28-generic: $ cam -l [0:17:42.116034117] [7128] INFO Camera camera_manager.cpp:284 libcamera v0.2.0 Available cameras: $ No cameras, despite all three sensors probing successfully: $ dmesg | grep ipu3-cio2 ipu3-cio2 0000:00:14.3: Found supported sensor INT33BE:00 ipu3-cio2 0000:00:14.3: Found supported sensor INT347A:00 ipu3-cio2 0000:00:14.3: Found supported sensor INT347E:00 ipu3-cio2 0000:00:14.3: Connected 3 cameras The focus motor is unbound: $ cat /sys/bus/i2c/devices/i2c-INT347A:00-VCM/name dw9719 $ cat /sys/bus/i2c/devices/i2c-INT347A:00-VCM/modalias i2c:dw9719 $ ls /sys/bus/i2c/devices/i2c-INT347A:00-VCM/driver ls: cannot access '...': No such file or directory because dw9719.ko exports no matching alias: $ modinfo dw9719 | grep ^alias alias: of:N*T*Cdongwoon,dw9800kC* alias: of:N*T*Cdongwoon,dw9800k ... <- OF aliases only, no "i2c:dw9719" Consequently the media graph is never completed: $ media-ctl -d /dev/media1 -p - entity 1: ipu3-csi2 0 (2 pads, 1 link, 0 routes) <- no device node - entity 37: ov8865 2-0010 (1 pad, 0 link, 0 routes) <- zero links - entity 39: ov7251 3-0060 (1 pad, 0 link, 0 routes) - entity 41: ov5693 4-0036 (1 pad, 0 link, 0 routes) [Regression Details] Introduced by: commit 15faf0fa1472d1da301498a2e33cdaffe84bc4f1 "media: i2c: dw9719: Remove unused i2c device id table" Author: Andre Apitzsch <[email protected]>, 2025-09-20 which removed dw9719_id_table and the .id_table pointer as part of the rework adding DW9718S/DW9761/DW9800K support and switching the driver to OF matching. The table was not unused. ipu_bridge instantiates these VCMs as plain I2C clients with no OF node and no ACPI "compatible" property, so an of_match_table can never match them; the i2c device ID table was the only thing that ever did. With it gone, udev's "modprobe i2c:dw9719" matches nothing, the module is never loaded, and even a manual bind fails with -ENODEV because i2c_device_match() has nothing to match on. Fixed upstream by: commit d7fe0d53b2a8b08f6042cc89315118dee49e072e "media: dw9719: Add back the I2C device id table" Author: Sakari Ailus < [email protected]>, 2026-03-26 [Why an unbound focus motor disables the whole camera stack] This is why the symptom looks unrelated to the cause. ipu_bridge gives the sensor a "lens-focus" fwnode property referencing the VCM. v4l2_async_register_subdev_sensor() parses that property and registers a sub-notifier on the sensor, waiting for the VCM subdev. v4l2_async_nf_can_complete() recurses into sub-notifiers, so one pending child blocks its parent: dw9719 never autoloads (no i2c:dw9719 alias) -> VCM i2c client never binds -> ov8865's lens-focus sub-notifier never completes -> ipu3-cio2's root notifier can never complete -> cio2_notifier_complete() never runs -> no sensor->CSI-2 links, no CSI-2 subdev nodes -> libcamera finds no usable sensor: zero cameras So an unbound autofocus motor takes out every camera on the machine, including the front webcam, which has no VCM of its own. [Fix] Cherry-pick d7fe0d53b2a8 into the 7.0 kernel. It is a self-contained addition of the id_table and MODULE_DEVICE_TABLE(i2c, ...), with no dependencies. [Verification] Building the fixed upstream dw9719.c as a DKMS module on the affected system resolves it completely: the VCM binds, the notifier completes, media links appear, and libcamera enumerates both cameras. Reverting reproduces the failure. Working reproducer, diagnostics and full analysis: https://github.com/JackInSightsV2/Surface-Go-2---Camera-Fix-for-Zorin-18.1 [Where problems could occur] The patch adds an I2C id table and hooks it into the i2c_driver; probe and runtime PM paths are unchanged. A wrong table entry would bind the driver to the wrong device or pick the wrong variant data, but the four entries mirror the driver's existing OF match table. Systems without one of these VCMs are unaffected. [Other Info] Not Surface-specific: any IPU3 device with an ACPI-enumerated DW9719 (or DW9718S/DW9761/DW9800K, all in the same table) is affected on 7.0. Reported against Zorin OS 18.1, which uses the Ubuntu 24.04 archive and the same 7.0.0-28-generic kernel package. Reproducible on stock Ubuntu with the same kernel and hardware. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2162045/+subscriptions -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2162045 Title: linux 7.0: dw9719 VCM never binds, disabling all IPU3 cameras (regression, fixed upstream) To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2162045/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
