Hi,

I've prepared a clean cherry-pick of the upstream fix for R:linux and
N:linux-hwe-7.0. Launchpad does not allow me to add another package
task, so could someone with triage permissions add linux-hwe-7.0
(Ubuntu) to this bug?

The SRU cover letter uses the justification below. Please copy these
sections into the bug description if needed.

SRU Justification:

[Impact]

Ubuntu 7.0 includes commit 15faf0fa1472 ("media: i2c: dw9719:
Remove unused i2c device id table"). The table is required for lens
voice-coil motors instantiated as plain I2C clients by the Intel IPU
bridge.

Without the table, dw9719.ko does not export an i2c:dw9719 alias and
does not bind to the focus motor. The sensor's lens-focus notifier
therefore never completes, which prevents the IPU3 media graph from
being completed. On affected systems, including the Microsoft Surface
Go 2, libcamera consequently enumerates no cameras.

[Fix]

Cherry-pick upstream commit d7fe0d53b2a8 ("media: dw9719: Add back the
I2C device id table").

The commit restores the I2C device ID table for all four variants
supported by the driver and connects it to the i2c_driver. This restores
module aliases and matching for IPU bridge-created I2C clients.

[Test Plan]

1. Build and boot the patched R or N:hwe-7.0 kernel on an affected Intel
   IPU3 system, without the DKMS workaround.
2. Run `modinfo dw9719 | grep '^alias:.*i2c:'` and verify aliases for
   dw9718s, dw9719, dw9761, and dw9800k are present.
3. Verify that the VCM has a driver symlink below
   /sys/bus/i2c/devices/i2c-INT347A:00-VCM/.
4. Run `media-ctl -p` on the IPU3 media device and verify that the
   sensor-to-CSI-2 links exist.
5. Run `cam -l` and verify that the cameras are enumerated.

[Where problems could occur]

The change affects module autoloading, device matching, and driver data
selection for DW9718S, DW9719, DW9761, and DW9800K I2C clients. An
incorrect table entry could bind the driver to an incompatible device
or select the wrong hardware variant.

The risk is limited because these are the same four variants already
supported by the driver's OF match table, and the patch does not alter
probe, power-management, or focus-control behavior. The change is
upstream and carries a stable backport request.

[Other Info]

Local A/B testing built the pre-fix and patched sources as standalone
modules against the same prepared Ubuntu amd64 generic kernel tree. The
pre-fix module exported only OF aliases, and
`modprobe -R i2c:dw9719` failed with "Module not found". The patched
module exported all four I2C aliases, and the same command resolved to
dw9719.

The reporter built the fixed upstream driver as a DKMS module on the
affected Surface Go 2. The VCM bound, media links appeared, and libcamera
enumerated both cameras; reverting the change reproduced the failure.

The file on both target branches is identical to the parent of the
upstream fix, so the cherry-pick applies without changes.

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

Reply via email to