• Kirill A. Shutemov's avatar
    ACPI: PM: Remove redundant cache flushing · 3c89857a
    Kirill A. Shutemov authored
    ACPICA code takes care about cache flushing on S1/S2/S3 in
    acpi_hw_extended_sleep() and acpi_hw_legacy_sleep().
    
    acpi_suspend_enter() calls into ACPICA code via acpi_enter_sleep_state()
    for S1 or x86_acpi_suspend_lowlevel() for S3.
    
    acpi_sleep_prepare() call tree:
      __acpi_pm_prepare()
        acpi_pm_prepare()
          acpi_suspend_ops::prepare_late()
          acpi_hibernation_ops::pre_snapshot()
          acpi_hibernation_ops::prepare()
        acpi_suspend_begin_old()
          acpi_suspend_begin_old::begin()
      acpi_hibernation_begin_old()
        acpi_hibernation_ops_old::acpi_hibernation_begin_old()
      acpi_power_off_prepare()
        pm_power_off_prepare()
    
    Hibernation (S4) and Power Off (S5) don't require cache flushing, so
    the only interesting callsites are acpi_suspend_ops::prepare_late()
    and acpi_suspend_begin_old::begin(). Both of them have cache flush
    on ->enter() operation in acpi_suspend_enter().
    
    Remove redundant ACPI_FLUSH_CPU_CACHE() in acpi_sleep_prepare() and
    acpi_suspend_enter().
    Signed-off-by: default avatarKirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    3c89857a
sleep.c 25.7 KB