On Mon, Mar 13, 2017 at 11:25:09PM +0100, Hans de Goede wrote: > Currently we are already setting a pm_runtime_disabled flag and disabling > runtime-pm for i2c-busses used for accessing the system PMIC on x86. > But this is not enough, there are ACPI opregions which may want to access > the PMIC during late-suspend and early-resume, so we need to completely > disable pm to be safe. > > This commit renames the flag from pm_runtime_disabled to pm_disabled and > adds the following new behavior if the flag is set: > > 1) Call dev_pm_syscore_device(dev, true) which disables normal suspend / > resume and remove the pm_runtime_disabled check from dw_i2c_plat_resume > since that will now never get called. This fixes suspend_late handlers > which use ACPI PMIC opregions causing errors like these: > > PM: Suspending system (freeze) > PM: suspend of devices complete after 1127.751 msecs > i2c_designware 808622C1:06: timeout waiting for bus ready > ACPI Exception: AE_ERROR, Returned by Handler for [UserDefinedRegion] > acpi 80860F14:02: Failed to change power state to D3hot > PM: late suspend of devices failed > > 2) Set IRQF_NO_SUSPEND irq flag. This fixes resume_early handlers which > handlers which use ACPI PMIC opregions causing errors like these: > > PM: resume from suspend-to-idle > i2c_designware 808622C1:06: controller timed out > ACPI Exception: AE_ERROR, Returned by Handler for [UserDefinedRegion] > > Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> > Acked-by: Jarkko Nikula <jarkko.nikula@xxxxxxxxxxxxxxx> Applied to for-next, thanks!
Attachment:
signature.asc
Description: PGP signature