I briefly checked this for DMA issue. It will not help anyhow, so weI suppose device core will handle it. If the runtime PM is forbidden or not initialized at all the device shouldn't idle.
*have to* move a power domain assignment to the BIND stage.
For I2C and rest LPSS devices this might help (though didn't look
deeply). My understanding that we assign those callbacks in the LPSS
custom PM domain and call them explicitly in acpi_lpss.c.
The code will be the same as we are using now to bring device from
runtime suspend resume. This means whenever we call probe for e.g. I2C
we end up in a sequence similar to:
pm_runtime_resume(I2C);
->probe(I2C);
pm_runtime_suspend(I2C);
I will try to mock up this and check if it will work, though have no
idea what to do if I2C during probe calls pm_runtime_forbid().
Jarkko, what do you think?