On 7/1/19 4:44 AM, Rafael J. Wysocki wrote: > From: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx> > > Both the PCI bus type and the ACPI PM domain avoid resuming > runtime-suspended devices with DPM_FLAG_SMART_SUSPEND set during > hibernation (before creating the snapshot image of system memory), > but that turns out to be a mistake. It leads to functional issues > and adds complexity that's hard to justify. > > For this reason, resume all runtime-suspended PCI devices and all > devices in the ACPI PM domains before creating a snapshot image of > system memory during hibernation. > > Fixes: 05087360fd7a (ACPI / PM: Take SMART_SUSPEND driver flag into account) > Fixes: c4b65157aeef (PCI / PM: Take SMART_SUSPEND driver flag into account) > Link: https://lore.kernel.org/linux-acpi/917d4399-2e22-67b1-9d54-808561f9083f@xxxxxxxx/T/#maf065fe6e4974f2a9d79f332ab99dfaba635f64c > Reported-by: Robert R. Howell <RHowell@xxxxxxxx> > Tested-by: Robert R. Howell <RHowell@xxxxxxxx> > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx> > --- > > -> v2: No changes. I've tested your v2 patch set on my ASUS T100TA, applying just those 5 patches to the 5.2-rc7 kernel, and they do fix the hibernation problem. The i2c_designware timeout errors are now gone and sound does now work after resume from both suspend and hibernate. As before I still see the "i2c_designware 80860F41:00: Transfer while suspended" error on the first resume from either suspend or hibernate, but also as before that particular error doesn't seem to cause a persistent problem and the system works normally after the resume. Bob Howell