1. 23 2月, 2010 2 次提交
    • R
      PCI / ACPI / PM: Platform support for PCI PME wake-up · b67ea761
      Rafael J. Wysocki 提交于
      Although the majority of PCI devices can generate PMEs that in
      principle may be used to wake up devices suspended at run time,
      platform support is generally necessary to convert PMEs into wake-up
      events that can be delivered to the kernel.  If ACPI is used for this
      purpose, PME signals generated by a PCI device will trigger the ACPI
      GPE associated with the device to generate an ACPI wake-up event that
      we can set up a handler for, provided that everything is configured
      correctly.
      
      Unfortunately, the subset of PCI devices that have GPEs associated
      with them is quite limited.  The devices without dedicated GPEs have
      to rely on the GPEs associated with other devices (in the majority of
      cases their upstream bridges and, possibly, the root bridge) to
      generate ACPI wake-up events in response to PME signals from them.
      
      Add ACPI platform support for PCI PME wake-up:
      o Add a framework making is possible to use ACPI system notify
        handlers for run-time PM.
      o Add new PCI platform callback ->run_wake() to struct
        pci_platform_pm_ops allowing us to enable/disable the platform to
        generate wake-up events for given device.  Implemet this callback
        for the ACPI platform.
      o Define ACPI wake-up handlers for PCI devices and PCI root buses and
        make the PCI-ACPI binding code register wake-up notifiers for all
        PCI devices present in the ACPI tables.
      o Add function pci_dev_run_wake() which can be used by PCI drivers to
        check if given device is capable of generating wake-up events at
        run time.
      
      Developed in cooperation with Matthew Garrett <mjg@redhat.com>.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      b67ea761
    • R
      ACPI / PM: Add more run-time wake-up fields · f517709d
      Rafael J. Wysocki 提交于
      Use the run_wake flag to mark all devices for which run-time wake-up
      events may be generated by the platform.  Introduce a new wake-up
      flag, always_enabled, for marking devices that should be permanently
      enabled to generate run-time events.  Also, introduce a reference
      counter for run-wake devices and a function that will initialize all
      of the run-time wake-up fields for given device.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: NLen Brown <len.brown@intel.com>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      f517709d
  2. 01 2月, 2010 2 次提交
  3. 25 11月, 2009 1 次提交
  4. 02 10月, 2009 1 次提交
  5. 26 9月, 2009 23 次提交
  6. 19 9月, 2009 1 次提交
  7. 10 9月, 2009 1 次提交
    • R
      ACPI PM: Replace wakeup.prepared with reference counter · 9b83ccd2
      Rafael J. Wysocki 提交于
      The wakeup.prepared flag is used for marking devices that have the
      wake-up power already enabled, so that the wake-up power is not
      enabled twice in a row for the same device.  This assumes, however,
      that device wake-up power will only be enabled once, while the device
      is being prepared for a system-wide sleep transition, and the second
      attempt is made by acpi_enable_wakeup_device_prep().
      
      With the upcoming PCI wake-up rework this assumption will not hold
      any more for PCI bridges and the root bridge whose wake-up power
      may be enabled as a result of wake-up enable propagation from other
      devices (eg. add-on devices that are not associated with any GPEs).
      Thus, there may be many attempts to enable wake-up power on a PCI
      bridge or the root bridge during a system power state transition
      and it's better to replace wakeup.prepared with a reference counter.
      Reviewed-by: NMatthew Garrett <mjg59@srcf.ucam.org>
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      9b83ccd2
  8. 06 9月, 2009 1 次提交
  9. 01 9月, 2009 1 次提交
  10. 27 8月, 2009 2 次提交
  11. 26 6月, 2009 1 次提交
  12. 24 6月, 2009 1 次提交
  13. 18 6月, 2009 2 次提交
  14. 07 4月, 2009 1 次提交