1. 17 1月, 2009 1 次提交
  2. 09 1月, 2009 1 次提交
  3. 31 12月, 2008 1 次提交
  4. 19 12月, 2008 2 次提交
  5. 27 11月, 2008 1 次提交
  6. 25 10月, 2008 1 次提交
  7. 23 10月, 2008 2 次提交
    • L
      ACPI suspend: fix build warning when CONFIG_ACPI_SLEEP=n · b849075c
      Len Brown 提交于
      drivers/acpi/sleep/main.c:27: warning: ‘acpi_target_sleep_state’ defined but not used
      Signed-off-by: NLen Brown <len.brown@intel.com>
      b849075c
    • R
      ACPI suspend: Fix CONFIG_ACPI_SLEEP dependence and some compilation warnings · 5d1e072b
      Rafael J. Wysocki 提交于
      Initially CONFIG_PM_SLEEP was defined as
      CONFIG_SUSPEND || CONFIG_HIBERNATION and some ACPI code, most
      importantly the code in drivers/acpi/main.c, was written with this
      assumption.  Currently, however, CONFIG_PM_SLEEP is also set when
      CONFIG_XEN_SAVE_RESTORE is set.
      
      This causes some compilation warnings to appear in
      drivers/acpi/main.c if both CONFIG_SUSPEND and CONFIG_HIBERNATION
      are unset and CONFIG_PM_SLEEP is set (this was impossible before).
      To fix this problem, redefine CONFIG_ACPI_SLEEP do depend directly
      on CONFIG_SUSPEND || CONFIG_HIBERNATION, as originally intended, and
      use it instead of CONFIG_PM_SLEEP in drivers/acpi/main.c, wherever
      appropriate.
      
      Additionally, move the acpi_target_sleep_state definition from under
      the #ifdef to prevent compilation from failing in some cases.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      5d1e072b
  8. 17 10月, 2008 3 次提交
    • R
      ACPI suspend: Blacklist HP xw4600 Workstation for old code ordering · 4fb507b6
      Rafael J. Wysocki 提交于
      HP xw4600 Workstation is known to require the "old" (ie. compatible
      with ACPI 1.0) suspend code ordering, so blacklist it for this
      purpose.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Tested-by: NJohn Brown <john.brown3@hp.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      4fb507b6
    • R
      ACPI Suspend: Enable ACPI during resume if SCI_EN is not set · d0c71fe7
      Rafael J. Wysocki 提交于
      On some machines, like for example MSI Wind U100, the BIOS doesn't
      enable ACPI before returning control to the OS, which sometimes
      causes resume to fail.  This is against the ACPI specification,
      which clearly states that "When the platform is waking from an S1, S2
      or S3 state, OSPM assumes the hardware is already in the ACPI mode
      and will not issue an ACPI_ENABLE", but it won't hurt to check the
      SCI_EN bit and enable ACPI during resume from S3 if this bit is not
      set.
      
      Fortunately, we already have acpi_enable() for that, so use it in the
      resume code path, before executing _BFS, in analogy with the
      resume-from-hibernation code path.
      
      NOTE: We aren't supposed to set SCI_EN directly, because it's owned
      by the hardware.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Pavel Machek <pavel@suse.cz>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      d0c71fe7
    • Z
      ACPI: Add the support for _TTS object · e49f711c
      Zhao Yakui 提交于
          The _TTS object is defined in the section 7.3 of acpi 3.0b spec.
          The _TTS control method is executed by the OSPM at the beginning of
      the sleep transition process for S1,S2, S3, S4, and orderly S5 shutdown.
      OS will invoke _TTS before it has notified any native mode device drivers
      of the sleep state transition. The target sleeping state value is passed to
      the _TTS control method.
      
          The _TTS control method is also executed by the OSPM at the end of
      any sleep transition process when the system transitions to S0 from
      S1, S2, S3, or S4. The _TTS object should be evaluated after it has
      notified any native mode device drivers of the end of the sleep state
      transition. The working state value (0) is passed to the _TTS control method.
      
          So it is necessary to add the support for _TTS object. The _TTS object
      will be evaluated if it exists.
          At the same time a block notifier is added to the reboot notifier list so
      that the _TTS object will also be evaluated when the system shutdown.
      
      lenb: note that as of Sep 2008, I've not yet seen _TTS in any shipping BIOS.
      So this patch is to future-proof Linux, rather than fix the installed base.
      
      http://bugzilla.kernel.org/show_bug.cgi?id=11132Signed-off-by: NZhao Yakui <yakui.zhao@intel.com>
      Signed-off-by: NLi Shaohua <shaohua.li@intel.com>
      Signed-off-by: NAndi Kleen <ak@linux.intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      e49f711c
  9. 11 10月, 2008 1 次提交
  10. 25 7月, 2008 2 次提交
  11. 17 7月, 2008 2 次提交
  12. 08 7月, 2008 1 次提交
    • R
      PCI ACPI: Rework PCI handling of wake-up · eb9d0fe4
      Rafael J. Wysocki 提交于
      * Introduce function acpi_pm_device_sleep_wake() for enabling and
        disabling the system wake-up capability of devices that are power
        manageable by ACPI.
      
      * Introduce function acpi_bus_can_wakeup() allowing other (dependent)
        subsystems to check if ACPI is able to enable the system wake-up
        capability of given device.
      
      * Introduce callback .sleep_wake() in struct pci_platform_pm_ops and
        for the ACPI PCI 'driver' make it use acpi_pm_device_sleep_wake().
      
      * Introduce callback .can_wakeup() in struct pci_platform_pm_ops and
        for the ACPI 'driver' make it use acpi_bus_can_wakeup().
      
      * Move the PME# handlig code out of pci_enable_wake() and split it
        into two functions, pci_pme_capable() and pci_pme_active(),
        allowing the caller to check if given device is capable of
        generating PME# from given power state and to enable/disable the
        device's PME# functionality, respectively.
      
      * Modify pci_enable_wake() to use the new ACPI callbacks and the new
        PME#-related functions.
      
      * Drop the generic .platform_enable_wakeup() callback that is not
        used any more.
      
      * Introduce device_set_wakeup_capable() that will set the
        power.can_wakeup flag of given device.
      
      * Rework PCI device PM initialization so that, if given device is
        capable of generating wake-up events, either natively through the
        PME# mechanism, or with the help of the platform, its
        power.can_wakeup flag is set and its power.should_wakeup flag is
        unset as appropriate.
      
      * Make ACPI set the power.can_wakeup flag for devices found to be
        wake-up capable by it.
      
      * Make the ACPI wake-up code enable/disable GPEs for devices that
        have the wakeup.flags.prepared flag set (which means that their
        wake-up power has been enabled).
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      eb9d0fe4
  13. 05 7月, 2008 1 次提交
  14. 13 6月, 2008 1 次提交
    • R
      Suspend-related patches for 2.6.27 · d8f3de0d
      Rafael J. Wysocki 提交于
      ACPI PM: Add possibility to change suspend sequence
      
      There are some systems out there that don't work correctly with
      our current suspend/hibernation code ordering.  Provide a workaround
      for these systems allowing them to pass 'acpi_sleep=old_ordering' in
      the kernel command line so that it will use the pre-ACPI 2.0 ("old")
      suspend code ordering.
      
      Unfortunately, this requires us to add a platform hook to the
      resuming of devices for recovering the platform in case one of the
      device drivers' .suspend() routines returns error code.  Namely,
      ACPI 1.0 specifies that _PTS should be called before suspending
      devices, but _WAK still should be called before resuming them in
      order to undo the changes made by _PTS.  However, if there is an
      error during suspending devices, they are automatically resumed
      without returning control to the PM core, so the _WAK has to be
      called from within device_resume() in that cases.
      
      The patch also reorders and refactors the ACPI suspend/hibernation
      code to avoid duplication as far as reasonably possible.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: NPavel Machek <pavel@suse.cz>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      d8f3de0d
  15. 12 6月, 2008 2 次提交
  16. 29 4月, 2008 1 次提交
  17. 02 4月, 2008 1 次提交
    • R
      ACPI PM: Restore the 2.6.24 suspend ordering · 7731ce63
      Rafael J. Wysocki 提交于
      Some time ago it turned out that our suspend code ordering broke some
      NVidia-based systems that hung if _PTS was executed with one of the PCI
      devices, specifically a USB controller, in a low power state.
      
      Then, it was noticed that the suspend code ordering was not compliant
      with ACPI 1.0, although it was compliant with ACPI 2.0 (and later), and
      it was argued that the code had to be changed for that reason (ref.
      http://bugzilla.kernel.org/show_bug.cgi?id=9528).
      
      So we did, but evidently we did wrong, because it's now turning out that
      some systems have been broken by this change. Refs:
      	http://bugzilla.kernel.org/show_bug.cgi?id=10340
      	https://bugzilla.novell.com/show_bug.cgi?id=374217#c16
      
      [ I said at that time that something like this might happend, but the
        majority of people involved thought that it was improbable due to the
        necessity to preserve the compliance of hardware with ACPI 1.0. ]
      
      This actually is a quite serious regression from 2.6.24.
      
      Moreover, the ACPI 1.0 ordering of suspend code introduced another issue
      that I have only noticed recently.  Namely, if the suspend of one of
      devices fails, the already suspended devices will be resumed without
      executing _WAK before, which leads to problems on some systems (for
      example, in such situations thermal management is broken on my HP
      nx6325).  Consequently, it also breaks suspend debugging on the affected
      systems.
      
      Note also, that the requirement to execute _PTS before suspending
      devices does not really make sense, because the device in question may
      be put into a low power state at run time for a reason unrelated to a
      system-wide suspend.
      
      For the reasons outlined above, the change of the suspend ordering
      should be reverted, which is done by the patch below.
      
      [ Felix Möller: "I am the reporter from the original Novell Bug:
      
      	https://bugzilla.novell.com/show_bug.cgi?id=374217
      
        I just tried current git head (two hours ago) with the patch (the one
        from the beginning of this thread) from Rafael and without it.  With
        the patch my MacBook does suspend without it does not." ]
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Tested-by: NFelix Möller <felix@derklecks.de>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      7731ce63
  18. 11 3月, 2008 1 次提交
  19. 07 2月, 2008 1 次提交
  20. 02 2月, 2008 9 次提交
  21. 12 1月, 2008 1 次提交
  22. 26 10月, 2007 2 次提交
  23. 19 10月, 2007 2 次提交