25 Feb, 2011

1 commit

  • Commit bba63a2 (ACPICA: Implicit notify support) introduced a
    mechanism that causes a notify request of type
    ACPI_NOTIFY_DEVICE_WAKE to be queued automatically by
    acpi_ev_asynch_execute_gpe_method() for the device whose _PRW points
    to the GPE being handled if that GPE is not associated with an
    _Lxx/_Exx method. However, it turns out that on some systems there
    are multiple devices with _PRW pointing to the same GPE without
    _Lxx/_Exx and the mechanism introduced by commit bba63a2 needs to be
    extended so that "implicit" notify requests of type
    ACPI_NOTIFY_DEVICE_WAKE can be queued automatically for all those
    devices at the same time.

    Reported-and-tested-by: Matthew Garrett
    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     

12 Feb, 2011

1 commit

  • Some ACPI BIOSes define _PRW for the root object which causes
    acpi_setup_gpe_for_wake() to crash when trying to dereference the
    bogus device_node pointer. Avoid the crash by checking if
    wake_device is not the root object before attempting to set up the
    "implicit notify" mechanism for it.

    The problem was introduced by commit bba63a296ffab20e08d9e8252d2f0d99
    (ACPICA: Implicit notify support) that added the wake_device argument
    to acpi_setup_gpe_for_wake().

    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     

19 Jan, 2011

1 commit


12 Jan, 2011

4 commits

  • Modify/add some comments to minimize ACPICA/linux GPE code divergence.

    Acked-by: Rafael J. Wysocki
    Signed-off-by: Lin Ming
    Signed-off-by: Len Brown

    Lin Ming
     
  • This feature provides an automatic device notification for wake devices
    when a wakeup GPE occurs and there is no corresponding GPE method or
    handler. Rather than ignoring such a GPE, an implicit AML Notify
    operation is performed on the parent device object.
    This feature is not part of the ACPI specification and is provided for
    Windows compatibility only.

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

    Lin Ming
     
  • Some function and variable names are renamed to be consistent with
    ACPICA code base.

    acpi_raw_enable_gpe -> acpi_ev_add_gpe_reference
    acpi_raw_disable_gpe -> acpi_ev_remove_gpe_reference
    acpi_gpe_can_wake -> acpi_setup_gpe_for_wake
    acpi_gpe_wakeup -> acpi_set_gpe_wake_mask
    acpi_update_gpes -> acpi_update_all_gpes
    acpi_all_gpes_initialized -> acpi_gbl_all_gpes_initialized
    acpi_handler_info -> acpi_gpe_handler_info
    ...

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

    Lin Ming
     
  • Create a new file evxfgpe.c and move GPE specific functions to it.

    Acked-by: Rafael J. Wysocki
    Signed-off-by: Lin Ming
    Signed-off-by: Len Brown

    Lin Ming