1. 13 7月, 2010 1 次提交
    • 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
  2. 06 5月, 2010 1 次提交
  3. 23 1月, 2010 3 次提交
  4. 25 11月, 2009 1 次提交
  5. 29 8月, 2009 1 次提交
  6. 27 5月, 2009 4 次提交
  7. 28 3月, 2009 1 次提交
  8. 27 3月, 2009 1 次提交
  9. 09 1月, 2009 2 次提交
  10. 31 12月, 2008 1 次提交
  11. 23 10月, 2008 4 次提交
  12. 15 8月, 2008 1 次提交
  13. 17 7月, 2008 1 次提交
  14. 12 6月, 2008 1 次提交
  15. 24 4月, 2008 1 次提交
  16. 23 4月, 2008 8 次提交
  17. 03 2月, 2007 5 次提交
  18. 10 7月, 2006 1 次提交
    • B
      ACPI: ACPICA 20060707 · f6dd9221
      Bob Moore 提交于
      Added the ACPI_PACKED_POINTERS_NOT_SUPPORTED macro to
      support C compilers that do not allow the initialization
      of address pointers within packed structures - even though
      the hardware itself may support misaligned transfers. Some
      of the debug data structures are packed by default to
      minimize size.
      
      Added an error message for the case where
      acpi_os_get_thread_id() returns zero. A non-zero value is
      required by the core ACPICA code to ensure the proper
      operation of AML mutexes and recursive control methods.
      
      The DSDT is now the only ACPI table that determines whether
      the AML interpreter is in 32-bit or 64-bit mode. Not really
      a functional change, but the hooks for per-table 32/64
      switching have been removed from the code. A clarification
      to the ACPI specification is forthcoming in ACPI 3.0B.
      
      Fixed a possible leak of an Owner ID in the error
      path of tbinstal.c acpi_tb_init_table_descriptor() and
      migrated all table OwnerID deletion to a single place in
      acpi_tb_uninstall_table() to correct possible leaks when using
      the acpi_tb_delete_tables_by_type() interface (with assistance
      from Lance Ortiz.)
      
      Fixed a problem with Serialized control methods where the
      semaphore associated with the method could be over-signaled
      after multiple method invocations.
      
      Fixed two issues with the locking of the internal
      namespace data structure. Both the Unload() operator and
      acpi_unload_table() interface now lock the namespace during
      the namespace deletion associated with the table unload
      (with assistance from Linn Crosetto.)
      
      Fixed problem reports (Valery Podrezov) integrated: -
      Eliminate unnecessary memory allocation for CreateXxxxField
      http://bugzilla.kernel.org/show_bug.cgi?id=5426
      
      Fixed problem reports (Fiodor Suietov) integrated: -
      Incomplete cleanup branches in AcpiTbGetTableRsdt (BZ 369)
      - On Address Space handler deletion, needless deactivation
      call (BZ 374) - AcpiRemoveAddressSpaceHandler: validate
      Device handle parameter (BZ 375) - Possible memory leak,
      Notify sub-objects of Processor, Power, ThermalZone (BZ
      376) - AcpiRemoveAddressSpaceHandler: validate Handler
      parameter (BZ 378) - Minimum Length of RSDT should be
      validated (BZ 379) - AcpiRemoveNotifyHandler: return
      AE_NOT_EXIST if Processor Obj has no Handler (BZ (380)
      - AcpiUnloadTable: return AE_NOT_EXIST if no table of
      specified type loaded (BZ 381)
      Signed-off-by: NBob Moore <robert.moore@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      f6dd9221
  19. 28 6月, 2006 1 次提交
    • B
      ACPI: ACPICA 20060623 · 967440e3
      Bob Moore 提交于
      Implemented a new acpi_spinlock type for the OSL lock
      interfaces.  This allows the type to be customized to
      the host OS for improved efficiency (since a spinlock is
      usually a very small object.)
      
      Implemented support for "ignored" bits in the ACPI
      registers.  According to the ACPI specification, these
      bits should be preserved when writing the registers via
      a read/modify/write cycle. There are 3 bits preserved
      in this manner: PM1_CONTROL[0] (SCI_EN), PM1_CONTROL[9],
      and PM1_STATUS[11].
      http://bugzilla.kernel.org/show_bug.cgi?id=3691
      
      Implemented the initial deployment of new OSL mutex
      interfaces.  Since some host operating systems have
      separate mutex and semaphore objects, this feature was
      requested. The base code now uses mutexes (and the new
      mutex interfaces) wherever a binary semaphore was used
      previously. However, for the current release, the mutex
      interfaces are defined as macros to map them to the
      existing semaphore interfaces.
      
      Fixed several problems with the support for the control
      method SyncLevel parameter. The SyncLevel now works
      according to the ACPI specification and in concert with the
      Mutex SyncLevel parameter, since the current SyncLevel is
      a property of the executing thread. Mutual exclusion for
      control methods is now implemented with a mutex instead
      of a semaphore.
      
      Fixed three instances of the use of the C shift operator
      in the bitfield support code (exfldio.c) to avoid the use
      of a shift value larger than the target data width. The
      behavior of C compilers is undefined in this case and can
      cause unpredictable results, and therefore the case must
      be detected and avoided.  (Fiodor Suietov)
      
      Added an info message whenever an SSDT or OEM table
      is loaded dynamically via the Load() or LoadTable()
      ASL operators. This should improve debugging capability
      since it will show exactly what tables have been loaded
      (beyond the tables present in the RSDT/XSDT.)
      Signed-off-by: NBob Moore <robert.moore@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      967440e3
  20. 14 6月, 2006 1 次提交
    • B
      ACPI: ACPICA 20060526 · 4119532c
      Bob Moore 提交于
      Restructured, flattened, and simplified the internal
      interfaces for namespace object evaluation - resulting
      in smaller code, less CPU stack use, and fewer
      interfaces. (With assistance from Mikhail Kouzmich)
      
      Fixed a problem with the CopyObject operator where the
      first parameter was not typed correctly for the parser,
      interpreter, compiler, and disassembler. Caused various
      errors and unexpected behavior.
      
      Fixed a problem where a ShiftLeft or ShiftRight of
      more than 64 bits produced incorrect results with some
      C compilers. Since the behavior of C compilers when
      the shift value is larger than the datatype width is
      apparently not well defined, the interpreter now detects
      this condition and simply returns zero as expected in all
      such cases. (BZ 395)
      
      Fixed problem reports (Valery Podrezov) integrated: -
      Update String-to-Integer conversion to match ACPI 3.0A spec
      http://bugzilla.kernel.org/show_bug.cgi?id=5329
      Allow interpreter to handle nested method declarations
      http://bugzilla.kernel.org/show_bug.cgi?id=5361
      
      Fixed problem reports (Fiodor Suietov) integrated: -
      acpi_terminate() doesn't free debug memory allocation
      list objects (BZ 355) - After Core Subsystem
      shutdown, acpi_subsystem_status() returns AE_OK (BZ 356) -
      acpi_os_unmap_memory() for RSDP can be invoked inconsistently
      (BZ 357) - Resource Manager should return AE_TYPE for
      non-device objects (BZ 358) - Incomplete cleanup branch
      in AcpiNsEvaluateRelative (BZ 359) - Use acpi_os_free()
      instead of ACPI_FREE in acpi_rs_set_srs_method_data (BZ 360)
      - Incomplete cleanup branch in acpi_ps_parse_aml (BZ 361) -
      Incomplete cleanup branch in acpi_ds_delete_walk_state (BZ 362)
      - acpi_get_table_header returns AE_NO_ACPI_TABLES until DSDT
      is loaded (BZ 365) - Status of the Global Initialization
      Handler call not used (BZ 366) - Incorrect object parameter
      to Global Initialization Handler (BZ 367)
      Signed-off-by: NBob Moore <robert.moore@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      4119532c