15 Nov, 2012

1 commit

  • Debugger improvements in ACPICA are always ignored by ACPICA Linux
    release. This will lead to divergences between Linux and ACPICA.
    This patch fixes such unmerged debugger updates.

    Following patches are included:
    1. Fixed a couple compiler warnings for extra extern
    Wed, 14 Mar 2007 21:12:19 +0000
    2. Cleanup for internal Reference Object.
    Wed, 27 Aug 2008 10:11:30 -0700
    3. Debugger: Lock method args for multithread command.
    Fri, 24 Apr 2009 12:28:49 -0700
    4. Debugger: Add max count argument for Batch command.
    Tue, 29 Sep 2009 12:31:58 -0700
    5. Add new host interfaces for _OSI support.
    Thu, 5 Aug 2010 14:18:28 -0700
    6. Increase debugger buffer size for method return objects.
    Wed, 17 Nov 2010 13:48:30 -0800
    7. Debugger: Add command to display status of global handlers.
    Tue, 25 Jan 2011 13:47:58 -0800
    8. Debugger: Split large dbcmds.c file.
    Wed, 26 Jan 2011 13:03:41 -0800
    9. Debugger/AcpiExec: Add support to pass complex args to methods.
    Tue, 17 May 2011 13:33:39 -0700
    10.Debugger: Add Template command to dump resource templates.
    Fri, 28 Oct 2011 14:18:51 -0700
    11.Support for custom ACPICA build for ACPI 5.0 reduced hardware.
    Wed, 1 Feb 2012 13:18:17 -0800
    12.Debugger: Improve command help support.
    Wed, 15 Feb 2012 07:59:26 -0800
    13.Update ACPI_HW_DEPENDENT* macro invocations.
    Wed, 15 Feb 2012 08:14:08 -0800
    14.Debugger: Rename function to simplify source code conversion.
    Wed, 13 Jun 2012 14:23:06 -0700
    15.Debugger: Enhance "Tables" and "Unload" commands.
    Fri, 29 Jun 2012 13:10:58 -0700
    16.Debugger: update prototype for AcpiDbSleep function.
    Fri, 17 Aug 2012 13:43:02 -0700

    This patch will not affect the generated vmlinx binary.
    This will decrease 264 lines of 20120913 divergence.diff.

    Signed-off-by: Robert Moore
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     

22 Mar, 2012

1 commit


09 Jan, 2009

1 commit


31 Dec, 2008

1 commit

  • acpi.h now includes only the "public" acpica headers. All other
    acpica headers are "private" and should not be included by acpica
    users. One new file, accommon.h is used to include the commonly
    used private headers for acpica code generation. Future plans
    are to move all private headers to a new subdirectory.

    Signed-off-by: Bob Moore
    Signed-off-by: Lin Ming
    Signed-off-by: Len Brown

    Bob Moore
     

30 Dec, 2008

2 commits


23 Oct, 2008

4 commits


17 Jul, 2008

2 commits


24 Apr, 2008

1 commit


23 Apr, 2008

10 commits


03 Feb, 2007

11 commits


02 Jan, 2007

1 commit

  • We have some new larger ia64 systems in HP that trip over the
    ACPI_MAX_REFERENCE_COUNT limit which triggers a large number of these
    debug messages:

    ACPI Warning (utdelete-0397): Large Reference Count (XXX) in object e0000a0ff6797ab0 [20060707]

    This was increased once in the past as described in this very brief thread:

    http://www.mail-archive.com/linux-acpi@vger.kernel.org/msg00890.html

    Signed-off-by: Doug Chapman
    Signed-off-by: Len Brown

    Doug Chapman
     

10 Jul, 2006

1 commit

  • 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: Bob Moore
    Signed-off-by: Len Brown

    Bob Moore
     

28 Jun, 2006

1 commit

  • 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: Bob Moore
    Signed-off-by: Len Brown

    Bob Moore
     

14 Jun, 2006

3 commits

  • Converted the locking mutex used for the ACPI hardware
    to a spinlock. This change should eliminate all problems
    caused by attempting to acquire a semaphore at interrupt
    level, and it means that all ACPICA external interfaces
    that directly access the ACPI hardware can be safely
    called from interrupt level.

    Fixed a regression introduced in 20060526 where the ACPI
    device initialization could be prematurely aborted with
    an AE_NOT_FOUND if a device did not have an optional
    _INI method.

    Fixed an IndexField issue where a write to the Data
    Register should be limited in size to the AccessSize
    (width) of the IndexField itself. (BZ 433, Fiodor Suietov)

    Fixed problem reports (Valery Podrezov) integrated: - Allow
    store of ThermalZone objects to Debug object.
    http://bugzilla.kernel.org/show_bug.cgi?id=5369
    http://bugzilla.kernel.org/show_bug.cgi?id=5370

    Fixed problem reports (Fiodor Suietov) integrated: -
    acpi_get_table_header() doesn't handle multiple instances
    correctly (BZ 364)

    Removed four global mutexes that were obsolete and were
    no longer being used.

    Signed-off-by: Bob Moore
    Signed-off-by: Len Brown

    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: Bob Moore
    Signed-off-by: Len Brown

    Bob Moore
     
  • Replaced the acpi_os_queue_for_execution() with a new
    interface named acpi_os_execute(). The major difference is
    that the new interface does not have a Priority parameter,
    this appeared to be useless and has been replaced by
    a Type parameter. The Type tells the OS what type of
    execution is being requested, such as global lock handler,
    notify handler, GPE handler, etc. This allows the host
    to queue and execute the request as appropriate for the
    request type, possibly using different work queues and
    different priorities for the various request types. This
    enables fixes for multithreading deadlock problems such as
    http://bugzilla.kernel.org/show_bug.cgi?id=5534
    (Alexey Starikovskiy and Bob Moore)

    Fixed a possible memory leak associated with the
    support for the so-called "implicit return" ACPI
    extension. Reported by FreeBSD (Fiodor Suietov)
    http://bugzilla.kernel.org/show_bug.cgi?id=6514

    Fixed a problem with the Load() operator where a table
    load from an operation region could overwrite an internal
    table buffer by up to 7 bytes and cause alignment faults
    on IPF systems. (With assistance from Luming Yu)

    Signed-off-by: Bob Moore
    Signed-off-by: Len Brown

    Bob Moore