26 Aug, 2018

1 commit

  • Pull libnvdimm updates from Dave Jiang:
    "Collection of misc libnvdimm patches for 4.19 submission:

    - Adding support to read locked nvdimm capacity.

    - Change test code to make DSM failure code injection an override.

    - Add support for calculate maximum contiguous area for namespace.

    - Add support for queueing a short ARS when there is on going ARS for
    nvdimm.

    - Allow NULL to be passed in to ->direct_access() for kaddr and pfn
    params.

    - Improve smart injection support for nvdimm emulation testing.

    - Fix test code that supports for emulating controller temperature.

    - Fix hang on error before devm_memremap_pages()

    - Fix a bug that causes user memory corruption when data returned to
    user for ars_status.

    - Maintainer updates for Ross Zwisler emails and adding Jan Kara to
    fsdax"

    * tag 'libnvdimm-for-4.19_misc' of gitolite.kernel.org:pub/scm/linux/kernel/git/nvdimm/nvdimm:
    libnvdimm: fix ars_status output length calculation
    device-dax: avoid hang on error before devm_memremap_pages()
    tools/testing/nvdimm: improve emulation of smart injection
    filesystem-dax: Do not request kaddr and pfn when not required
    md/dm-writecache: Don't request pointer dummy_addr when not required
    dax/super: Do not request a pointer kaddr when not required
    tools/testing/nvdimm: kaddr and pfn can be NULL to ->direct_access()
    s390, dcssblk: kaddr and pfn can be NULL to ->direct_access()
    libnvdimm, pmem: kaddr and pfn can be NULL to ->direct_access()
    acpi/nfit: queue issuing of ars when an uc error notification comes in
    libnvdimm: Export max available extent
    libnvdimm: Use max contiguous area for namespace size
    MAINTAINERS: Add Jan Kara for filesystem DAX
    MAINTAINERS: update Ross Zwisler's email address
    tools/testing/nvdimm: Fix support for emulating controller temperature
    tools/testing/nvdimm: Make DSM failure code injection an override
    acpi, nfit: Prefer _DSM over _LSR for namespace label reads
    libnvdimm: Introduce locked DIMM capacity support

    Linus Torvalds
     

25 Aug, 2018

1 commit


24 Aug, 2018

1 commit

  • Pull xen fixes and cleanups from Juergen Gross:
    "Some cleanups, some minor fixes and a fix for a bug introduced in this
    merge window hitting 32-bit PV guests"

    * tag 'for-linus-4.19b-rc1b-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
    x86/xen: enable early use of set_fixmap in 32-bit Xen PV guest
    xen: remove unused hypercall functions
    x86/xen: remove unused function xen_auto_xlated_memory_setup()
    xen/ACPI: don't upload Px/Cx data for disabled processors
    x86/Xen: further refine add_preferred_console() invocations
    xen/mcelog: eliminate redundant setting of interface version
    x86/Xen: mark xen_setup_gdt() __init

    Linus Torvalds
     

23 Aug, 2018

1 commit

  • My fix for a recursive Kconfig dependency caused another issue where the
    ACPI specific options end up in the top-level menu in 'menuconfig'. This
    was an unintended side-effect of having a silent option between
    'menuconfig ACPI' and 'if ACPI'.

    Moving the ARCH_SUPPORTS_ACPI symbol ahead of the ACPI menu solves that
    problem and restores the previous presentation.

    Reported-by: Ard Biesheuvel
    Fixes: 2c870e61132c (arm64: fix ACPI dependencies)
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Rafael J. Wysocki

    Arnd Bergmann
     

22 Aug, 2018

2 commits

  • Pull more ACPI updates from Rafael Wysocki:
    "These update the ACPICA code in the kernel to the most recent upstream
    revision (which includes a regression fix and other improvements),
    make ACPICA clear the status of all ACPI events when entering sleep
    states (to restore the previous behavior) and update the ACPI
    operation region driver for the CrystalCove PMIC.

    Specifics:

    - Update the ACPICA code in the kernel to upstream revision 20180810
    including:
    * Fix for AML parser regression causing it to mishandle opcodes
    that open a scope upon parse failures (Erik Schmauss)
    * Fix for a reference counting issue on large systems (Erik
    Schmauss)
    * Fix to discard values coming from register reads that have
    failed (Erik Schmauss)
    * Two acpiexec fixes (Bob Moore, Erik Schmauss)
    * Debugger cleanup (Bob Moore)
    * Cleanup of duplicate table error message (Bob Moore)
    * Cleanup of hex detection in the utilities (Erik Schmauss)

    - Make ACPICA clear the status of all ACPI events when entering sleep
    states again to avoid functional regressions (Rafael Wysocki)

    - Update the ACPI operation region driver for the CrystalCove PMIC to
    cover all of the known operation region fields (Hans de Goede)"

    * tag 'acpi-4.19-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    ACPI / PMIC: CrystalCove: Extend PMOP support to support all possible fields
    ACPICA: Clear status of all events when entering sleep states
    ACPICA: Update version to 20180810
    ACPICA: acpiexec: fix a small memory leak regression
    ACPICA: Reference Counts: increase max to 0x4000 for large servers
    ACPICA: Reference count: add additional debugging details
    ACPICA: acpi_exec: fixing -fi option
    ACPICA: Debugger: Cleanup interface to the AML disassembler
    ACPICA: AML Parser: skip opcodes that open a scope upon parse failure
    ACPICA: Utilities: split hex detection into smaller functions
    ACPICA: Update an error message for a duplicate table
    ACPICA: ACPICA: add status check for acpi_hw_read before assigning return value
    ACPICA: AML Parser: ignore all exceptions resulting from incorrect AML during table load

    Linus Torvalds
     
  • Merge a CrystalCove PMIC driver update.

    * acpi-pmic:
    ACPI / PMIC: CrystalCove: Extend PMOP support to support all possible fields

    Rafael J. Wysocki
     

21 Aug, 2018

1 commit

  • This is unnecessary and triggers a warning in the hypervisor.

    Often systems have more processor entries in their ACPI tables than are
    actually installed/active. The ACPI_STA_DEVICE_PRESENT bit cannot be
    reliably used, but the ACPI_MADT_ENABLED bit can. In order to not
    introduce new functions in the main ACPI processor driver code, simply
    use acpi_get_phys_id(), which does more than we need, but which checks
    the MADT enabled bit in the process. Any CPU for which we can't
    determine the APIC ID is unlikely to work properly anyway, so the extra
    checks done by acpi_get_phys_id() should do no harm.

    Signed-off-by: Jan Beulich
    Reviewed-by: Juergen Gross
    Acked-by: Rafael J. Wysocki
    Signed-off-by: Boris Ostrovsky

    Jan Beulich
     

15 Aug, 2018

