Update after more S4 testing on the same Precision 5690 / 7.0.0-31-generic.
The 1.9 overlay attached here restores the camera after the **first** hibernate, then Oopses on the **second**. Do not use 1.9–1.15 for repeated S4. Root cause of that second-S4 Oops (not the stock mei-csi fwnode miss): After S4, LJCA/ACPI spawn a new i2c client for OVTI02E1. Restoring software node `OVTI02E1-N` as that ACPI device’s `primary->secondary` poisons ACPI PM QoS sysfs. The next teardown NULL-dereferences: ``` BUG: kernel NULL pointer dereference, address: 0000000000000008 RIP: kernfs_find_and_get_ns sysfs_unmerge_group pm_qos_sysfs_remove_resume_latency acpi_dev_pm_detach i2c_unregister_device ``` That happens either on USB restore (`ljca_disconnect`, v1.9–1.11) or on freeze unregister in `systemd-sleep` (v1.14–1.15). Recreating the client vs `device_attach` on the ACPI client does not matter. Cold-boot freeze- unregister of the original ACPI client is safe; any **post-S4** ACPI client that has had that secondary set is not. v1.16 (attached, `mei-vsc-hibernate-1.16.tar.gz`) stops setting ACPI `primary->secondary` after S4. It drops the ACPI i2c client (no swnode on it), `acpi_device_set_enumerated(OVTI02E1)`, and instantiates a non- ACPI client (`type = "ov02e10"`, swnode `OVTI02E1-N`, `companion=none`). Freeze unregisters that swnode client. ov02e10 must also match `i2c:ov02e10` (ACPI HID only is not enough); small patch in the tarball. Verified 2026-09-06, same boot, overlay `mei-vsc-hibernate/1.16`: - S4 #1 22:54 → 22:57: `drop ACPI i2c` then `swnode i2c client 17-0010 companion=none`; ov02e10 bound as `17-0010`. Freeze WARNed `refcount_t: underflow` on unregister of the **cold-boot** ACPI client (`put_device` then `i2c_unregister_device`); kernel continued. Not the 0x8 Oops. - S4 #2 23:02 → 23:04: `unregister swnode i2c 17-0010 before S4` (no WARN) → same `companion=none` on resume; ov02e10 bound; ISYS/PSYS/CSI up; no Oops. Pass/fail is ov02e10 + ivsc_csi + IPU6 isys/psys in sysfs. A USB webcam is not a pass. Suggested upstream addition to the original report: when reattaching sensor swnodes after S4, do **not** hang `OVTI02E1-N` on the ACPI i2c client’s secondary. Use a non-ACPI i2c client whose primary fwnode is the software node, and give ov02e10 an `i2c_device_id`. The IVSC S4 firmware reload and mei-csi `INTC10CF-N` reattach from the original report are still required; they are not enough by themselves. Known leftover: that first-freeze refcount WARN. Harmless here; not a 1.16 blocker. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2166564 Title: IPU6/IVSC camera dead after hibernate (S4): mei-csi recreated without fwnode; ov02e10 unbound (Precision 5690) To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux-hwe-7.0/+bug/2166564/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
