1. 05 4月, 2016 1 次提交
  2. 24 2月, 2016 1 次提交
  3. 16 1月, 2016 1 次提交
  4. 01 1月, 2016 1 次提交
  5. 26 8月, 2015 1 次提交
  6. 02 7月, 2015 1 次提交
  7. 05 2月, 2015 1 次提交
  8. 21 4月, 2014 7 次提交
    • B
      ACPICA: Table Manager: Misc cleanup and renames, no functional change. · ed6f1d44
      Bob Moore 提交于
      Some various cleanups and renames.
      Signed-off-by: NBob Moore <robert.moore@intel.com>
      Signed-off-by: NLv Zheng <lv.zheng@intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      ed6f1d44
    • L
      ACPICA: Tables: Add acpi_install_table() API for early table installation. · caf4a15c
      Lv Zheng 提交于
      This patch adds a new API - acpi_install_table(). OSPMs can use this API
      to install tables during early boot stage.  Lv Zheng.
      
      References: https://lkml.org/lkml/2014/2/28/372
      Cc: Thomas Renninger <trenn@suse.de>
      Signed-off-by: NLv Zheng <lv.zheng@intel.com>
      Signed-off-by: NBob Moore <robert.moore@intel.com>
      [rjw: Subject]
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      caf4a15c
    • L
      ACPICA: Tables: Cleanup ACPI_TABLE_ORIGIN_xxx flags. · 8a216d7f
      Lv Zheng 提交于
      This patch refines ACPI_TABLE_ORIGIN_xxx flags.  No functional changes.
      
      The previous commits have introduced the following internal APIs:
      1. acpi_tb_acquire_table: Acquire struct acpi_table_header according to
                             ACPI_TABLE_ORIGIN_xxx flags.
      2. acpi_tb_release_table: Release struct acpi_table_header according to
                             ACPI_TABLE_ORIGIN_xxx flags.
      3. acpi_tb_install_table: Make struct acpi_table_desc.Address not NULL according to
                             ACPI_TABLE_ORIGIN_xxx flags.
      4. acpi_tb_uninstall_table: Make struct acpi_table_desc.Address NULL according to
                               ACPI_TABLE_ORIGIN_xxx flags.
      5. acpi_tb_validate_table: Make struct acpi_table_desc.Pointer not NULL according to
                              ACPI_TABLE_ORIGIN_xxx flags.
      6. acpi_tb_invalidate_table: Make struct acpi_table_desc.Pointer NULL according to
                                ACPI_TABLE_ORIGIN_xxx flags.
      It thus detects that the ACPI_TABLE_ORIGIN_UNKNOWN is redundant to
      ACPI_TABLE_ORIGIN_OVERRIDE.
      
      The ACPI_TABLE_ORIGIN_xxTERN_VIRTUAL flags are named as VIRTUAL in order
      not to confuse with x86 logical address, this patch also renames all
      "logical override" into "virtual override".
      Signed-off-by: NLv Zheng <lv.zheng@intel.com>
      Signed-off-by: NBob Moore <robert.moore@intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      8a216d7f
    • L
      ACPICA: Tables: Fix table checksums verification before installation. · 86dfc6f3
      Lv Zheng 提交于
      The original table handling code does not always verify checksums before
      installing a table, this is because code to achieve this must be
      implemented here and there in the redundant code blocks.
      
      There are two stages during table initialization:
      1. "INSTALLED" after acpi_tb_install_table() and acpi_tb_override_table(),
         struct acpi_table_desc.Pointer is ensured to be NULL.  This can be safely used
         during OSPM's early boot stage.
      2. "VALIDATED" after acpi_tb_validate_table(), struct acpi_table_desc.Pointer is
         ensured to be not NULL.  This must not be used during OSPM's early boot
         stage.
      
      This patch changes acpi_tb_add_table() into an early boot safe API to reduce
      code redundancies by changing the table state that is returned by this
      function from "VALIDATED" to "INSTALLED".  Then the table verification
      code can be done in a single place.  Originally, the acpi_tb_add_table() can
      only be used by dynamic table loadings that are executed after early boot
      stage, it cannot be used by static table loadings that are executed in
      early boot stage as:
      1.  The address of the table is a virtual address either maintained by
          OSPMs who call acpi_load_table() or by ACPICA whenever "Load" or
          "LoadTable" opcodes are executed, while during early boot stage,
          physical address of the table should be used for table loading.
      2.  The API will ensure the state of the loaded table to be "VALIDATED"
          while during early boot stage, tables maintained by root table list
          should be kept as "INSTALLED".
      
      To achieve this:
      1. Rename acpi_tb_install_table() to acpi_tb_install_fixed_table() as it only
         applies to DSDT/FACS installation.  Rename acpi_tb_add_table() to
         acpi_tb_install_non_fixed_table() as it will be applied to the installation
         of the rest kinds of tables.
      2. Introduce acpi_tb_install_table(), acpi_tb_install_and_override_table to collect
         redudant code where their invocations actually have slight differences.
         1. acpi_tb_install_table() is used to fill an struct acpi_table_desc where the
            table length is known to the caller.
         2. acpi_tb_install_and_override_table() is used to perform necessary
            overriding before installation.
      3. Change a parameter of acpi_tb_install_non_fixed_table() from struct acpi_table_desc
         to acpi_physical_address to allow it to be invoked by static table
         loadings.  Also cleanup acpi_ex_load_op() and acpi_load_table() to accomodate
         to the parameter change.
      4. Invoke acpi_tb_install_non_fixed_table() for all table loadings other than
         DSDT/FACS in acpi_tb_parse_root_table() to improve code maintainability
         (logics are collected in the single function).  Also delete useless code
         from acpi_tb_parse_root_table().
      5. Remove all acpi_tb_validate_table() from acpi_tb_install_non_fixed_table() and
         acpi_tb_install_fixed_table() so that the table descriptor is kept in the
         state of "INSTALLED" but not "VALIDATED" after returning from these
         functions.
      6. Introduce temporary struct acpi_table_desc (new_table_desc/old_table_desc) into
         the functions to indicate a table descriptor that is not maintained by
         acpi_gbl_root_table_list. Introduce acpi_tb_acquire_temporal_table() and
         acpi_tb_release_temporal_table() to handle the use cases of such temporal
         tables.  They are only used for verified installation.
      7. Introduce acpi_tb_verify_table() to validate table and verify table
         checksum, also remove table checksum verification from
         acpi_tb_validate_table(). Invoke acpi_tb_validate_table() in the functions
         that will convert a table into "LOADED" state or invoke it from
         acpi_get_table_XXX() APIs. Invoke acpi_tb_verify_table() on temporary
         struct acpi_table_desc(s) that are going to be "INSTALLED".
      8. Change acpi_tb_override_table() logic so that a temporary struct acpi_table_desc
         will be overridden before installtion, this makes code simpler.
      
      After applying the patch, tables are always installed after being
      overridden and the table checksums are always verified before installation.
      Signed-off-by: NLv Zheng <lv.zheng@intel.com>
      Signed-off-by: NBob Moore <robert.moore@intel.com>
      [rjw: Subject]
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      86dfc6f3
    • L
      ACPICA: Tables: Fix multiple ACPI_FREE()s around acpi_tb_add_table(). · 55df23f0
      Lv Zheng 提交于
      Currently there are following issues in acpi_tb_add_table():
      Following logic is currently correct:
      1. When a table is allocated in acpi_ex_load_op(), if a reloading happens,
         the allocated memory is freed by acpi_tb_add_table() and AE_OK is
         returned to the caller to avoid the caller to free it again.
      Following logic is currently incorrect:
      1. When a table is allocated in acpi_ex_load_op() or by the
         acpi_load_table() caller, if the table is already loaded, there will be
         twice ACPI_FREE() called for the same pointer when acpi_tb_add_table()
         returns AE_ALREADY_EXISTS.
      
      This patch only fixes the above incorrect logic in acpi_tb_add_table():
      1. Only invoke acpi_tb_delete_table() if AE_OK is going to be returned.
      2. After doing so, we do not invoke ACPI_FREE() when returning AE_OK;
      Signed-off-by: NLv Zheng <lv.zheng@intel.com>
      Signed-off-by: NBob Moore <robert.moore@intel.com>
      [rjw: Subject]
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      55df23f0
    • L
      ACPICA: Tables: Fix the issues in handling virtual addressed tables. · dc156adf
      Lv Zheng 提交于
      When table is overridden or reloaded, acpi_tb_delete_table() is called where
      struct acpi_table_desc.Pointer will be NULL.  It thus is impossible for virtual
      addressed tables to obtain the .Pointer again in acpi_tb_verify_table().
      
      This patch stores virtual table addresses  (ACPI_TABLE_ORIGIN_ALLOCATED,
      ACPI_TABLE_ORIGIN_UNKNOWN, ACPI_TABLE_ORIGIN_OVERRIDE) in the
      struct acpi_table_desc.Address field and refills the struct acpi_table_desc.Pointer
      using these addresses in acpi_tb_verify_table(). Note that if a table with
      ACPI_TABLE_ORIGIN_ALLOCATED set is actually freed, the .Address field
      should be invalidated and thus must be replaced with NULL to avoid wrong
      future validations occuring in acpi_tb_verify_table().
      Signed-off-by: NLv Zheng <lv.zheng@intel.com>
      Signed-off-by: NBob Moore <robert.moore@intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      dc156adf
    • B
      ACPICA: Unload operator: Emit a warning if and when it is ever used. · 43d1a62d
      Bob Moore 提交于
      We would like to see the ASL for any machine that uses this operator,
      so emit at least a warning to hopefully draw some attention.
      Signed-off-by: NBob Moore <robert.moore@intel.com>
      Signed-off-by: NLv Zheng <lv.zheng@intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      43d1a62d
  9. 11 2月, 2014 1 次提交
  10. 16 6月, 2013 1 次提交
  11. 02 6月, 2013 1 次提交
  12. 25 1月, 2013 1 次提交
  13. 10 1月, 2013 4 次提交
    • B
      ACPICA: Change exception code for LoadTable operator. · 528a412c
      Bob Moore 提交于
      For the case where one of the input strings is too long,
      change the returned exception code from AE_BAD_PARAMETER to
      AE_AML_STRING_LIMIT.
      Signed-off-by: NBob Moore <robert.moore@intel.com>
      Signed-off-by: NLv Zheng <lv.zheng@intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      528a412c
    • L
      ACPICA: Cleanup coding style to reduce differences between Linux and ACPICA. · 9c0d7939
      Lv Zheng 提交于
      This is a cosmetic patch only. Comparison of the resulting binary showed
      only line number differences.
      
      This patch does not affect the generation of the Linux binary.
      This patch decreases 314 lines of 20121018 divergence.diff.
      
      ACPICA core uses ()'s on return statements. This is a known and committed
      differences from Linux standard coding style.
      
      This patch cleans up the Linux side ACPICA code to use this codying style
      in order to reduce the source code differences between Linux and ACPICA.
      Signed-off-by: NLv Zheng <lv.zheng@intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      9c0d7939
    • L
      ACPICA: Cleanup indentation to reduce differences between Linux and ACPICA. · 3e8214e5
      Lv Zheng 提交于
      This is a cosmetic patch only. Comparison of the resulting binary showed
      only line number differences.
      
      This patch does not affect the generation of the Linux binary.
      This patch decreases 210 lines of 20121018 divergence.diff.
      
      The ACPICA source codes uses a totally different indentation style from the
      Linux to be compatible with other users (operating systems or BIOS).
      
      Indentation differences are critical to the release automation. There are
      two causes related to the "indentation" that are affecting the release
      automation:
      1. The ACPICA -> Linux release process is:
           ACPICA source -- acpisrc - hierarchy - indent ->
           linuxized ACPICA source -- diff ->
           linuxized ACPICA patch (x) -- human intervention ->
           linuxized ACPICA patch (o)
           Where
             'x' means "cannot be directly applied to the Linux"
             'o' means "can be directly applied to the Linux"
         Different "indent" version or "indent" options used in the "indent"
         step will lead to different divergences.
         The version of "indent" used for the current release process is:
           GNU indent 2.2.11
         The options of "indent" used for the current release process is:
           -npro -kr -i8 -ts8 -sob -l80 -ss -ncs
      2. Manual indentation prettifying work in the Linux side will also harm the
         automatically generated linuxized ACPICA patches, making them impossible
         to apply directly.
      
      This patch fixes source code differences caused by the two causes so that
      the "human intervention" can be reduced in the future.
      Signed-off-by: NLv Zheng <lv.zheng@intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      3e8214e5
    • L
      ACPICA: Cleanup updated comments. · 75c8044f
      Lv Zheng 提交于
      This is a cosmetic patch only. Comparison of the resulting binary showed
      only line number differences.
      
      This patch does not affect the generation of the Linux binary.
      This patch decreases 558 lines of 20121018 divergence.diff.
      
      This patch reduces the source code diff between Linux and ACPICA by
      cleaning the comments that already have been updated in ACPICA.
      
      There is no extra indentation done in this patch. Even the empty line
      deletions and insertions are also splitted into another cleanup patch so
      that this patch can be easily reviewed, and the binary differences can be
      held to a lowest level.
      Signed-off-by: NLv Zheng <lv.zheng@intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      75c8044f
  14. 17 7月, 2012 1 次提交
  15. 17 1月, 2012 2 次提交
  16. 19 1月, 2011 1 次提交
  17. 13 7月, 2010 1 次提交
    • R
      ACPI / ACPICA: Do not execute _PRW methods during initialization · 9874647b
      Rafael J. Wysocki 提交于
      Currently, during initialization ACPICA walks the entire ACPI
      namespace in search of any device objects with assciated _PRW
      methods.  All of the _PRW methods found are executed in the process
      to extract the GPE information returned by them, so that the GPEs in
      question can be marked as "able to wakeup" (more precisely, the
      ACPI_GPE_CAN_WAKE flag is set for them).  The only purpose of this
      exercise is to avoid enabling the CAN_WAKE GPEs automatically, even
      if there are _Lxx/_Exx methods associated with them.  However, it is
      both costly and unnecessary, because the host OS has to execute the
      _PRW methods anyway to check which devices can wake up the system
      from sleep states.  Moreover, it then uses full information
      returned by _PRW, including the GPE information, so it can take care
      of disabling the GPEs if necessary.
      
      Remove the code that walks the namespace and executes _PRW from
      ACPICA and modify comments to reflect that change.  Make
      acpi_bus_set_run_wake_flags() disable GPEs for wakeup devices
      so that they don't cause spurious wakeup events to be signaled.
      This not only reduces the complexity of the ACPICA initialization
      code, but in some cases it should reduce the kernel boot time as
      well.
      
      Unfortunately, for this purpose we need a new ACPICA function,
      acpi_gpe_can_wake(), to be called by the host OS in order to disable
      the GPEs that can wake up the system and were previously enabled by
      acpi_ev_initialize_gpe_block() or acpi_ev_update_gpes() (such a GPE
      should be disabled only once, because the initialization code enables
      it only once, but it may be pointed to by _PRW for multiple devices
      and that's why the additional function is necessary).
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      9874647b
  18. 06 5月, 2010 1 次提交
  19. 23 1月, 2010 3 次提交
  20. 25 11月, 2009 1 次提交
  21. 29 8月, 2009 1 次提交
  22. 27 5月, 2009 4 次提交
  23. 28 3月, 2009 1 次提交
  24. 27 3月, 2009 1 次提交
  25. 09 1月, 2009 1 次提交