1. 20 1月, 2013 1 次提交
  2. 17 1月, 2013 1 次提交
    • R
      ACPI: Drop power resources driver · 781d737c
      Rafael J. Wysocki 提交于
      The ACPI power resources driver is not very useful, because the only
      thing it really does is to restore the state of the power resources
      that were "on" before system suspend or hibernation, but that may be
      achieved in a different way.
      
      Drop the ACPI power resources driver entirely and add
      acpi_resume_power_resources() that will walk the list of all
      registered power resources during system resume and turn on the ones
      that were "on" before the preceding system suspend or hibernation.
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      781d737c
  3. 30 11月, 2012 1 次提交
  4. 22 11月, 2012 1 次提交
  5. 15 11月, 2012 6 次提交
    • K
      ACPI / Sleep: add acpi_sleep=nonvs_s3 parameter · 1bad2f19
      Kristen Carlson Accardi 提交于
      The ACPI specificiation would like us to save NVS at hibernation time,
      but makes no mention of saving NVS over S3.  Not all versions of
      Windows do this either, and it is clear that not all machines need NVS
      saved/restored over S3.  Allow the user to improve their suspend/resume
      time by disabling the NVS save/restore at S3 time, but continue to do
      the NVS save/restore for S4 as specified.
      Signed-off-by: NKristen Carlson Accardi <kristen@linux.intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      1bad2f19
    • R
      ACPI / PM: Move device PM functions related to sleep states · a6ae7594
      Rafael J. Wysocki 提交于
      Introduce helper function returning the target sleep state of the
      system and use it to move the remaining device power management
      functions from sleep.c to device_pm.c.
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      a6ae7594
    • R
      ACPI / PM: Split device wakeup management routines · dee8370c
      Rafael J. Wysocki 提交于
      Two device wakeup management routines in device_pm.c and sleep.c,
      acpi_pm_device_run_wake() and acpi_pm_device_sleep_wake(), take a
      device pointer argument and use it to obtain the ACPI handle of the
      corresponding ACPI namespace node.  That handle is then used to get
      the address of the struct acpi_device object corresponding to the
      struct device passed as the argument.
      
      Unfortunately, that last operation may be costly, because it involves
      taking the global ACPI namespace mutex, so it shouldn't be carried
      out too often.  However, the callers of those routines usually call
      them in a row with acpi_pm_device_sleep_state() which also takes that
      mutex for the same reason, so it would be more efficient if they ran
      acpi_bus_get_device() themselves to obtain a pointer to the struct
      acpi_device object in question and then passed that pointer to the
      appropriate PM routines.
      
      To make that possible, split each of the PM routines mentioned above
      in two parts, one taking a struct acpi_device pointer argument and
      the other implementing the current interface for compatibility.
      
      Additionally, change acpi_pm_device_run_wake() to actually return
      an error code if there is an error while setting up runtime remote
      wakeup for the device.
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      dee8370c
    • R
      ACPI / PM: Move runtime remote wakeup setup routine to device_pm.c · cd7bd02d
      Rafael J. Wysocki 提交于
      The ACPI function for setting up devices to do runtime remote
      wakeup is now located in drivers/acpi/sleep.c, but
      drivers/acpi/device_pm.c is a more logical place for it, so move it
      there.
      
      No functional changes should result from this modification.
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      cd7bd02d
    • R
      ACPI / PM: Move device power state selection routine to device_pm.c · 86b3832c
      Rafael J. Wysocki 提交于
      The ACPI function for choosing device power state is now located
      in drivers/acpi/sleep.c, but drivers/acpi/device_pm.c is a more
      logical place for it, so move it there.
      
      However, instead of moving the function entirely, move its core only
      under a different name and with a different list of arguments, so
      that it is more flexible, and leave a wrapper around it in the
      original location.
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      86b3832c
    • R
      ACPI / PM: Fix device PM kernedoc comments and #ifdefs · bdda27fb
      Rafael J. Wysocki 提交于
      The kerneldoc comments for acpi_pm_device_sleep_state(),
      acpi_pm_device_run_wake(), and acpi_pm_device_sleep_wake() are
      outdated or otherwise inaccurate and/or don't follow the common
      kerneldoc patterns, so fix them.
      
      Additionally, notice that acpi_pm_device_run_wake() should be under
      CONFIG_PM_RUNTIME rather than under CONFIG_PM_SLEEP, so fix that too.
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      bdda27fb
  6. 24 10月, 2012 1 次提交
    • R
      PM / ACPI: Take device PM QoS flags into account · 8b713a88
      Rafael J. Wysocki 提交于
      Make ACPI power management routines and PCI power management
      routines depending on ACPI take device PM QoS flags into account
      when deciding what power state to put the device into.
      
      In particular, after this change acpi_pm_device_sleep_state() will
      not return ACPI_STATE_D3_COLD as the deepest available low-power
      state if PM_QOS_FLAG_NO_POWER_OFF is requested for the device and it
      will not require remote wakeup to work for the device in the returned
      low-power state if there is at least one PM QoS flags request for the
      device, but PM_QOS_FLAG_REMOTE_WAKEUP is not requested for it.
      
      Accordingly, acpi_pci_set_power_state() will refuse to put the
      device into D3cold if PM_QOS_FLAG_NO_POWER_OFF is requested for it.
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Reviewed-by: NJean Pihet <j-pihet@ti.com>
      Reviewed-by: NHuang Ying <ying.huang@intel.com>
      8b713a88
  7. 31 7月, 2012 1 次提交
    • L
      ACPI: delete _GTS/_BFS support · 3f6f49c7
      Len Brown 提交于
      _GTS and _BFS were added to the suspend/resume flow
      in the ACPI 2.0 specification.
      
      Linux dutifully implemented _GTS and _BFS.
      We discovered that it was rarely seen in systems
      in the field.  Further, some of those systems had
      AML so bogus that it could never work -- proof that
      no other operating system supports _GTS and _BFS.
      So we made _GTS and _BFS optional via modparam,
      and disabled them by default.
      
      But we've had to complicate some code to keep
      this support in the kernel, as these methods are defined
      to be evaluated very close to sleep entry and exit.
      Indeed, no other AML is ever evaluated with interrupts off.
      
      We have submitted a proposal for _GTS and _BFS
      to be officially removed from the ACPI specification
      on the next revision.  Here we remove it from Linux.
      Signed-off-by: NLen Brown <len.brown@intel.com>
      Acked-by: NIngo Molnar <mingo@kernel.org>
      Acked-by: NKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      3f6f49c7
  8. 27 7月, 2012 1 次提交
  9. 29 6月, 2012 1 次提交
  10. 24 6月, 2012 1 次提交
  11. 01 6月, 2012 1 次提交
  12. 31 5月, 2012 1 次提交
  13. 30 5月, 2012 2 次提交
    • R
      ACPI / PM: Make acpi_pm_device_sleep_state() follow the specification · dbe9a2ed
      Rafael J. Wysocki 提交于
      The comparison between the system sleep state being entered
      and the lowest system sleep state the given device may wake up
      from in acpi_pm_device_sleep_state() is reversed, because the
      specification (ACPI 5.0) says that for wakeup to work:
      
      "The sleeping state being entered must be less than or equal to the
       power state declared in element 1 of the _PRW object."
      
      In other words, the state returned by _PRW is the deepest
      (lowest-power) system sleep state the device is capable of waking up
      the system from.
      
      Moreover, acpi_pm_device_sleep_state() also should check if the
      wakeup capability is supported through ACPI, because in principle it
      may be done via native PCIe PME, for example, in which case _SxW
      should not be evaluated.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      dbe9a2ed
    • D
      ACPI / PM: Generate wakeup events on fixed power button · c10d7a13
      Daniel Drake 提交于
      When the system is woken up by the ACPI fixed power button, currently there
      is no way of userspace becoming aware that the power button was pressed.
      
      OLPC would like to know this, so that we can respond appropriately.
      For example, if the system was woken up by a network packet, we know
      we can go back to sleep very quickly. But if the user explicitly woke the
      system with the power button, we're going to want to stay awake for a
      while.
      
      The wakeup count mechanism seems like a good fit for communicating this.
      Mark the fixed power button as wakeup-enabled, and increment its wakeup
      counter when the system is woken with the power button. (The wakeup counter
      is also incremented when the power button is pressed during system
      operation; this is already handled by an existing acpi-button codepath).
      Signed-off-by: NDaniel Drake <dsd@laptop.org>
      Acked-by: NZhang Rui <rui.zhang@intel.com>
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      c10d7a13
  14. 09 5月, 2012 2 次提交
  15. 08 5月, 2012 1 次提交
  16. 24 4月, 2012 1 次提交
  17. 30 3月, 2012 1 次提交
  18. 27 3月, 2012 2 次提交
  19. 22 3月, 2012 1 次提交
  20. 21 1月, 2012 1 次提交
  21. 07 12月, 2011 1 次提交
  22. 05 11月, 2011 1 次提交
  23. 22 10月, 2011 1 次提交
  24. 17 10月, 2011 2 次提交
  25. 30 7月, 2011 1 次提交
  26. 15 3月, 2011 1 次提交
  27. 25 2月, 2011 5 次提交