1. 02 12月, 2020 1 次提交
  2. 09 10月, 2020 1 次提交
  3. 27 7月, 2020 1 次提交
  4. 05 6月, 2020 1 次提交
  5. 09 5月, 2020 1 次提交
  6. 30 3月, 2020 2 次提交
  7. 25 3月, 2020 1 次提交
  8. 22 2月, 2020 1 次提交
  9. 12 2月, 2020 1 次提交
  10. 13 1月, 2020 2 次提交
  11. 20 12月, 2019 1 次提交
  12. 29 10月, 2019 3 次提交
  13. 21 8月, 2019 1 次提交
  14. 23 7月, 2019 1 次提交
  15. 04 7月, 2019 1 次提交
  16. 13 5月, 2019 1 次提交
  17. 09 4月, 2019 2 次提交
  18. 25 2月, 2019 1 次提交
  19. 18 2月, 2019 1 次提交
    • E
      ACPICA: Remove legacy module-level code support · aa342261
      Erik Schmauss 提交于
      ACPICA commit 47f5607c204719d9239a12b889df725225098c8f
      
      Module-level code refers to executable ASL code that runs during
      table load. This is typically used in ASL to declare named objects
      based on a condition evaluated during table load like so:
      
      definition_block(...)
      {
        opreation_region (OPR1, system_memory, ...)
        Field (OPR1)
        {
          FLD1, 8 /* Assume that FLD1's value is 0x1 */
        }
      
        /* The if statement below is referred to as module-level code */
      
        If (FLD1)
        {
          /* Declare DEV1 conditionally */
          Device (DEV1) {...}
        }
      
        Device (DEV2)
        {
          ...
        }
      }
      
      In legacy module-level code, the execution of the If statement
      was deferred after other modules were loaded. The order of
      code execution for the table above is the following:
      
      1.) Load OPR1 to the ACPI Namespace
      2.) Load FLD1 to the ACPI Namespace (not intended for drivers)
      3.) Load DEV2 to the ACPI Namespace
      4.) Execute If (FLD1) and load DEV1 if the condition is true
      
      This legacy approach can be problematic for tables that look like the
      following:
      
      definition_block(...)
      {
        opreation_region (OPR1, system_memory, ...)
        Field (OPR1)
        {
          FLD1, 8 /* Assume that FLD1's value is 0x1 */
        }
      
        /* The if statement below is referred to as module-level code */
      
        If (FLD1)
        {
          /* Declare DEV1 conditionally */
          Device (DEV1) {...}
        }
      
        Scope (DEV1)
        {
          /* Add objects DEV1's scope */
          Name (OBJ1, 0x1234)
        }
      }
      
      When loading this in the legacy approach, Scope DEV1 gets evaluated
      before the If statement. The following is the order of execution:
      
      1.) Load OPR1 to the ACPI Namespace
      2.) Load FLD1 to the ACPI Namespace (not intended for drivers)
      3.) Add OBJ1 under DEV1's scope -- ERROR. DEV1 does not exist
      4.) Execute If (FLD1) and load DEV1 if the condition is true
      
      The legacy approach can never succeed for tables like this due to the
      deferral of the module-level code. Due to this limitation, a new
      module-level code was developed. This new approach exeutes if
      statements in the order that they appear in the definition block.
      With this approach, the order of execution for the above defintion
      block is as follows:
      
      1.) Load OPR1 to the ACPI Namespace
      2.) Load FLD1 to the ACPI Namespace (not intended for drivers)
      3.) Execute If (FLD1) and load DEV1 because the condition is true
      4.) Add OBJ1 under DEV1's scope.
      
      Since DEV1 is loaded in the namespace in step 3, step 4 executes
      successfully.
      
      This change removes support for the legacy module-level code
      execution. From this point onward, the new module-level code
      execution will be the official approach.
      
      Link: https://github.com/acpica/acpica/commit/47f5607cSigned-off-by: NErik Schmauss <erik.schmauss@intel.com>
      Signed-off-by: NBob Moore <robert.moore@intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      aa342261
  20. 16 1月, 2019 3 次提交
  21. 14 12月, 2018 1 次提交
  22. 09 11月, 2018 1 次提交
  23. 18 10月, 2018 1 次提交
    • E
      ACPICA: Remove acpi_gbl_group_module_level_code and only use... · 08930d56
      Erik Schmauss 提交于
      ACPICA: Remove acpi_gbl_group_module_level_code and only use acpi_gbl_execute_tables_as_methods instead
      
      acpi_gbl_group_module_level_code and acpi_gbl_execute_tables_as_methods were
      used to enable different table load behavior. The different table
      load behaviors are as follows:
      
      A.) acpi_gbl_group_module_level_code enabled the legacy approach where
          ASL if statements are executed after the namespace object has
          been loaded.
      B.) acpi_gbl_execute_tables_as_methods is currently used to enable the
          table load to be a method invocation. This meaning that ASL If
          statements are executed in-line rather than deferred until after
          the ACPI namespace has been populated. This is the correct
          behavior and option A will be removed in the future.
      
      We do not support a table load behavior where these variables are
      assigned the same value. In otherwords, we only support option A or B
      and do not need acpi_gbl_group_module_level_code to enable A. From now on,
      acpi_gbl_execute_tables_as_methods == 0 enables option A and
      acpi_gbl_execute_tables_as_methods == 1 enables option B.
      
      Note: option A is expected to be removed in the future and option B
      will become the only supported table load behavior.
      Signed-off-by: NErik Schmauss <erik.schmauss@intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      08930d56
  24. 04 10月, 2018 1 次提交
  25. 15 8月, 2018 1 次提交
  26. 09 7月, 2018 1 次提交
  27. 06 6月, 2018 1 次提交
  28. 25 5月, 2018 1 次提交
  29. 18 5月, 2018 1 次提交
  30. 15 5月, 2018 1 次提交
  31. 19 3月, 2018 3 次提交