Skip to content
  • Rafael J. Wysocki's avatar
    ACPICA: Make it possible to enable runtime GPEs earlier · 1312b7e0
    Rafael J. Wysocki authored
    
    
    Runtime GPEs have corresponding _Lxx/_Exx methods and are enabled
    automatically during the initialization of the ACPI subsystem through
    acpi_update_all_gpes() with the assumption that acpi_setup_gpe_for_wake()
    will be called in advance for all of the GPEs pointed to by _PRW
    objects in the namespace that may be affected by acpi_update_all_gpes().
    That is, acpi_ev_initialize_gpe_block() can only be called for a GPE
    block after acpi_setup_gpe_for_wake() has been called for all of the
    _PRW (wakeup) GPEs in it.
    
    The platform firmware on some systems, however, expects GPEs to be
    enabled before the enumeration of devices which is when
    acpi_setup_gpe_for_wake() is called and that goes against the above
    assumption.
    
    For this reason, introduce a new flag to be set by
    acpi_ev_initialize_gpe_block() when automatically enabling a GPE
    to indicate to acpi_setup_gpe_for_wake() that it needs to drop the
    reference to the GPE coming from acpi_ev_initialize_gpe_block()
    and modify acpi_setup_gpe_for_wake() accordingly.  These changes
    allow acpi_setup_gpe_for_wake() and acpi_ev_initialize_gpe_block()
    to be invoked in any order.
    
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    Tested-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
    1312b7e0