1. 12 6月, 2010 2 次提交
  2. 12 5月, 2010 1 次提交
    • L
      ACPICA: simplify SCI_EN workaround · b430acbd
      Len Brown 提交于
      acpi_hw_set_mode() double checks its effectiveness
      by calling acpi_hw_get_mode() -- polling up to 3 seconds.
      
      It would be more logical for its caller, acpi_enable()
      acpi_enable() to do the double-checking.  (lets assume
      that acpi_disable() isn't interesting)
      
      The ACPI specification is unclear on this point.
      Some parts say that the BIOS sets SCI_EN and then returns to the OS,
      but one part says "OSPM polls the SCI_EN bit until it is sampled SET".
      
      The systems I have on hand do the former,
      SCI_EN is observed to be set upon return from the BIOS.
      
      So we move the check up out of acpi_hw_set_mode()
      up into acpi_enable() where it makes logical sense.
      
      Then we replace the 3-second polling loop
      with a single check.  If this check fails, we'll see:
      
      	"Hardware did not enter ACPI mode"
      
      and the system will bail out of ACPI initialization
      and likely fail to boot.  If we see that in practice,
      we can restore the polling, but put it into acpi_enable.
      
      This patch is important if acpi_enable() is used in
      the resume from S3 path.  Many systems today are seen
      coming back from S3 with SCI_EN off, and then failing
      to set SCI_EN in response to acpi_enable().  Those systems
      will take 3 seconds longer to resume due to this loop.
      
      However, it is possible that we will not use acpi_enable()
      in the S3 resume path, and bang SCI_EN directly, which
      would make the loop harmless, as it would be invisible
      to all systems except those that need it.
      Signed-off-by: NLen Brown <len.brown@intel.com>
      b430acbd
  3. 06 5月, 2010 5 次提交
  4. 20 4月, 2010 11 次提交
  5. 17 4月, 2010 1 次提交
  6. 23 3月, 2010 1 次提交
    • R
      ACPI / ACPICA: Do not check reference counters in acpi_ev_enable_gpe() · bf02bd25
      Rafael J. Wysocki 提交于
      acpi_ev_enable_gpe() should enable the GPE at the hardware level
      regardless of the value of the GPE's runtime reference counter.
      
      There are only two callers of acpi_ev_enable_gpe(), acpi_enable_gpe()
      and acpi_set_gpe().  The first one checks the GPE's runtime
      reference counter itself and only calls acpi_ev_enable_gpe() if it's
      equal to one, and the other one is supposed to enable the GPE
      unconditionally (if called with ACPI_GPE_ENABLE).
      
      This change fixes the problem in acpi_enable_wakeup_device() where
      the GPE will not be enabled for wakeup if it's runtime reference
      counter is zero, which is a regression from 2.6.33.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Reported-by: NRobert Moore <robert.moore@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      bf02bd25
  7. 18 3月, 2010 1 次提交
  8. 25 2月, 2010 1 次提交
    • R
      ACPI: Use GPE reference counting to support shared GPEs · cbbc0de7
      Rafael J. Wysocki 提交于
      To fix a bug and address the reviewers' comments regarding the ACPI
      GPE refcounting patch, do the following additional changes:
      
      o Remove the second argument of acpi_ev_enable_gpe(),
        'write_to_hardware', because it is not necessary any more.
      
      o Add the "bad parameter" test against 'type' in
        acpi_enable_gpe() and acpi_disable_gpe().
      
      o Make acpi_enable_gpe() only check 'status' for runtime GPEs if
        acpi_ev_enable_gpe() was actually called.
      
      o Make acpi_disable_gpe() return 'status' returned by
        acpi_ev_disable_gpe() and fix a bug where ACPI_GPE_TYPE_WAKE
        and ACPI_GPE_TYPE_RUNTIME were exchanged by mistake.
      
      o Add comments explaining why acpi_set_gpe() is used by the ACPI EC
        driver.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      cbbc0de7
  9. 23 2月, 2010 2 次提交
    • R
      ACPI / ACPICA: Multiple system notify handlers per device · 3f0be671
      Rafael J. Wysocki 提交于
      Currently it only is possible to install one system notify handler
      per namespace node, but this is not enough for PCI run-time power
      management, because we need to install power management notifiers for
      devices that already have hotplug notifiers installed.  While in
      principle this could be handled at the PCI level, that would be
      suboptimal due to the way in which the ACPI-based PCI hotplug code is
      designed.
      
      For this reason, modify ACPICA so that it is possible to install more
      than one system notify handler per namespace node.  Namely, make
      acpi_install_notify_handler(), acpi_remove_notify_handler() and
      acpi_ev_notify_dispatch() use a list of system notify handler objects
      associated with a namespace node.
      
      Make acpi_remove_notify_handler() call acpi_os_wait_events_complete()
      upfront to avoid a situation in which concurrent instance of
      acpi_remove_notify_handler() removes the handler from under us while
      we're waiting for the event queues to flush.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      3f0be671
    • R
      ACPI: Use GPE reference counting to support shared GPEs · 9630bdd9
      Rafael J. Wysocki 提交于
      ACPI GPEs may map to multiple devices.  The current GPE interface
      only provides a mechanism for enabling and disabling GPEs, making
      it difficult to change the state of GPEs at runtime without extensive
      cooperation between devices.
      
      Add an API to allow devices to indicate whether or not they want
      their device's GPE to be enabled for both runtime and wakeup events.
      
      Remove the old GPE type handling entirely, which gets rid of various
      quirks, like the implicit disabling with GPE type setting. This
      requires a small amount of rework in order to ensure that non-wake
      GPEs are enabled by default to preserve existing behaviour.
      
      Based on patches from Matthew Garrett <mjg@redhat.com>.
      Signed-off-by: NMatthew Garrett <mjg@redhat.com>
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      9630bdd9
  10. 16 2月, 2010 1 次提交
  11. 23 1月, 2010 6 次提交
  12. 16 12月, 2009 8 次提交