mbox series

[v2,0/5] PM: PCI/ACPI: Hibernation handling fixes

Message ID 4976412.ihyb9sT5jY@kreacher (mailing list archive)
Headers show
Series PM: PCI/ACPI: Hibernation handling fixes | expand

Message

Rafael J. Wysocki July 1, 2019, 10:42 a.m. UTC
Hi All,

This series of patches addresses a few issues related to the handling of
hibernation in the PCI bus type and the ACPI PM domain and ACPI LPSS driver.

The v2 addresses Hans' concerns regarding the LPSS changes.

First of all, all of the runtime-suspended PCI devices and devices in the ACPI PM and LPSS
PM domains will be resumed during hibernation (first patch).  This appears to be the
only way to avoid weird corner cases and the benefit from avoiding to resume those
devices during hibernation is questionable.

That change allows the the hibernation callbacks in all of the involved subsystems to be
simplified (patches 2 and 3).

Moreover, reusing bus-level suspend callbacks for the "poweroff" transition during
hibernation (which is the case for the ACPI PM domain and LPSS) is incorrect, so patch 4
fixes that.

Finally, there are some leftover items in linux/acpi.h that can be dropped (patch 5).

Thanks,
Rafael

Comments

Hans de Goede July 1, 2019, 11:30 a.m. UTC | #1
Hi Rafael,

On 01-07-19 12:42, Rafael J. Wysocki wrote:
> Hi All,
> 
> This series of patches addresses a few issues related to the handling of
> hibernation in the PCI bus type and the ACPI PM domain and ACPI LPSS driver.
> 
> The v2 addresses Hans' concerns regarding the LPSS changes.
> 
> First of all, all of the runtime-suspended PCI devices and devices in the ACPI PM and LPSS
> PM domains will be resumed during hibernation (first patch).  This appears to be the
> only way to avoid weird corner cases and the benefit from avoiding to resume those
> devices during hibernation is questionable.
> 
> That change allows the the hibernation callbacks in all of the involved subsystems to be
> simplified (patches 2 and 3).
> 
> Moreover, reusing bus-level suspend callbacks for the "poweroff" transition during
> hibernation (which is the case for the ACPI PM domain and LPSS) is incorrect, so patch 4
> fixes that.
> 
> Finally, there are some leftover items in linux/acpi.h that can be dropped (patch 5).

Thank you for the new version, the entire series looks good to me now:

Reviewed-by: Hans de Goede <hdegoede@redhat.com>

Regards,

Hans

p.s.

FWIW I agree that the calling of the suspend_late method of the i2c-designware driver
at suspend_noirq time is ugly, thank you for adding the comment documenting this.
Mika Westerberg July 1, 2019, 4:20 p.m. UTC | #2
On Mon, Jul 01, 2019 at 12:42:14PM +0200, Rafael J. Wysocki wrote:
> Hi All,
> 
> This series of patches addresses a few issues related to the handling of
> hibernation in the PCI bus type and the ACPI PM domain and ACPI LPSS driver.
> 
> The v2 addresses Hans' concerns regarding the LPSS changes.
> 
> First of all, all of the runtime-suspended PCI devices and devices in the ACPI PM and LPSS
> PM domains will be resumed during hibernation (first patch).  This appears to be the
> only way to avoid weird corner cases and the benefit from avoiding to resume those
> devices during hibernation is questionable.
> 
> That change allows the the hibernation callbacks in all of the involved subsystems to be
> simplified (patches 2 and 3).
> 
> Moreover, reusing bus-level suspend callbacks for the "poweroff" transition during
> hibernation (which is the case for the ACPI PM domain and LPSS) is incorrect, so patch 4
> fixes that.
> 
> Finally, there are some leftover items in linux/acpi.h that can be dropped (patch 5).

For the whole series,

Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Rafael J. Wysocki July 5, 2019, 9:50 a.m. UTC | #3
On Monday, July 1, 2019 6:20:17 PM CEST Mika Westerberg wrote:
> On Mon, Jul 01, 2019 at 12:42:14PM +0200, Rafael J. Wysocki wrote:
> > Hi All,
> > 
> > This series of patches addresses a few issues related to the handling of
> > hibernation in the PCI bus type and the ACPI PM domain and ACPI LPSS driver.
> > 
> > The v2 addresses Hans' concerns regarding the LPSS changes.
> > 
> > First of all, all of the runtime-suspended PCI devices and devices in the ACPI PM and LPSS
> > PM domains will be resumed during hibernation (first patch).  This appears to be the
> > only way to avoid weird corner cases and the benefit from avoiding to resume those
> > devices during hibernation is questionable.
> > 
> > That change allows the the hibernation callbacks in all of the involved subsystems to be
> > simplified (patches 2 and 3).
> > 
> > Moreover, reusing bus-level suspend callbacks for the "poweroff" transition during
> > hibernation (which is the case for the ACPI PM domain and LPSS) is incorrect, so patch 4
> > fixes that.
> > 
> > Finally, there are some leftover items in linux/acpi.h that can be dropped (patch 5).
> 
> For the whole series,
> 
> Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
> 

Thanks!

Queued for 5.3 with the tags from you and Hans (I've fixed up comments in the first patch while applying it).