14 Jun, 2006

2 commits

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

    Bob Moore
     

01 Apr, 2006

1 commit

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

    Bob Moore
     

20 Jan, 2006

1 commit

  • Added 2006 copyright.

    At SuSE's suggestion, enabled all error messages
    without enabling function tracing, ie with CONFIG_ACPI_DEBUG=n

    Replaced all instances of the ACPI_DEBUG_PRINT macro invoked at
    the ACPI_DB_ERROR and ACPI_DB_WARN debug levels with
    the ACPI_REPORT_ERROR and ACPI_REPORT_WARNING macros,
    respectively. This preserves all error and warning messages
    in the non-debug version of the ACPICA code (this has been
    referred to as the "debug lite" option.) Over 200 cases
    were converted to create a total of over 380 error/warning
    messages across the ACPICA code. This increases the code
    and data size of the default non-debug version by about 13K.
    Added ACPI_NO_ERROR_MESSAGES flag to enable deleting all messages.
    The size of the debug version remains about the same.

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

    Bob Moore
     

10 Dec, 2005

3 commits

  • Modified the subsystem initialization sequence to improve
    GPE support. The GPE initialization has been split into
    two parts in order to defer execution of the _PRW methods
    (Power Resources for Wake) until after the hardware is
    fully initialized and the SCI handler is installed. This
    allows the _PRW methods to access fields protected by the
    Global Lock. This will fix systems where a NO_GLOBAL_LOCK
    exception has been seen during initialization.

    Fixed a regression with the ConcatenateResTemplate()
    ASL operator introduced in the 20051021 release.

    Implemented support for "local" internal ACPI object
    types within the debugger "Object" command and the
    acpi_walk_namespace() external interfaces. These local
    types include RegionFields, BankFields, IndexFields, Alias,
    and reference objects.

    Moved common AML resource handling code into a new file,
    "utresrc.c". This code is shared by both the Resource
    Manager and the AML Debugger.

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

    Bob Moore
     
  • Implemented support for the EM64T and other x86_64
    processors. This essentially entails recognizing
    that these processors support non-aligned memory
    transfers. Previously, all 64-bit processors were assumed
    to lack hardware support for non-aligned transfers.

    Completed conversion of the Resource Manager to nearly
    full table-driven operation. Specifically, the resource
    conversion code (convert AML to internal format and the
    reverse) and the debug code to dump internal resource
    descriptors are fully table-driven, reducing code and data
    size and improving maintainability.

    The OSL interfaces for Acquire and Release Lock now use a
    64-bit flag word on 64-bit processors instead of a fixed
    32-bit word. (Alexey Starikovskiy)

    Implemented support within the resource conversion code
    for the Type-Specific byte within the various ACPI 3.0
    *WordSpace macros.

    Fixed some issues within the resource conversion code for
    the type-specific flags for both Memory and I/O address
    resource descriptors. For Memory, implemented support
    for the MTP and TTP flags. For I/O, split the TRS and TTP
    flags into two separate fields.

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

    Bob Moore
     
  • Completed a major overhaul of the Resource Manager code -
    specifically, optimizations in the area of the AML/internal
    resource conversion code. The code has been optimized to
    simplify and eliminate duplicated code, CPU stack use has
    been decreased by optimizing function parameters and local
    variables, and naming conventions across the manager have
    been standardized for clarity and ease of maintenance (this
    includes function, parameter, variable, and struct/typedef
    names.)

    All Resource Manager dispatch and information tables have
    been moved to a single location for clarity and ease of
    maintenance. One new file was created, named "rsinfo.c".

    The ACPI return macros (return_ACPI_STATUS, etc.) have
    been modified to guarantee that the argument is
    not evaluated twice, making them less prone to macro
    side-effects. However, since there exists the possibility
    of additional stack use if a particular compiler cannot
    optimize them (such as in the debug generation case),
    the original macros are optionally available. Note that
    some invocations of the return_VALUE macro may now cause
    size mismatch warnings; the return_UINT8 and return_UINT32
    macros are provided to eliminate these. (From Randy Dunlap)

    Implemented a new mechanism to enable debug tracing for
    individual control methods. A new external interface,
    acpi_debug_trace(), is provided to enable this mechanism. The
    intent is to allow the host OS to easily enable and disable
    tracing for problematic control methods. This interface
    can be easily exposed to a user or debugger interface if
    desired. See the file psxface.c for details.

    acpi_ut_callocate() will now return a valid pointer if a
    length of zero is specified - a length of one is used
    and a warning is issued. This matches the behavior of
    acpi_ut_allocate().

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

    Bob Moore
     

22 Sep, 2005

1 commit

  • Fixed a problem within the Resource Manager where
    support for the Generic Register descriptor was not fully
    implemented. This descriptor is now fully recognized,
    parsed, disassembled, and displayed.

    Restructured the Resource Manager code to utilize
    table-driven dispatch and lookup, eliminating many of the
    large switch() statements. This reduces overall subsystem
    code size and code complexity. Affects the resource parsing
    and construction, disassembly, and debug dump output.

    Cleaned up and restructured the debug dump output for all
    resource descriptors. Improved readability of the output
    and reduced code size.

    Fixed a problem where changes to internal data structures
    caused the optional ACPI_MUTEX_DEBUG code to fail
    compilation if specified.

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

    Robert Moore
     

05 Aug, 2005

1 commit


17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds