An error occurred fetching the project authors.
  1. 13 Aug, 2016 1 commit
    • Lv Zheng's avatar
      ACPICA: Events: Introduce acpi_mask_gpe() to implement GPE masking mechanism · 2af52c2b
      Lv Zheng authored
      ACPICA commit 23a417ca406a527e7ae1710893e59a8b6db30e14
      
      There is a facility in Linux, developers can control the enabling/disabling
      of a GPE via /sys/firmware/acpi/interrupts/gpexx. This is mainly for
      debugging purposes.
      
      But many users expect to use this facility to implement quirks to mask a
      specific GPE when there is a gap in Linux causing this GPE to flood. This
      is not working correctly because currently this facility invokes
      enabling/disabling counting based GPE driver APIs:
       acpi_enable_gpe()/acpi_disable_gpe()
      and the GPE drivers can still affect the count to mess up the GPE
      masking purposes.
      
      However, most of the IRQ chip designs allow masking/unmasking IRQs via a
      masking bit which is different from the enabled bit to achieve the same
      purpose. But the GPE hardware doesn't contain such a feature, this brings
      the trouble.
      
      In this patch, we introduce a software mechanism to implement the GPE
      masking feature, and acpi_mask_gpe() are provided to the OSPMs to
      mask/unmask GPEs in the above mentioned situation instead of
      acpi_enable_gpe()/acpi_disable_gpe(). ACPICA BZ 1102. Lv Zheng.
      
      Link: https://github.com/acpica/acpica/commit/23a417ca
      Link: https://bugs.acpica.org/show_bug.cgi?id=1102Signed-off-by: default avatarLv Zheng <lv.zheng@intel.com>
      Signed-off-by: default avatarBob Moore <robert.moore@intel.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      2af52c2b
  2. 05 May, 2016 1 commit
  3. 05 Apr, 2016 1 commit
  4. 15 Jan, 2016 1 commit
  5. 01 Jan, 2016 3 commits
  6. 05 Feb, 2015 2 commits
  7. 06 May, 2014 1 commit
  8. 18 Mar, 2014 1 commit
  9. 26 Feb, 2014 1 commit
  10. 10 Feb, 2014 1 commit
  11. 08 Jan, 2014 2 commits
    • Lv Zheng's avatar
      ACPICA: Linuxize: Cleanup spaces after special macro invocations. · ed606944
      Lv Zheng authored
      This patch reflects the improvment of a cleanup step which is performed in
      the release process.
      
      There are still spaces in the "linuxized" ACPICA files after special macro
      invocations.  This is because indent treats comments and pre-processor
      directives as spaces, thus we need to skip them.
      
      Before applying this patch, cleanup code will search from keyword back to
      end of line and wipe spaces between them.
      
      After applying this patch, cleanup code will search to the end of the macro
      invocations, skip "empty lines", "comments" and "pre-processor directives",
      then wipe the spaces between the new line and the first non-spaces
      characters.
      
      Following improvements are thus achieved in the release automation by this
      commit which are originally maintained manually:
       - acpi_status acpi_ev_remove_global_lock_handler(void);
       +acpi_status acpi_ev_remove_global_lock_handler(void);
       - acpi_status
       +acpi_status
        acpi_ev_match_gpe_method(acpi_handle obj_handle,
       - acpi_status acpi_subsystem_status(void);
       +acpi_status acpi_subsystem_status(void);
       - acpi_status acpi_install_notify_handler(acpi_handle device, u32 handler_type,
       +acpi_status acpi_install_notify_handler(acpi_handle device, u32 handler_type,
       - acpi_status
       +acpi_status
        acpi_acquire_mutex(acpi_handle handle, acpi_string pathname, u16 timeout);
       - acpi_status
       +acpi_status
        acpi_get_sleep_type_data(u8 sleep_state, u8 *slp_typ_a, u8 *slp_typ_b);
       - acpi_status acpi_leave_sleep_state_prep(u8 sleep_state);
       +acpi_status acpi_leave_sleep_state_prep(u8 sleep_state);
      Some empty lines are restored by this commit due to the change of the
      removal implementation.
      Signed-off-by: default avatarLv Zheng <lv.zheng@intel.com>
      Signed-off-by: default avatarBob Moore <robert.moore@intel.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      ed606944
    • Bob Moore's avatar
      ACPICA: Improve exception handling for GPE block installation. · 4bec3d80
      Bob Moore authored
      1) Return an actual status value from acpi_ev_get_gpe_xrupt_block.
      2) Don't clobber the status when exiting acpi_ev_install_gpe_block.
      
      References: https://bugs.acpica.org/show_bug.cgi?id=1019Signed-off-by: default avatarBob Moore <robert.moore@intel.com>
      Signed-off-by: default avatarLv Zheng <lv.zheng@intel.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      4bec3d80
  12. 31 Oct, 2013 1 commit
    • Lv Zheng's avatar
      ACPICA: Fix indentation issues for macro invocations. · cd27d79f
      Lv Zheng authored
      During the automatic translation of the upstream ACPICA source code
      into Linux kernel source code some extra white spaces are added by
      the "indent" program at the beginning of each line which is an
      invocation of a macro and there is no ";" at the end of the line.
      
      For this reason, a new mode has been added to the translation scripts
      to remove the extra spaces inserted before invoking such macros and add
      an empty line between the invocations of such macros (like the other
      function declarations).  This new mode is executed after executing
      "indent" during the Linux release process.  Consequently, some
      existing ACPICA source code in the Linux kernel tree needs to be
      adjusted to allow the new scripts to work correctly.
      
      The affected macros and files are:
       1. ACPI_HW_DEPENDENT_RETURN (acpixf.h/acdebug.h/acevents.h):
          This macro is used as a wrapper for hardware dependent APIs to offer
          a stub when the reduced hardware is configured during compilation.
       2. ACPI_EXPORT_SYMBOL (utglobal.c):
          This macro is used by Linux to export symbols to be found by Linux
          modules.  All such invocations are well formatted except those
          exported as global variables.
      
      This can help to reduce the source code differences between Linux
      and upstream ACPICA, and also help to automate the release process.
      No functional or binary generation changes should result from it.
      Lv Zheng.
      
      [rjw: Changelog]
      Signed-off-by: default avatarLv Zheng <lv.zheng@intel.com>
      Signed-off-by: default avatarBob Moore <robert.moore@intel.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      cd27d79f
  13. 23 Sep, 2013 1 commit
  14. 25 Jan, 2013 1 commit
  15. 11 Jan, 2013 1 commit
  16. 14 Nov, 2012 1 commit
  17. 17 Jul, 2012 1 commit
  18. 22 Mar, 2012 1 commit
  19. 17 Jan, 2012 2 commits
  20. 10 May, 2011 1 commit
  21. 19 Jan, 2011 1 commit
  22. 12 Jan, 2011 5 commits
  23. 24 Sep, 2010 1 commit
    • Rafael J. Wysocki's avatar
      ACPI / ACPICA: Defer enabling of runtime GPEs (v3) · a2100801
      Rafael J. Wysocki authored
      The current ACPI GPEs initialization code has a problem that it
      enables some GPEs pointed to by device _PRW methods, generally
      intended for signaling wakeup events (system or device wakeup).
      These GPEs are then almost immediately disabled by the ACPI namespace
      scanning code with the help of acpi_gpe_can_wake(), but it would be
      better not to enable them at all until really necessary.
      
      Modify the initialization of GPEs so that the ones that have
      associated _Lxx or _Exx methods and are not pointed to by any _PRW
      methods will be enabled after the namespace scan is complete.
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      a2100801
  24. 07 Aug, 2010 1 commit
    • Rafael J. Wysocki's avatar
      ACPI / ACPICA: Fix reference counting problems with GPE handlers · 28f4f8a9
      Rafael J. Wysocki authored
      If a handler is installed for a GPE associated with an AML method and
      such that it cannot wake up the system from sleep states, the GPE
      remains enabled after the handler has been installed, although it
      should be disabled in that case to avoid spurious execution of the
      handler.
      
      Fix this issue by making acpi_install_gpe_handler() disable GPEs
      that were previously associated with AML methods and cannot wake up
      the system from sleep states.
      
      Analogously, make acpi_remove_gpe_handler() enable the GPEs that
      are associated with AML methods after their handlers have been
      removed and cannot wake up the system from sleep states.  In addition
      to that, fix a code ordering issue in acpi_remove_gpe_handler() that
      renders the locking ineffective (ACPI_MTX_EVENTS is released
      temporarily in the middle of the routine to wait for the completion
      of events already in progress).
      
      For this purpose introduce acpi_raw_disable_gpe() and
      acpi_raw_enable_gpe() to be called with acpi_gbl_gpe_lock held
      and rework acpi_disable_gpe() and acpi_enable_gpe(), respectively, to
      use them.  Also rework acpi_gpe_can_wake() to use
      acpi_raw_disable_gpe() instead of calling acpi_disable_gpe() after
      releasing the lock to avoid the possible theoretical race with
      acpi_install_gpe_handler().
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Cc: "Moore, Robert" <robert.moore@intel.com>
      Cc: Lin Ming <ming.m.lin@intel.com>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      28f4f8a9
  25. 07 Jul, 2010 2 commits
  26. 12 Jun, 2010 1 commit
    • Rafael J. Wysocki's avatar
      ACPI / ACPICA: Fix low-level GPE manipulation code · fd247447
      Rafael J. Wysocki authored
      ACPICA uses acpi_ev_enable_gpe() for enabling GPEs at the low level,
      which is incorrect, because this function only enables the GPE if the
      corresponding bit in its enable register's enable_for_run mask is set.
      This causes acpi_set_gpe() to work incorrectly if used for enabling
      GPEs that were not previously enabled with acpi_enable_gpe().  As a
      result, among other things, wakeup-only GPEs are never enabled by
      acpi_enable_wakeup_device(), so the devices that use them are unable
      to wake up the system.
      
      To fix this issue remove acpi_ev_enable_gpe() and its counterpart
      acpi_ev_disable_gpe() and replace acpi_hw_low_disable_gpe() with
      acpi_hw_low_set_gpe() that will be used instead to manipulate GPE
      enable bits at the low level.  Make the users of acpi_ev_enable_gpe()
      and acpi_ev_disable_gpe() call acpi_hw_low_set_gpe() instead and
      make sure that GPE enable masks are only updated by acpi_enable_gpe()
      and acpi_disable_gpe() when GPE reference counters change from 0
      to 1 and from 1 to 0, respectively.
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      fd247447
  27. 06 May, 2010 2 commits
  28. 20 Apr, 2010 1 commit
  29. 24 Feb, 2010 1 commit
    • Rafael J. Wysocki's avatar
      ACPI: Use GPE reference counting to support shared GPEs · cbbc0de7
      Rafael J. Wysocki authored
      To fix a bug and address the reviewers' comments regarding the ACPI
      GPE refcounting patch, do the following additional changes:
      
      o Remove the second argument of acpi_ev_enable_gpe(),
        'write_to_hardware', because it is not necessary any more.
      
      o Add the "bad parameter" test against 'type' in
        acpi_enable_gpe() and acpi_disable_gpe().
      
      o Make acpi_enable_gpe() only check 'status' for runtime GPEs if
        acpi_ev_enable_gpe() was actually called.
      
      o Make acpi_disable_gpe() return 'status' returned by
        acpi_ev_disable_gpe() and fix a bug where ACPI_GPE_TYPE_WAKE
        and ACPI_GPE_TYPE_RUNTIME were exchanged by mistake.
      
      o Add comments explaining why acpi_set_gpe() is used by the ACPI EC
        driver.
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
      cbbc0de7