15 commits

  • Pull arm64 updates from Will Deacon:
    "A bunch of good stuff in here. Worth noting is that we've pulled in
    the x86/mm branch from -tip so that we can make use of the core
    ioremap changes which allow us to put down huge mappings in the
    vmalloc area without screwing up the TLB. Much of the positive
    diffstat is because of the rseq selftest for arm64.

    Summary:

    - Wire up support for qspinlock, replacing our trusty ticket lock
    code

    - Add an IPI to flush_icache_range() to ensure that stale
    instructions fetched into the pipeline are discarded along with the
    I-cache lines

    - Support for the GCC "stackleak" plugin

    - Support for restartable sequences, plus an arm64 port for the
    selftest

    - Kexec/kdump support on systems booting with ACPI

    - Rewrite of our syscall entry code in C, which allows us to zero the
    GPRs on entry from userspace

    - Support for chained PMU counters, allowing 64-bit event counters to
    be constructed on current CPUs

    - Ensure scheduler topology information is kept up-to-date with CPU
    hotplug events

    - Re-enable support for huge vmalloc/IO mappings now that the core
    code has the correct hooks to use break-before-make sequences

    - Miscellaneous, non-critical fixes and cleanups"

    * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (90 commits)
    arm64: alternative: Use true and false for boolean values
    arm64: kexec: Add comment to explain use of __flush_icache_range()
    arm64: sdei: Mark sdei stack helper functions as static
    arm64, kaslr: export offset in VMCOREINFO ELF notes
    arm64: perf: Add cap_user_time aarch64
    efi/libstub: Only disable stackleak plugin for arm64
    arm64: drop unused kernel_neon_begin_partial() macro
    arm64: kexec: machine_kexec should call __flush_icache_range
    arm64: svc: Ensure hardirq tracing is updated before return
    arm64: mm: Export __sync_icache_dcache() for xen-privcmd
    drivers/perf: arm-ccn: Use devm_ioremap_resource() to map memory
    arm64: Add support for STACKLEAK gcc plugin
    arm64: Add stack information to on_accessible_stack
    drivers/perf: hisi: update the sccl_id/ccl_id when MT is supported
    arm64: fix ACPI dependencies
    rseq/selftests: Add support for arm64
    arm64: acpi: fix alignment fault in accessing ACPI
    efi/arm: map UEFI memory map even w/o runtime services enabled
    efi/arm: preserve early mapping of UEFI memory map longer for BGRT
    drivers: acpi: add dependency of EFI for arm64
    ...

    Linus Torvalds
     
  • Prior to this commit the CRC PMOP handler only supported the X285 and V18X
    PMOP fields. Leading to errors like these on device using the VBUS field:

    [ 765.766489] ACPI Error: AE_BAD_PARAMETER, Returned by Handler for [UserDefinedRegion] (20180531/evregion-266)
    [ 765.766526] ACPI Error: Method parse/execution failed \_SB.I2C1.BATC._BST, AE_BAD_PARAMETER (20180531/psparse-516)
    [ 765.766586] ACPI Error: AE_BAD_PARAMETER, Evaluating _BST (20180531/battery-577)

    This commit adds support for all known fields to the CRC PMOP OpRegion
    handler, the name and register info in this commit comes from:

    https://github.com/01org/ProductionKernelQuilts/blob/master/uefi/cht-m1stable/patches/0002-ACPI-Adding-support-for-WC-and-CRC-opregion.patch

    Signed-off-by: Hans de Goede
    Reviewed-by: Andy Shevchenko
    Acked-by: Mika Westerberg
    Signed-off-by: Rafael J. Wysocki

    Hans de Goede
     
  • Commit fa85015c0d95 (ACPICA: Clear status of all events when entering
    S5) made the sleep state entry code in ACPICA clear the status of all
    ACPI events when entering S5 to fix a functional regression reported
    against commit 18996f2db918 (ACPICA: Events: Stop unconditionally
    clearing ACPI IRQs during suspend/resume). However, it is reported
    now that the regression also affects system states other than S5 on
    some systems and causes them to wake up from sleep prematurely.

    For this reason, make the code in question clear the status of all
    ACPI events when entering all sleep states (in addition to S5) to
    avoid the premature wakeups (this may cause some wakeup events to
    be missed in theory, but the likelihood of that is small and the
    change here simply restores the previous behavior of the code).

    Fixes: 18996f2db918 (ACPICA: Events: Stop unconditionally clearing ACPI IRQs during suspend/resume)
    Reported-by: Paul Menzel
    Tested-by: Paul Menzel
    Cc: 4.17+ # 4.17+: fa85015c0d95 ACPICA: Clear status ...
    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     
  • Eliminates warnings only seen when acpiexec exits.

    Signed-off-by: Bob Moore
    Signed-off-by: Erik Schmauss
    Signed-off-by: Rafael J. Wysocki

    Bob Moore
     
  • Make reference counting diagnostics provide more information on
    what has happened.

    Signed-off-by: Erik Schmauss
    [ rjw: Changelog ]
    Signed-off-by: Rafael J. Wysocki

    Erik Schmauss
     
  • Field elements listed in the init file used to be initialized after
    the table load and before executing module-level code blocks. The
    recent changes in module-level code mean that the table load becomes
    a method execution. If fields are used within module-level code and
    we are executing with -fi option, then these values are populated
    after the table has finished loading. This commit changes the
    initialization of objects listed in the init file so that field unit
    values are populated during the table load.

    Signed-off-by: Erik Schmauss
    Signed-off-by: Rafael J. Wysocki

    Erik Schmauss
     
  • If the disassembler is configured out (such as when the debugger
    is part of a kernel), these debugger commands are disabled:
    List
    Disassemble
    Further, the Debug (single-step) command is simplified because
    each line of code cannot be disassembled.

    Reported-by: Colin Ian King
    Signed-off-by: Bob Moore
    Signed-off-by: Erik Schmauss
    Signed-off-by: Rafael J. Wysocki

    Bob Moore
     
  • This change skips the entire length of opcodes that open a scope
    (Device, Scope, Processor, etc) if the creation of the op fails. The
    failure could be caused by various errors including AE_ALREADY_EXISTS
    and AE_NOT_FOUND.

    Reported-by: Jeremy Linton
    Tested-by: Jeremy Linton
    Signed-off-by: Erik Schmauss
    Cc: 4.17+ # 4.17+
    Signed-off-by: Rafael J. Wysocki

    Erik Schmauss
     
  • acpi_ut_implicit_strtoul64() called acpi_ut_detect_hex_prefix() and
    ignored the return value. Instead, use acpi_ut_remove_hex_prefix().

    Signed-off-by: Erik Schmauss
    Signed-off-by: Rafael J. Wysocki

    Erik Schmauss
     
  • In this case, the exception AE_ALREADY_EXISTS is more
    appropriate.

    Signed-off-by: Bob Moore
    Signed-off-by: Erik Schmauss
    Signed-off-by: Rafael J. Wysocki

    Bob Moore
     
  • The value coming from acpi_hw_read() should not be used if it
    returns an error code, so check the status returned by it before
    using that value in two places in acpi_hw_register_read().

    Reported-by: Mark Gross
    Signed-off-by: Erik Schmauss
    [ rjw: Changelog ]
    Signed-off-by: Rafael J. Wysocki

    Erik Schmauss
     
  • Macros to classify different AML exception codes have been added in
    order to ignore the exceptions,

    Signed-off-by: Erik Schmauss
    [ rjw: Fix damaged white space ]
    Signed-off-by: Rafael J. Wysocki

    Erik Schmauss
     
  • Pull ACPI updates from Rafael Wysocki:
    "These revert two ACPICA commits that are not needed any more, rework
    the property graphs support in ACPI to be more aligned with the
    analogous DT code, add some new quirks and remove one that isn't
    needed any more, add a special platform driver to enumerate multiple
    I2C devices hooked up to the same device object in the ACPI tables and
    update the battery and button drivers.

    Specifics:

    - Revert two ACPICA commits that are not needed any more (Erik
    Schmauss).

    - Rework property graph support in the ACPI device properties
    framework to make it behave more like the analogous DT code and
    update the documentation of it (Sakari Ailus).

    - Change the default ACPI device status after initialization to
    ACPI_STA_DEFAULT instead of 0 (Hans de Goede).

    - Add a special platform driver for enumerating multiple I2C devices
    hooked up to the same object in the ACPI tables (Hans de Goede).

    - Fix the ACPI battery driver to avoid reporting full capacity on
    systems without support for that and clean it up (Hans de Goede,
    Dmitry Rozhkov, Lucas Rangit Magasweran).

    - Add two system wakeup quirks to the ACPI EC driver (Aaron Ma, Mika
    Westerberg).

    - Add the touchscreen on Dell Venue Pro 7139 to the list of "always
    present" devices to make it work (Tristian Celestin).

    - Revert a special tables handling quirk for Dell XPS 9570 and
    Precision M5530 which is not needed any more (Kai Heng Feng).

    - Add support for a new OEM _OSI string to allow system vendors to
    work around issues with NVidia HDMI audio (Alex Hung).

    - Prevent the ACPI button driver from reporting excessive system
    wakeup events and clean it up (Ravi Chandra Sadineni, Randy
    Dunlap).

    - Clean up two minor code style issues in the ACPI core and GHES
    handling on ARM64 (Dongjiu Geng, John Garry, Tom Todd)"

    * tag 'acpi-4.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (34 commits)
    platform/x86: Add ACPI i2c-multi-instantiate pseudo driver
    ACPI / x86: utils: Remove status workaround from acpi_device_always_present()
    ACPI / scan: Create platform device for fwnodes with multiple i2c devices
    ACPI / scan: Initialize status to ACPI_STA_DEFAULT
    ACPI / EC: Add another entry for Thinkpad X1 Carbon 6th
    ACPI: bus: Fix a pointer coding style issue
    arm64 / ACPI: clean the additional checks before calling ghes_notify_sea()
    ACPI / scan: Add static attribute to indirect_io_hosts[]
    ACPI / battery: Do not export energy_full[_design] on devices without full_charge_capacity
    ACPI / EC: Use ec_no_wakeup on ThinkPad X1 Yoga 3rd
    ACPI / battery: get rid of negations in conditions
    ACPI / battery: use specialized print macros
    ACPI / battery: reorder headers alphabetically
    ACPI / battery: drop inclusion of init.h
    ACPI: battery: remove redundant old_present check on insertion
    ACPI: property: graph: Update graph documentation to use generic references
    ACPI: property: graph: Improve graph documentation for port/ep numbering
    ACPI: property: graph: Fix graph documentation
    ACPI: property: Update documentation for hierarchical data extension 1.1
    ACPI: property: Document key numbering for hierarchical data extension refs
    ...

    Linus Torvalds
     
  • Pull power management updates from Rafael Wysocki:
    "These add a new framework for CPU idle time injection, to be used by
    all of the idle injection code in the kernel in the future, fix some
    issues and add a number of relatively small extensions in multiple
    places.

    Specifics:

    - Add a new framework for CPU idle time injection (Daniel Lezcano).

    - Add AVS support to the armada-37xx cpufreq driver (Gregory
    CLEMENT).

    - Add support for current CPU frequency reporting to the ACPI CPPC
    cpufreq driver (George Cherian).

    - Rework the cooling device registration in the imx6q/thermal driver
    (Bastian Stender).

    - Make the pcc-cpufreq driver refuse to work with dynamic scaling
    governors on systems with many CPUs to avoid scalability issues
    with it (Rafael Wysocki).

    - Fix the intel_pstate driver to report different maximum CPU
    frequencies on systems where they really are different and to
    ignore the turbo active ratio if hardware-managend P-states (HWP)
    are in use; make it use the match_string() helper (Xie Yisheng,
    Srinivas Pandruvada).

    - Fix a minor deferred probe issue in the qcom-kryo cpufreq driver
    (Niklas Cassel).

    - Add a tracepoint for the tracking of frequency limits changes (from
    Andriod) to the cpufreq core (Ruchi Kandoi).

    - Fix a circular lock dependency between CPU hotplug and sysfs
    locking in the cpufreq core reported by lockdep (Waiman Long).

    - Avoid excessive error reports on driver registration failures in
    the ARM cpuidle driver (Sudeep Holla).

    - Add a new device links flag to the driver core to make links go
    away automatically on supplier driver removal (Vivek Gautam).

    - Eliminate potential race condition between system-wide power
    management transitions and system shutdown (Pingfan Liu).

    - Add a quirk to save NVS memory on system suspend for the ASUS 1025C
    laptop (Willy Tarreau).

    - Make more systems use suspend-to-idle (instead of ACPI S3) by
    default (Tristian Celestin).

    - Get rid of stack VLA usage in the low-level hibernation code on
    64-bit x86 (Kees Cook).

    - Fix error handling in the hibernation core and mark an expected
    fall-through switch in it (Chengguang Xu, Gustavo Silva).

    - Extend the generic power domains (genpd) framework to support
    attaching a device to a power domain by name (Ulf Hansson).

    - Fix device reference counting and user limits initialization in the
    devfreq core (Arvind Yadav, Matthias Kaehlcke).

    - Fix a few issues in the rk3399_dmc devfreq driver and improve its
    documentation (Enric Balletbo i Serra, Lin Huang, Nick Milner).

    - Drop a redundant error message from the exynos-ppmu devfreq driver
    (Markus Elfring)"

    * tag 'pm-4.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (35 commits)
    PM / reboot: Eliminate race between reboot and suspend
    PM / hibernate: Mark expected switch fall-through
    cpufreq: intel_pstate: Ignore turbo active ratio in HWP
    cpufreq: Fix a circular lock dependency problem
    cpu/hotplug: Add a cpus_read_trylock() function
    x86/power/hibernate_64: Remove VLA usage
    cpufreq: trace frequency limits change
    cpufreq: intel_pstate: Show different max frequency with turbo 3 and HWP
    cpufreq: pcc-cpufreq: Disable dynamic scaling on many-CPU systems
    cpufreq: qcom-kryo: Silently error out on EPROBE_DEFER
    cpufreq / CPPC: Add cpuinfo_cur_freq support for CPPC
    cpufreq: armada-37xx: Add AVS support
    dt-bindings: marvell: Add documentation for the Armada 3700 AVS binding
    PM / devfreq: rk3399_dmc: Fix duplicated opp table on reload.
    PM / devfreq: Init user limits from OPP limits, not viceversa
    PM / devfreq: rk3399_dmc: fix spelling mistakes.
    PM / devfreq: rk3399_dmc: do not print error when get supply and clk defer.
    dt-bindings: devfreq: rk3399_dmc: move interrupts to be optional.
    PM / devfreq: rk3399_dmc: remove wait for dcf irq event.
    dt-bindings: clock: add rk3399 DDR3 standard speed bins.
    ...

    Linus Torvalds
     
  • Pull dma-mapping updates from Christoph Hellwig:

    - a series from Robin to fix bus imposed dma limits by adding a
    separate mask for them to struct device instead of trying to squeeze
    a second meaning out of the existing dma mask as we did before.

    This has ACKs from the various other subsystems touched

    - a small swiotlb cleanup from Kees (acked by Konrad)

    - conversion of nios2 and sh to the new generic dma-noncoherent code.

    Various other architecture conversions will come through the
    architectures maintainers trees.

    * tag 'dma-mapping-4.19' of git://git.infradead.org/users/hch/dma-mapping:
    sh: use generic dma_noncoherent_ops
    sh: split arch/sh/mm/consistent.c
    sh: use dma_direct_ops for the CONFIG_DMA_COHERENT case
    sh: introduce a sh_cacheop_vaddr helper
    sh: simplify get_arch_dma_ops
    OF: Don't set default coherent DMA mask
    ACPI/IORT: Don't set default coherent DMA mask
    iommu/dma: Respect bus DMA limit for IOVAs
    of/device: Set bus DMA mask as appropriate
    ACPI/IORT: Set bus DMA mask as appropriate
    dma-mapping: Generalise dma_32bit_limit flag
    ACPI/IORT: Support address size limit for root complexes
    of/platform: Initialise default DMA masks
    nios2: use generic dma_noncoherent_ops
    swiotlb: clean up reporting
    dma-mapping: relax warning for per-device areas

    Linus Torvalds
     

