1. 17 7月, 2012 1 次提交
  2. 22 3月, 2012 1 次提交
  3. 17 1月, 2012 1 次提交
  4. 19 1月, 2011 1 次提交
  5. 12 1月, 2011 3 次提交
  6. 25 9月, 2010 1 次提交
    • R
      ACPI / ACPICA: Defer enabling of runtime GPEs (v3) · a2100801
      Rafael J. Wysocki 提交于
      The current ACPI GPEs initialization code has a problem that it
      enables some GPEs pointed to by device _PRW methods, generally
      intended for signaling wakeup events (system or device wakeup).
      These GPEs are then almost immediately disabled by the ACPI namespace
      scanning code with the help of acpi_gpe_can_wake(), but it would be
      better not to enable them at all until really necessary.
      
      Modify the initialization of GPEs so that the ones that have
      associated _Lxx or _Exx methods and are not pointed to by any _PRW
      methods will be enabled after the namespace scan is complete.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      a2100801
  7. 13 7月, 2010 2 次提交
    • R
      ACPI / ACPICA: Simplify acpi_ev_initialize_gpe_block() · a0d46871
      Rafael J. Wysocki 提交于
      Simplify the main loop in acpi_ev_initialize_gpe_block() by
      rearranging code and removing the "enabled" label that is not
      necessary any more.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      a0d46871
    • R
      ACPI / ACPICA: Do not execute _PRW methods during initialization · 9874647b
      Rafael J. Wysocki 提交于
      Currently, during initialization ACPICA walks the entire ACPI
      namespace in search of any device objects with assciated _PRW
      methods.  All of the _PRW methods found are executed in the process
      to extract the GPE information returned by them, so that the GPEs in
      question can be marked as "able to wakeup" (more precisely, the
      ACPI_GPE_CAN_WAKE flag is set for them).  The only purpose of this
      exercise is to avoid enabling the CAN_WAKE GPEs automatically, even
      if there are _Lxx/_Exx methods associated with them.  However, it is
      both costly and unnecessary, because the host OS has to execute the
      _PRW methods anyway to check which devices can wake up the system
      from sleep states.  Moreover, it then uses full information
      returned by _PRW, including the GPE information, so it can take care
      of disabling the GPEs if necessary.
      
      Remove the code that walks the namespace and executes _PRW from
      ACPICA and modify comments to reflect that change.  Make
      acpi_bus_set_run_wake_flags() disable GPEs for wakeup devices
      so that they don't cause spurious wakeup events to be signaled.
      This not only reduces the complexity of the ACPICA initialization
      code, but in some cases it should reduce the kernel boot time as
      well.
      
      Unfortunately, for this purpose we need a new ACPICA function,
      acpi_gpe_can_wake(), to be called by the host OS in order to disable
      the GPEs that can wake up the system and were previously enabled by
      acpi_ev_initialize_gpe_block() or acpi_ev_update_gpes() (such a GPE
      should be disabled only once, because the initialization code enables
      it only once, but it may be pointed to by _PRW for multiple devices
      and that's why the additional function is necessary).
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      9874647b
  8. 07 7月, 2010 2 次提交
  9. 12 6月, 2010 1 次提交
    • R
      ACPI / ACPICA: Fix GPE initialization · ce43ace0
      Rafael J. Wysocki 提交于
      While developing the GPE reference counting code we overlooked the
      fact that acpi_ev_update_gpes() could have enabled GPEs before
      acpi_ev_initialize_gpe_block() was called.  As a result, some GPEs
      are enabled twice during the initialization.
      
      To fix this issue avoid calling acpi_enable_gpe() from
      acpi_ev_initialize_gpe_block() for the GPEs that have nonzero
      runtime reference counters.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      ce43ace0
  10. 06 5月, 2010 2 次提交
  11. 20 4月, 2010 2 次提交
  12. 23 2月, 2010 1 次提交
    • 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
  13. 23 1月, 2010 1 次提交
  14. 25 11月, 2009 1 次提交
  15. 27 8月, 2009 1 次提交
  16. 28 3月, 2009 1 次提交
  17. 27 3月, 2009 1 次提交
  18. 09 1月, 2009 2 次提交
  19. 31 12月, 2008 3 次提交
  20. 30 12月, 2008 1 次提交
  21. 17 7月, 2008 1 次提交
  22. 24 4月, 2008 1 次提交
  23. 03 7月, 2007 1 次提交
  24. 10 5月, 2007 1 次提交
  25. 03 2月, 2007 4 次提交
  26. 14 6月, 2006 2 次提交
    • B
      ACPI: ACPICA 20060421 · b229cf92
      Bob Moore 提交于
      Removed a device initialization optimization introduced in
      20051216 where the _STA method was not run unless an _INI
      was also present for the same device. This optimization
      could cause problems because it could allow _INI methods
      to be run within a not-present device subtree (If a
      not-present device had no _INI, _STA would not be run,
      the not-present status would not be discovered, and the
      children of the device would be incorrectly traversed.)
      
      Implemented a new _STA optimization where namespace
      subtrees that do not contain _INI are identified and
      ignored during device initialization. Selectively running
      _STA can significantly improve boot time on large machines
      (with assistance from Len Brown.)
      
      Implemented support for the device initialization case
      where the returned _STA flags indicate a device not-present
      but functioning. In this case, _INI is not run, but the
      device children are examined for presence, as per the
      ACPI specification.
      
      Implemented an additional change to the IndexField support
      in order to conform to MS behavior. The value written to
      the Index Register is not simply a byte offset, it is a
      byte offset in units of the access width of the parent
      Index Field. (Fiodor Suietov)
      
      Defined and deployed a new OSL interface,
      acpi_os_validate_address().  This interface is called during
      the creation of all AML operation regions, and allows
      the host OS to exert control over what addresses it will
      allow the AML code to access. Operation Regions whose
      addresses are disallowed will cause a runtime exception
      when they are actually accessed (will not affect or abort
      table loading.)
      
      Defined and deployed a new OSL interface,
      acpi_os_validate_interface().  This interface allows the host OS
      to match the various "optional" interface/behavior strings
      for the _OSI predefined control method as appropriate
      (with assistance from Bjorn Helgaas.)
      
      Restructured and corrected various problems in the
      exception handling code paths within DsCallControlMethod
      and DsTerminateControlMethod in dsmethod (with assistance
      from Takayoshi Kochi.)
      
      Modified the Linux source converter to ignore quoted string
      literals while converting identifiers from mixed to lower
      case. This will correct problems with the disassembler
      and other areas where such strings must not be modified.
      
      The ACPI_FUNCTION_* macros no longer require quotes around
      the function name. This allows the Linux source converter
      to convert the names, now that the converter ignores
      quoted strings.
      Signed-off-by: NBob Moore <robert.moore@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      b229cf92
    • B
      [ACPI] ACPICA 20060317 · 61686124
      Bob Moore 提交于
      Implemented the use of a cache object for all internal
      namespace nodes. Since there are about 1000 static nodes
      in a typical system, this will decrease memory use for
      cache implementations that minimize per-allocation overhead
      (such as a slab allocator.)
      
      Removed the reference count mechanism for internal
      namespace nodes, since it was deemed unnecessary. This
      reduces the size of each namespace node by about 5%-10%
      on all platforms. Nodes are now 20 bytes for the 32-bit
      case, and 32 bytes for the 64-bit case.
      
      Optimized several internal data structures to reduce
      object size on 64-bit platforms by packing data within
      the 64-bit alignment. This includes the frequently used
      ACPI_OPERAND_OBJECT, of which there can be ~1000 static
      instances corresponding to the namespace objects.
      
      Added two new strings for the predefined _OSI method:
      "Windows 2001.1 SP1" and "Windows 2006".
      
      Split the allocation tracking mechanism out to a separate
      file, from utalloc.c to uttrack.c. This mechanism appears
      to be only useful for application-level code. Kernels may
      wish to not include uttrack.c in distributions.
      
      Removed all remnants of the obsolete ACPI_REPORT_* macros
      and the associated code. (These macros have been replaced
      by the ACPI_ERROR and ACPI_WARNING macros.)
      Signed-off-by: NBob Moore <robert.moore@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      61686124
  27. 01 4月, 2006 1 次提交
    • B
      ACPI: ACPICA 20060310 · 8313524a
      Bob Moore 提交于
      Tagged all external interfaces to the subsystem with the
      new ACPI_EXPORT_SYMBOL macro. This macro can be defined
      as necessary to assist kernel integration. For Linux,
      the macro resolves to the EXPORT_SYMBOL macro. The default
      definition is NULL.
      
      Added the ACPI_THREAD_ID type for the return value from
      acpi_os_get_thread_id(). This allows the host to define this
      as necessary to simplify kernel integration. The default
      definition is ACPI_NATIVE_UINT.
      
      Valery Podrezov fixed two interpreter problems related
      to error processing, the deletion of objects, and placing
      invalid pointers onto the internal operator result stack.
      http://bugzilla.kernel.org/show_bug.cgi?id=6028
      http://bugzilla.kernel.org/show_bug.cgi?id=6151
      
      Increased the reference count threshold where a warning is
      emitted for large reference counts in order to eliminate
      unnecessary warnings on systems with large namespaces
      (especially 64-bit.) Increased the value from 0x400
      to 0x800.
      
      Due to universal disagreement as to the meaning of the
      'c' in the calloc() function, the ACPI_MEM_CALLOCATE
      macro has been renamed to ACPI_ALLOCATE_ZEROED so that the
      purpose of the interface is 'clear'. ACPI_MEM_ALLOCATE and
      ACPI_MEM_FREE are renamed to ACPI_ALLOCATE and ACPI_FREE.
      Signed-off-by: NBob Moore <robert.moore@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      8313524a