Skip to content
Snippets Groups Projects
  1. Jul 19, 2007
  2. Jul 18, 2007
  3. Jul 01, 2007
    • Rafael J. Wysocki's avatar
      PM: introduce set_target method in pm_ops · 2391dae3
      Rafael J. Wysocki authored
      
      Commit 52ade9b3 changed the suspend code
      ordering to execute pm_ops->prepare() after the device model per-device
      .suspend() calls in order to fix some ACPI-related issues.  Unfortunately, it
      broke the at91 platform which assumed that pm_ops->prepare() would be called
      before suspending devices.
      
      at91 used pm_ops->prepare() to get notified of the target system sleep state,
      so that it could use this information while suspending devices.  However, with
      the current suspend code ordering pm_ops->prepare() is called too late for
      this purpose.  Thus, at91 needs an additional method in 'struct pm_ops' that
      will be used for notifying the platform of the target system sleep state.
      Moreover, in the future such a method will also be needed by ACPI.
      
      This patch adds the .set_target() method to 'struct pm_ops' and makes the
      suspend code call it, if implemented, before executing the device model
      per-device .suspend() calls.  It also modifies the at91 code to use
      pm_ops->set_target() instead of pm_ops->prepare().
      
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Cc: Pavel Machek <pavel@ucw.cz>
      Cc: Johannes Berg <johannes@sipsolutions.net>
      Cc: Len Brown <lenb@kernel.org>
      Cc: Greg KH <greg@kroah.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2391dae3
  4. Jun 16, 2007
  5. May 23, 2007
  6. May 17, 2007
  7. May 16, 2007
    • Linus Torvalds's avatar
      Fix ACPI suspend / device suspend ordering problem · 52ade9b3
      Linus Torvalds authored
      
      In commit e3c7db62 we fixed the resume
      ordering, so that the ACPI low-level resume code was called before the
      actual driver resume was called. However, that broke the nesting logic
      of suspend and resume, and we continued to suspend the devices _after_
      we the ACPI device suspend code was called.
      
      That resulted in us saving PCI state for devices that had already been
      changed by ACPI, and in some cases disabled entirely (causing the PCI
      save_state to be all-ones).  Which in turn caused the wrong state to be
      written back on resume.
      
      This moves the ACPI device suspend to after the device model per-device
      suspend() calls. This fixes the bogus state save.
      
      Thanks to Lukáš Hejtmánek for testing.
      
      Acked-by: default avatarLukas Hejtmanek <xhejtman@ics.muni.cz>
      Acked-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Cc: Len Brown <len.brown@intel.com>
      Cc: Pavel Machek <pavel@ucw.cz>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Greg KH <greg@kroah.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      52ade9b3
  8. May 09, 2007
  9. May 08, 2007
  10. May 07, 2007
Loading