14 Aug, 2018

4 commits

  • Merge updates of the ACPI battery and button drivers and support for
    a new OEM _OSI string for 4.19.

    * acpi-button:
    ACPI / button: fix defined but not used warning
    ACPI / button: increment wakeup count only when notified

    * acpi-battery:
    ACPI / battery: Do not export energy_full[_design] on devices without full_charge_capacity
    ACPI / battery: get rid of negations in conditions
    ACPI / battery: use specialized print macros
    ACPI / battery: reorder headers alphabetically
    ACPI / battery: drop inclusion of init.h
    ACPI: battery: remove redundant old_present check on insertion

    * acpi-osi:
    ACPI / OSI: Add OEM _OSI string to enable NVidia HDMI audio

    Rafael J. Wysocki
     
  • Merge ACPI x86-specific changes, core updates, EC driver updates and
    APEI support updates for 4.19.

    These add a special platform driver for handling multiple I2C devices
    hooked up to the same device object in the ACPI tables, add some new
    quirks and remove one that is not needed any more.

    * acpi-x86:
    platform/x86: Add ACPI i2c-multi-instantiate pseudo driver
    ACPI / x86: utils: Remove status workaround from acpi_device_always_present()
    ACPI / x86: enable touchscreen on Dell Venue Pro 7139

    * acpi-bus:
    ACPI: bus: Fix a pointer coding style issue
    Revert "ACPI / bus: Parse tables as term_list for Dell XPS 9570 and Precision M5530"

    * acpi-ec:
    ACPI / EC: Add another entry for Thinkpad X1 Carbon 6th
    ACPI / EC: Use ec_no_wakeup on ThinkPad X1 Yoga 3rd

    * acpi-apei:
    arm64 / ACPI: clean the additional checks before calling ghes_notify_sea()

    Rafael J. Wysocki
     
  • Merge ACPICA changes and updates of the ACPI device properties
    framework for 4.19.

    These revert two ACPICA commits that are not needed any more and
    modify the properties graph support in ACPI to be more in-line with
    the analogous DT code.

    * acpica:
    ACPICA: Update version to 20180629
    ACPICA: Revert "iASL compiler: allow compilation of externals with paths that refer to existing names"
    ACPICA: Revert "iASL: change processing of external op namespace nodes for correctness"

    * acpi-property:
    ACPI: property: graph: Update graph documentation to use generic references
    ACPI: property: graph: Improve graph documentation for port/ep numbering
    ACPI: property: graph: Fix graph documentation
    ACPI: property: Update documentation for hierarchical data extension 1.1
    ACPI: property: Document key numbering for hierarchical data extension refs
    ACPI: property: Use data node name and reg property for graphs
    ACPI: property: Allow direct graph endpoint references
    ACPI: property: Make the ACPI graph API private
    ACPI: property: Document hierarchical data extension references
    ACPI: property: Allow making references to non-device nodes
    ACPI: Convert ACPI reference args to generic fwnode reference args

    Rafael J. Wysocki
     
  • Merge changes in the PM core, system-wide PM infrastructure, generic
    power domains (genpd) framework, ACPI PM infrastructure and cpuidle
    for 4.19.

    * pm-core:
    driver core: Add flag to autoremove device link on supplier unbind
    driver core: Rename flag AUTOREMOVE to AUTOREMOVE_CONSUMER

    * pm-domains:
    PM / Domains: Introduce dev_pm_domain_attach_by_name()
    PM / Domains: Introduce option to attach a device by name to genpd
    PM / Domains: dt: Add a power-domain-names property

    * pm-sleep:
    PM / reboot: Eliminate race between reboot and suspend
    PM / hibernate: Mark expected switch fall-through
    x86/power/hibernate_64: Remove VLA usage
    PM / hibernate: cast PAGE_SIZE to int when comparing with error code

    * acpi-pm:
    ACPI / PM: save NVS memory for ASUS 1025C laptop
    ACPI / PM: Default to s2idle in all machines supporting LP S0

    * pm-cpuidle:
    ARM: cpuidle: silence error on driver registration failure

    Rafael J. Wysocki
     

