1. 19 3月, 2018 9 次提交
    • E
      ACPICA: macros: fix ACPI_ERROR_NAMESPACE macro · 0fe0bebf
      Erik Schmauss 提交于
      Fixing the ACPI_ERROR_NAMESPACE macros created an "unused variable"
      compile error when ACPI_NO_ERROR_MESSAGES was defined. This commit
      also fixes the above compilation errors by surrounding variables
      meant for debugging inside a new ACPI_ERROR_ONLY macro.
      Signed-off-by: NErik Schmauss <erik.schmauss@intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      0fe0bebf
    • B
      ACPICA: Change a compile-time option to a runtime option · 34f206fd
      Bob Moore 提交于
      Changes the option to ignore package resolution errors into
      a runtime option.
      Signed-off-by: NBob Moore <robert.moore@intel.com>
      Signed-off-by: NErik Schmauss <erik.schmauss@intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      34f206fd
    • H
      ACPICA: Remove calling of _STA from acpi_get_object_info() · e7c2c3c9
      Hans de Goede 提交于
      As the documentatuon above its declaration indicates, acpi_get_object_info()
      is intended for early probe usage and as such should not call any methods
      which may rely on op_regions, before this commit it was also calling _STA,
      which on some systems does rely on op_regions.
      
      Calling _STA before things are ready leads to errors such as these
      (under Linux, on some hardware):
      
      [    0.123579] ACPI Error: No handler for Region [ECRM] (00000000ba9edc4c)
                     [generic_serial_bus] (20170831/evregion-166)
      [    0.123601] ACPI Error: Region generic_serial_bus (ID=9) has no handler
                     (20170831/exfldio-299)
      [    0.123618] ACPI Error: Method parse/execution failed
                     \_SB.I2C1.BAT1._STA, AE_NOT_EXIST (20170831/psparse-550)
      
      End 2015 support for the _SUB method was removed for exactly the same
      reason. Removing current_status from struct acpi_device_info only has a limited
      impact. Within ACPICA it is only used by 2 debug messages, both
      of which are modified to no longer print it with this commit.
      
      Outside of ACPICA, there was one user in Linux, which has been patched to
      no longer use current_status in Torvald's current master.
      
      I've not checked if free_BSD or others are using the current_status field.
      Signed-off-by: NHans de Goede <hdegoede@redhat.com>
      Signed-off-by: NErik Schmauss <erik.schmauss@intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      e7c2c3c9
    • B
      ACPICA: AML Debug Object: Don't ignore output of zero-length strings · 81677241
      Bob Moore 提交于
      The implementation previously ignored null strings (""), but
      these could be important, especially for debug.
      Signed-off-by: NBob Moore <robert.moore@intel.com>
      Signed-off-by: NErik Schmauss <erik.schmauss@intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      81677241
    • B
      ACPICA: Fix memory leak on unusual memory leak · 1c29c372
      Bob Moore 提交于
      Fixes a single-object memory leak on a store-to-reference method
      invocation. ACPICA BZ 1439.
      Signed-off-by: NBob Moore <robert.moore@intel.com>
      Signed-off-by: NErik Schmauss <erik.schmauss@intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      1c29c372
    • E
      ACPICA: Events: Dispatch GPEs after enabling for the first time · 87cd826b
      Erik Schmauss 提交于
      After being enabled for the first time, the GPEs may have STS bits already
      set. Setting EN bits is not sufficient to trigger the GPEs again, so this
      patch polls GPEs after enabling them for the first time.
      This is a cleaner version on top of the "GPE clear" fix generated according
      to Mika's report and Rafael's original Linux based fix. Based on Linux
      commit originated from Rafael J. Wysocki, fixed by Lv Zheng.
      Signed-off-by: NLv Zheng <lv.zheng@intel.com>
      Signed-off-by: NErik Schmauss <erik.schmauss@intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      87cd826b
    • E
      ACPICA: Events: Add parallel GPE handling support to fix potential redundant _Exx evaluations · 8d593495
      Erik Schmauss 提交于
      There is a risk that a GPE method/handler may be invoked twice. Let's
      consider a case, both GPE0(RAW_HANDLER) and GPE1(_Exx) is triggered.
       =======================================+=============================
       IRQ handler (top-half)                 |IRQ polling
       =======================================+=============================
       acpi_ev_detect_gpe()                   |
         LOCK()                               |
         READ (GPE0-7 enable/status registers)|
         ^^^^^^^^^^^^ROOT CAUSE^^^^^^^^^^^^^^^|
         Walk GPE0                            |
           UNLOCK()                           |LOCK()
           Invoke GPE0 RAW_HANDLER            |READ (GPE1 enable/status bit)
                                              |acpi_ev_gpe_dispatch(irq=false)
                                              |  CLEAR (GPE1 enable bit)
                                              |  CLEAR (GPE1 status bit)
           LOCK()                             |UNLOCK()
         Walk GPE1                            +=============================
           acpi_ev_gpe_dispatch(irq=true)     |IRQ polling (defer)
             CLEAR (GPE1 enable bit)          +=============================
             CLEAR (GPE1 status bit)          |acpi_ev_async_execute_gpe_method()
         Walk others                          |  Evaluate GPE1 _Exx
         fi                                   |  acpi_ev_async_enable_gpe()
         UNLOCK()                             |    LOCK()
       =======================================+    SET (GPE enable bit)
       IRQ handler (bottom-half)              |    UNLOCK()
       =======================================+
       acpi_ev_async_execute_gpe_method()     |
         Evaluate GPE1 _Exx                   |
         acpi_ev_async_enable_gpe()           |
           LOCK()                             |
           SET (GPE1 enable bit)              |
           UNLOCK()                           |
       =======================================+=============================
      
      If acpi_ev_detect_gpe() is only invoked from the IRQ context, there won't be
      more than one _Lxx/_Exx evaluations for one status bit flagging if the IRQ
      handlers controlled by the underlying IRQ chip/driver (ex. APIC) are run in
      serial. Note that, this is a known potential gap and we had an approach,
      locking entire non-raw-handler processes in the top-half IRQ handler and
      handling all raw-handlers out of the locked loop to be friendly to those
      IRQ chip/driver. But the approach is too complicated while the issue is not
      so real, thus ACPICA treated such issue (if any) as a parallelism/quality
      issue of the underlying IRQ chip/driver to stop putting it on the radar.
      Bug in link #1 is suspiciously reflecting the same cause, and if so, it can
      also be fixed by this simpler approach.
      
      But it will be no excuse an ACPICA problem now if ACPICA starts to poll
      IRQs itself. In the changed scenario, _Exx will be evaluated from the task
      context due to new ACPICA provided "polling after enabling GPEs" mechanism.
      And the above figure uses edge-triggered GPEs demonstrating the possibility
      of evaluating _Exx twice for one status bit flagging.
      
      As a conclusion, there is now an increased chance of evaluating _Lxx/_Exx
      more than once for one status bit flagging.
      
      However this is still not a real problem if the _Lxx/_Exx checks the
      underlying hardware IRQ reasoning and finally just changes the 2nd and the
      follow-up evaluations into no-ops. Note that _Lxx should always be written
      in this way as a level-trigger GPE could have it's status wrongly
      duplicated by the underlying IRQ delivery mechanisms. But _Exx may have
      very low quality BIOS by BIOS to trigger real issues. For example, trigger
      duplicated button notifications.
      
      To solve this issue, we need to stop reading a bunch of enable/status
      register bits, but read only one GPE's enable/status bit. And GPE status
      register's W1C nature ensures that acknowledging one GPE won't affect
      another GPEs' status bits. Thus the hardware GPE architecture has already
      provided us with the mechanism of implementing such parallelism.
      
      So we can lock around one GPE handling process to achieve the parallelism:
      1. If we can incorporate GPE enable bit check in detection and ensure the
         atomicity of the following process (top-half IRQ handler):
          READ (enable/status bit)
          if (enabled && raised)
            CLEAR (enable bit)
         and handle the GPE after this process, we can ensure that we will only
         invoke GPE handler once for one status bit flagging.
      2. In addtion for edge-triggered GPEs, if we can ensure the atomicity of
         the following process (top-half IRQ handler):
          READ (enable/status bit)
          if (enabled && raised)
            CLEAR (enable bit)
            CLEAR (status bit)
         and handle the GPE after this process, we can ensure that we will only
         invoke GPE handler once for one status bit flagging.
      
      By doing a cleanup in this way, we can remove duplicate GPE handling code
      and ensure that all logics are collected in 1 function. And the function
      will be safe for both IRQ interrupt and IRQ polling, and will be safe for
      us to release and re-acquire acpi_gbl_gpe_lock at any time rather than raw
      handler only during the top-half IRQ handler. Lv Zheng.
      
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=196703 [#1]
      Signed-off-by: NLv Zheng <lv.zheng@intel.com>
      Signed-off-by: NErik Schmauss <erik.schmauss@intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      8d593495
    • E
      ACPICA: Events: Stop unconditionally clearing ACPI IRQs during suspend/resume · 18996f2d
      Erik Schmauss 提交于
      Unconditionally clearing ACPI IRQs during suspend/resume can lead to
      unexpected IRQ losts. This patch fixes this issue by removing such IRQ
      clearing code.
      
      If this patch triggers regression, the regression should be in the GPE
      handlers that cannot correctly determine some spurious triggered events as
      no-ops. Please report any regression related to this commit to the ACPI
      component on kernel bugzilla. Lv Zheng.
      
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=196249Signed-off-by: NLv Zheng <lv.zheng@intel.com>
      Reported-and-tested-by: NEric Bakula-Davis <ericbakuladavis@gmail.com>
      Tested-by: NMika Westerberg <mika.westerberg@linux.intel.com>
      Signed-off-by: NErik Schmauss <erik.schmauss@intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      18996f2d
    • S
      ACPICA: acpi: acpica: fix acpi operand cache leak in nseval.c · 97f3c0a4
      Seunghun Han 提交于
      I found an ACPI cache leak in ACPI early termination and boot continuing case.
      
      When early termination occurs due to malicious ACPI table, Linux kernel
      terminates ACPI function and continues to boot process. While kernel terminates
      ACPI function, kmem_cache_destroy() reports Acpi-Operand cache leak.
      
      Boot log of ACPI operand cache leak is as follows:
      >[    0.464168] ACPI: Added _OSI(Module Device)
      >[    0.467022] ACPI: Added _OSI(Processor Device)
      >[    0.469376] ACPI: Added _OSI(3.0 _SCP Extensions)
      >[    0.471647] ACPI: Added _OSI(Processor Aggregator Device)
      >[    0.477997] ACPI Error: Null stack entry at ffff880215c0aad8 (20170303/exresop-174)
      >[    0.482706] ACPI Exception: AE_AML_INTERNAL, While resolving operands for [opcode_name unavailable] (20170303/dswexec-461)
      >[    0.487503] ACPI Error: Method parse/execution failed [\DBG] (Node ffff88021710ab40), AE_AML_INTERNAL (20170303/psparse-543)
      >[    0.492136] ACPI Error: Method parse/execution failed [\_SB._INI] (Node ffff88021710a618), AE_AML_INTERNAL (20170303/psparse-543)
      >[    0.497683] ACPI: Interpreter enabled
      >[    0.499385] ACPI: (supports S0)
      >[    0.501151] ACPI: Using IOAPIC for interrupt routing
      >[    0.503342] ACPI Error: Null stack entry at ffff880215c0aad8 (20170303/exresop-174)
      >[    0.506522] ACPI Exception: AE_AML_INTERNAL, While resolving operands for [opcode_name unavailable] (20170303/dswexec-461)
      >[    0.510463] ACPI Error: Method parse/execution failed [\DBG] (Node ffff88021710ab40), AE_AML_INTERNAL (20170303/psparse-543)
      >[    0.514477] ACPI Error: Method parse/execution failed [\_PIC] (Node ffff88021710ab18), AE_AML_INTERNAL (20170303/psparse-543)
      >[    0.518867] ACPI Exception: AE_AML_INTERNAL, Evaluating _PIC (20170303/bus-991)
      >[    0.522384] kmem_cache_destroy Acpi-Operand: Slab cache still has objects
      >[    0.524597] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.12.0-rc5 #26
      >[    0.526795] Hardware name: innotek gmb_h virtual_box/virtual_box, BIOS virtual_box 12/01/2006
      >[    0.529668] Call Trace:
      >[    0.530811]  ? dump_stack+0x5c/0x81
      >[    0.532240]  ? kmem_cache_destroy+0x1aa/0x1c0
      >[    0.533905]  ? acpi_os_delete_cache+0xa/0x10
      >[    0.535497]  ? acpi_ut_delete_caches+0x3f/0x7b
      >[    0.537237]  ? acpi_terminate+0xa/0x14
      >[    0.538701]  ? acpi_init+0x2af/0x34f
      >[    0.540008]  ? acpi_sleep_proc_init+0x27/0x27
      >[    0.541593]  ? do_one_initcall+0x4e/0x1a0
      >[    0.543008]  ? kernel_init_freeable+0x19e/0x21f
      >[    0.546202]  ? rest_init+0x80/0x80
      >[    0.547513]  ? kernel_init+0xa/0x100
      >[    0.548817]  ? ret_from_fork+0x25/0x30
      >[    0.550587] vgaarb: loaded
      >[    0.551716] EDAC MC: Ver: 3.0.0
      >[    0.553744] PCI: Probing PCI hardware
      >[    0.555038] PCI host bridge to bus 0000:00
      > ... Continue to boot and log is omitted ...
      
      I analyzed this memory leak in detail and found acpi_ns_evaluate() function
      only removes Info->return_object in AE_CTRL_RETURN_VALUE case. But, when errors
      occur, the status value is not AE_CTRL_RETURN_VALUE, and Info->return_object is
      also not null. Therefore, this causes acpi operand memory leak.
      
      This cache leak causes a security threat because an old kernel (<= 4.9) shows
      memory locations of kernel functions in stack dump. Some malicious users
      could use this information to neutralize kernel ASLR.
      
      I made a patch to fix ACPI operand cache leak.
      Signed-off-by: NSeunghun Han <kkamagui@gmail.com>
      Signed-off-by: NErik Schmauss <erik.schmauss@intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      97f3c0a4
  2. 22 2月, 2018 5 次提交
  3. 12 2月, 2018 7 次提交
  4. 08 2月, 2018 1 次提交
  5. 07 2月, 2018 4 次提交
  6. 06 2月, 2018 1 次提交
  7. 04 2月, 2018 8 次提交
    • S
      ACPI / LPIT: Export lpit_read_residency_count_address() · 9383bbad
      Srinivas Pandruvada 提交于
      Export lpit_read_residency_count_address(), so that it can be used from
      drivers built as module. With the recent changes, the builtin_pci
      functionality of the intel_pmc_core driver is removed and now it can be
      built as a module to read this exported interface to calculate the PMC base
      address.
      
      Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
      Cc: Len Brown <lenb@kernel.org>
      Cc: linux-acpi@vger.kernel.org
      Acked-by: NRafael J. Wysocki <rafael@kernel.org>
      Tested-by: NRajneesh Bhardwaj <rajneesh.bhardwaj@intel.com>
      Signed-off-by: NSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
      Signed-off-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      9383bbad
    • Y
      ACPI / processor: Set default C1 idle state description · 248e8841
      Yazen Ghannam 提交于
      The ACPI idle driver will default to ACPI_CSTATE_HALT for C1 if a _CST
      object for C1 is not defined. However, the description will not be set,
      so users will see "<null>" when reading the description from sysfs.
      
      Set the C1 state description when defaulting to ACPI_CSTATE_HALT.
      Signed-off-by: NYazen Ghannam <yazen.ghannam@amd.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      248e8841
    • K
      ACPI / battery: Add quirk for Asus UX360UA and UX410UAK · 4446823e
      Kai Heng Feng 提交于
      Same issue as other Asus laptops, ACPI incorrectly reports discharging
      when battery is full and AC is plugged.
      
      Use the same battery quirk can workaround the issue.
      
      Link: https://bugs.launchpad.net/bugs/1661876
      Link: https://bugs.launchpad.net/bugs/1745032Signed-off-by: NKai-Heng Feng <kai.heng.feng@canonical.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      4446823e
    • C
      ACPI: processor_perflib: Do not send _PPC change notification if not ready · ba1edb9a
      Chen Yu 提交于
      The following warning was triggered after resumed from S3 -
      if all the nonboot CPUs were put offline before suspend:
      
      [ 1840.329515] unchecked MSR access error: RDMSR from 0x771 at rIP: 0xffffffff86061e3a (native_read_msr+0xa/0x30)
      [ 1840.329516] Call Trace:
      [ 1840.329521]  __rdmsr_on_cpu+0x33/0x50
      [ 1840.329525]  generic_exec_single+0x81/0xb0
      [ 1840.329527]  smp_call_function_single+0xd2/0x100
      [ 1840.329530]  ? acpi_ds_result_pop+0xdd/0xf2
      [ 1840.329532]  ? acpi_ds_create_operand+0x215/0x23c
      [ 1840.329534]  rdmsrl_on_cpu+0x57/0x80
      [ 1840.329536]  ? cpumask_next+0x1b/0x20
      [ 1840.329538]  ? rdmsrl_on_cpu+0x57/0x80
      [ 1840.329541]  intel_pstate_update_perf_limits+0xf3/0x220
      [ 1840.329544]  ? notifier_call_chain+0x4a/0x70
      [ 1840.329546]  intel_pstate_set_policy+0x4e/0x150
      [ 1840.329548]  cpufreq_set_policy+0xcd/0x2f0
      [ 1840.329550]  cpufreq_update_policy+0xb2/0x130
      [ 1840.329552]  ? cpufreq_update_policy+0x130/0x130
      [ 1840.329556]  acpi_processor_ppc_has_changed+0x65/0x80
      [ 1840.329558]  acpi_processor_notify+0x80/0x100
      [ 1840.329561]  acpi_ev_notify_dispatch+0x44/0x5c
      [ 1840.329563]  acpi_os_execute_deferred+0x14/0x20
      [ 1840.329565]  process_one_work+0x193/0x3c0
      [ 1840.329567]  worker_thread+0x35/0x3b0
      [ 1840.329569]  kthread+0x125/0x140
      [ 1840.329571]  ? process_one_work+0x3c0/0x3c0
      [ 1840.329572]  ? kthread_park+0x60/0x60
      [ 1840.329575]  ? do_syscall_64+0x67/0x180
      [ 1840.329577]  ret_from_fork+0x25/0x30
      [ 1840.329585] unchecked MSR access error: WRMSR to 0x774 (tried to write 0x0000000000000000) at rIP: 0xffffffff86061f78 (native_write_msr+0x8/0x30)
      [ 1840.329586] Call Trace:
      [ 1840.329587]  __wrmsr_on_cpu+0x37/0x40
      [ 1840.329589]  generic_exec_single+0x81/0xb0
      [ 1840.329592]  smp_call_function_single+0xd2/0x100
      [ 1840.329594]  ? acpi_ds_create_operand+0x215/0x23c
      [ 1840.329595]  ? cpumask_next+0x1b/0x20
      [ 1840.329597]  wrmsrl_on_cpu+0x57/0x70
      [ 1840.329598]  ? rdmsrl_on_cpu+0x57/0x80
      [ 1840.329599]  ? wrmsrl_on_cpu+0x57/0x70
      [ 1840.329602]  intel_pstate_hwp_set+0xd3/0x150
      [ 1840.329604]  intel_pstate_set_policy+0x119/0x150
      [ 1840.329606]  cpufreq_set_policy+0xcd/0x2f0
      [ 1840.329607]  cpufreq_update_policy+0xb2/0x130
      [ 1840.329610]  ? cpufreq_update_policy+0x130/0x130
      [ 1840.329613]  acpi_processor_ppc_has_changed+0x65/0x80
      [ 1840.329615]  acpi_processor_notify+0x80/0x100
      [ 1840.329617]  acpi_ev_notify_dispatch+0x44/0x5c
      [ 1840.329619]  acpi_os_execute_deferred+0x14/0x20
      [ 1840.329620]  process_one_work+0x193/0x3c0
      [ 1840.329622]  worker_thread+0x35/0x3b0
      [ 1840.329624]  kthread+0x125/0x140
      [ 1840.329625]  ? process_one_work+0x3c0/0x3c0
      [ 1840.329626]  ? kthread_park+0x60/0x60
      [ 1840.329628]  ? do_syscall_64+0x67/0x180
      [ 1840.329631]  ret_from_fork+0x25/0x30
      
      This is because if there's only one online CPU, the MSR_PM_ENABLE
      (package wide)can not be enabled after resumed, due to
      intel_pstate_hwp_enable() will only be invoked on AP's online
      process after resumed - if there's no AP online, the HWP remains
      disabled after resumed (BIOS has disabled it in S3). Then if
      there comes a _PPC change notification which touches HWP register
      during this stage, the warning is triggered.
      
      Since we don't call acpi_processor_register_performance() when
      HWP is enabled, the pr->performance will be NULL. When this is
      NULL we don't need to do _PPC change notification.
      Reported-by: NDoug Smythies <dsmythies@telus.net>
      Suggested-by: NSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
      Signed-off-by: NYu Chen <yu.c.chen@intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      ba1edb9a
    • H
      ACPI / scan: Use acpi_bus_get_status() to initialize ACPI_TYPE_DEVICE devs · 63347db0
      Hans de Goede 提交于
      The acpi_get_bus_status wrapper for acpi_bus_get_status_handle has some
      code to handle certain device quirks, in some cases we also need this
      quirk handling for the initial _STA call.
      
      Specifically on some devices calling _STA before all _DEP dependencies
      are met results in errors like these:
      
      [    0.123579] ACPI Error: No handler for Region [ECRM] (00000000ba9edc4c)
                     [GenericSerialBus] (20170831/evregion-166)
      [    0.123601] ACPI Error: Region GenericSerialBus (ID=9) has no handler
                     (20170831/exfldio-299)
      [    0.123618] ACPI Error: Method parse/execution failed
                     \_SB.I2C1.BAT1._STA, AE_NOT_EXIST (20170831/psparse-550)
      
      acpi_get_bus_status already has code to avoid this, so by using it we
      also silence these errors from the initial _STA call.
      
      Note that in order for the acpi_get_bus_status handling for this to work,
      we initialize dep_unmet to 1 until acpi_device_dep_initialize gets called,
      this means that battery devices will be instantiated with an initial
      status of 0. This is not a problem, acpi_bus_attach will get called soon
      after the instantiation anyways and it will update the status as first
      point of order.
      Signed-off-by: NHans de Goede <hdegoede@redhat.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      63347db0
    • H
      ACPI / bus: Do not call _STA on battery devices with unmet dependencies · 54ddce70
      Hans de Goede 提交于
      The battery code uses acpi_device->dep_unmet to check for unmet deps and
      if there are unmet deps it does not bind to the device to avoid errors
      about missing OpRegions when calling ACPI methods on the device.
      
      The missing OpRegions when there are unmet deps problem also applies to
      the _STA method of some battery devices and calling it too early results
      in errors like these:
      
      [    0.123579] ACPI Error: No handler for Region [ECRM] (00000000ba9edc4c)
                     [GenericSerialBus] (20170831/evregion-166)
      [    0.123601] ACPI Error: Region GenericSerialBus (ID=9) has no handler
                     (20170831/exfldio-299)
      [    0.123618] ACPI Error: Method parse/execution failed
                     \_SB.I2C1.BAT1._STA, AE_NOT_EXIST (20170831/psparse-550)
      
      This commit fixes these errors happening when acpi_get_bus_status gets
      called by checking dep_unmet for battery devices and reporting a status
      of 0 until all dependencies are met.
      Signed-off-by: NHans de Goede <hdegoede@redhat.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      54ddce70
    • H
      ACPI: export acpi_bus_get_status_handle() · 5a98231f
      Hans de Goede 提交于
      Some modular drivers need this, export it.
      Signed-off-by: NHans de Goede <hdegoede@redhat.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      5a98231f
    • G
      ACPI / video: Use true for boolean value · 97e45dd6
      Gustavo A. R. Silva 提交于
      Assign true or false to boolean variables instead of an integer value.
      
      This issue was detected with the help of Coccinelle.
      Signed-off-by: NGustavo A. R. Silva <gustavo@embeddedor.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      97e45dd6
  8. 03 2月, 2018 1 次提交
  9. 02 2月, 2018 2 次提交
  10. 24 1月, 2018 2 次提交