1. 07 May, 2004 2 commits
    • Len Brown's avatar
      [ACPI] ACPICA 20040427 from Bob Moore · 5eb3a43d
      Len Brown authored
      Completed a major overhaul of the GPE handling within ACPI CA.
      There are now three types of GPEs:
      wake-only; runtime-only; combination wake/run.
      
      The only GPEs allowed to be combination wake/run are for
      button-style devices such as a control-method power button,
      control-method sleep button, or a notebook lid switch.
      GPEs that have an _Lxx or _Exx method and are not referenced
      by any _PRW methods are marked for "runtime" and hardware enabled.
      
      Any GPE that is referenced by a _PRW method is marked for "wake"
      (and disabled at runtime).  However, at sleep time, only those
      GPEs that have been specifically enabled for wake via the
      acpi_enable_gpe() interface will actually be hardware enabled.
      
      A new external interface has been added, acpi_set_gpe_type()
      that is meant to be used by device drivers to force a GPE
      to a particular type.  It will be especially useful for the
      drivers for the button devices mentioned above.
      
      Completed restructuring of the ACPI CA initialization sequence
      so that default operation region handlers are installed
      before GPEs are initialized and the _PRW methods are executed.
      This will prevent errors when the _PRW methods attempt to
      access system memory or I/O space.
      
      GPE enable/disable no longer reads the GPE enable register.
      We now keep the enable info for runtime and wake separate
      and in the GPE_EVENT_INFO.  We thus no longer depend on
      the hardware to maintain these bits.
      
      Always clear the wake status and fixed/GPE status bits
      before sleep, even for state S5.
      
      Improved the AML debugger output for displaying the
      GPE blocks and their current status.
      
      Added new strings for the _OSI method, of the form
      "Windows 2001 SPx" where x = 0,1,2,3,4.
      
      Fixed a problem where the physical address was incorrectly
      calculated when the Load() operator was used to directly
      load from an Operation Region (vs. loading from a Field object.)
      Also added check for minimum table length for this case.
      
      Fix for multiple mutex acquisition.  Restore original thread
      SyncLevel on mutex release.
      
      Added ACPI_VALID_SXDS flag to the acpi_get_object_info interface
      for consistency with the other fields returned.
      
      Shrunk the ACPI_GPE_EVENT_INFO structure by 40%.
      There is one such structure for each GPE in the system,
      so the size of this structure is important.
      
      CPU stack requirement reduction:
      Cleaned up the method execution and object evaluation paths
      so that now a parameter structure is passed, instead of copying
      the various method parameters over and over again.
      
      In evregion.c:
      Correctly exit and reenter the interpreter region if and only
      if dispatching an operation region request to a user-installed
      handler. Do not exit/reenter when dispatching to a default
      handler (e.g., default system memory or I/O handlers)
      5eb3a43d
    • Len Brown's avatar
      [ACPI] ACPICA 20040402 from Bob Moore · a308df02
      Len Brown authored
      Fixed an interpreter problem where an indirect store through an
      ArgX parameter was incorrectly applying the "implicit conversion
      rules" during the store.  From the ACPI specification: "If the
      target is a method local or argument (LocalX or ArgX), no
      conversion is performed and the result is stored directly to the
      target".  The new behavior is to disable implicit conversion
      during ALL stores to an ArgX.
      
      Changed the behavior of the _PRW method scan to ignore any and
      all errors returned by a given _PRW.  This prevents the scan from
      aborting from the failure of any single _PRW.
      
      Moved the runtime configuration parameters from the global init
      procedure to static variables in acglobal.h.  This will allow the
      host to override the default values easily.
      a308df02
  2. 03 May, 2004 1 commit
  3. 02 May, 2004 1 commit
  4. 30 Apr, 2004 1 commit
  5. 28 Apr, 2004 1 commit
  6. 27 Apr, 2004 8 commits
  7. 23 Apr, 2004 3 commits
  8. 22 Apr, 2004 2 commits
  9. 20 Apr, 2004 2 commits
  10. 16 Apr, 2004 1 commit
  11. 14 Apr, 2004 1 commit
  12. 03 Apr, 2004 9 commits
  13. 02 Apr, 2004 8 commits