09 Aug, 2018

8 commits

  • Now that we init the status field to ACPI_STA_DEFAULT rather then to 0,
    the workaround for acpi_match_device_ids() always returning -ENOENT when
    status is 0 is no longer needed.

    Signed-off-by: Hans de Goede
    Reviewed-by: Andy Shevchenko
    Signed-off-by: Rafael J. Wysocki

    Hans de Goede
     
  • Rafael J. Wysocki
     
  • Some devices have multiple I2cSerialBus resources and for things to work
    an i2c-client must be instantiated for each, each with its own
    i2c_device_id.

    Normally we only instantiate an i2c-client for the first resource, using
    the ACPI HID as id.

    This commit adds a list of HIDs of devices, which need multiple i2c-clients
    instantiated from a single fwnode, to acpi_device_enumeration_by_parent and
    makes acpi_device_enumeration_by_parent return false for these devices so
    that a platform device will be instantiated.

    This allows the drivers/platform/x86/i2c-multi-instantiate.c driver, which
    knows which i2c_device_id to use for each resource, to bind to the fwnode
    and initiate an i2c-client for each resource.

    Signed-off-by: Hans de Goede
    Reviewed-by: Andy Shevchenko
    Signed-off-by: Rafael J. Wysocki

    Hans de Goede
     
  • Since commit 63347db0affa "ACPI / scan: Use acpi_bus_get_status() to
    initialize ACPI_TYPE_DEVICE devs" the status field of normal acpi_devices
    gets set to 0 by acpi_bus_type_and_status() and filled with its actual
    value later when acpi_add_single_object() calls acpi_bus_get_status().

    This means that any acpi_match_device_ids() calls in between will always
    fail with -ENOENT.

    We already have a workaround for this, which temporary forces status to
    ACPI_STA_DEFAULT in drivers/acpi/x86/utils.c: acpi_device_always_present()
    and the next commit in this series adds another acpi_match_device_ids()
    call between status being initialized as 0 and the acpi_bus_get_status()
    call.

    Rather then adding another workaround, this commit makes
    acpi_bus_type_and_status() initialize status to ACPI_STA_DEFAULT, this is
    safe to do as the only code looking at status between the initialization
    and the acpi_bus_get_status() call is those acpi_match_device_ids() calls.

    Note this does mean that we need to (re)set status to 0 in case the
    acpi_bus_get_status() call fails.

    Signed-off-by: Hans de Goede
    Signed-off-by: Rafael J. Wysocki

    Hans de Goede
     
  • Commit 2c4d6baf1bc4 (ACPI / EC: Use ec_no_wakeup on more Thinkpad X1
    Carbon 6th systems) changed the DMI table to match all systems where
    DMI product family is "Thinkpad X1 Carbon 6th". However, the system I
    have here has this string written differently (ThinkPad vs. Thinkpad)
    which makes the match fail.

    In addition to that, after BIOS upgrade Robin now has the same string
    than my system has (perhaps newer BIOS has changed the string).

    In any case add another DMI entry to acpi_ec_no_wakeup[] table hopefully
    covering all the X1 Carbon 6th systems out there.

    Fixes: 2c4d6baf1bc4 (ACPI / EC: Use ec_no_wakeup on more Thinkpad X1 Carbon 6th systems)
    Signed-off-by: Mika Westerberg
    [ rjw: Rebase and change the ident string to match the product familiy ]
    Signed-off-by: Rafael J. Wysocki

    Mika Westerberg
     
  • Fix white space in the argument list of acpi_device_remove().

    Signed-off-by: Tom Todd
    Signed-off-by: Rafael J. Wysocki

    Tom Todd
     
  • Array indirect_io_hosts[] is declared in acpi_is_indirect_io_slave() as a
    const array, which means that the array will be re-built for each call.

    Optimise by adding the static attribute, which means that the array is
    added to const-data pool and not re-built per function call.

    Reported-by: Hans de Goede
    Signed-off-by: John Garry
    Signed-off-by: Rafael J. Wysocki

    John Garry
     
  • On some devices (with a buggy _BIX implementation) full_charge_capacity
    always reports as 0. This means that our energy_full sysfs attribute will
    also always be 0, which is not useful to export.

    Worse we calculate our reported capacity on full_charge_capacity and if it
    is 0 we always report 0. This causes userspace to immediately shutdown or
    hibernate the laptop since it assumes that the battery is critically low.

    This commit makes us not report energy_full[_design] or capacity on such
    broken devices, avoiding the immediate shutdown / hibernate from userspace.

    Link: https://bugzilla.kernel.org/show_bug.cgi?id=83941
    Signed-off-by: Hans de Goede
    Signed-off-by: Rafael J. Wysocki

    Hans de Goede
     

06 Aug, 2018

2 commits


31 Jul, 2018

1 commit


29 Jul, 2018

2 commits


28 Jul, 2018

1 commit

  • When the ACPI UC error notifier gets called and ARS_REQ bit is set
    with the passed in flag, we can receive -EBUSY if ARS_REQ bit is already
    set for the nfit_spa->ars_state. When that happens, the ARS request is
    dropped. That can potentially cause us to miss the unreported errors that
    the on going ARS request does not receive. Add an ARS_REQ_REDO state that
    will request short ARS upon ARS completion to grab any errors we missed.

    Signed-off-by: Dave Jiang
    Reviewed-by: Vishal Verma

    Dave Jiang