This repository has been archived by the owner on Nov 8, 2024. It is now read-only.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I have been working on making the ipu6-driver stack work on a Lenovo Thinkpad X1 Yoga gen 7 (alderlake) with a 6.0 kernel and using the INT3472 mainline kernel driver for power-control.
With the ipu6 code using acpi_dev_ready_for_enumeration() for kernel versions >= 5.17 ipu_psys_init() was returning -EPROBE_DEFER (and still does a number of time when letting udev automatically load the modules).
Getting acpi_dev_ready_for_enumeration() to return true requires the ljca-i2c bus driver to call acpi_dev_clear_dependencies() to signal that the ACPI _DEV on it has been fulfilled / met.
While working on this I also noticed a kernel oops related to the ljca code calling a sleeping function from a non-sleeping kernel context. A fix for this is also included.
Together with intel/ipu6-drivers#58 and this mainline kernel patch (+ the "standard" mainline patches) this results in a working camera on the Lenovo Thinkpad X1 Yoga gen 7 for me, with the modules autoloaded by udev and with the module load ordering not mattering.
Cc: @mrhpearson, @vicamo , @cjechlitschek