14 Jun, 2020

1 commit


11 Jun, 2020

4 commits

  • to fixup conflicts in arch/x86/kernel/cpu/mce/core.c so MCE specific follow
    up patches can be applied without creating a horrible merge conflict
    afterwards.

    Thomas Gleixner
     
  • Pull more ACPI updates from Rafael Wysocki:
    "Update the ACPICA code in the kernel to upstream revision 20200528
    with the following changes:

    - Remove some dead code from the acpidump utility (Bob Moore)

    - Add new OperationRegion subtype keyword PlatformRtMechanism to the
    compiler (Erik Kaneda)"

    * tag 'acpi-5.8-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    ACPICA: Update version to 20200528
    ACPICA: iASL: add new OperationRegion subtype keyword PlatformRtMechanism
    ACPICA: acpidump: Removed dead code from oslinuxtbl.c

    Linus Torvalds
     
  • Pull more power management updates from Rafael Wysocki:
    "These are operating performance points (OPP) framework updates mostly,
    including support for interconnect bandwidth in the OPP core, plus a
    few cpufreq changes, including boost support in the CPPC cpufreq
    driver, an ACPI device power management fix and a hibernation code
    cleanup.

    Specifics:

    - Add support for interconnect bandwidth to the OPP core (Georgi
    Djakov, Saravana Kannan, Sibi Sankar, Viresh Kumar).

    - Add support for regulator enable/disable to the OPP core (Kamil
    Konieczny).

    - Add boost support to the CPPC cpufreq driver (Xiongfeng Wang).

    - Make the tegra186 cpufreq driver set the
    CPUFREQ_NEED_INITIAL_FREQ_CHECK flag (Mian Yousaf Kaukab).

    - Prevent the ACPI power management from using power resources with
    devices where the list of power resources for power state D0 (full
    power) is missing (Rafael Wysocki).

    - Annotate a hibernation-related function with __init (Christophe
    JAILLET)"

    * tag 'pm-5.8-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    ACPI: PM: Avoid using power resources if there are none for D0
    cpufreq: CPPC: add SW BOOST support
    cpufreq: change '.set_boost' to act on one policy
    PM: hibernate: Add __init annotation to swsusp_header_init()
    opp: Don't parse icc paths unnecessarily
    opp: Remove bandwidth votes when target_freq is zero
    opp: core: add regulators enable and disable
    opp: Reorder the code for !target_freq case
    opp: Expose bandwidth information via debugfs
    cpufreq: dt: Add support for interconnect bandwidth scaling
    opp: Update the bandwidth on OPP frequency changes
    opp: Add sanity checks in _read_opp_key()
    opp: Add support for parsing interconnect bandwidth
    cpufreq: tegra186: add CPUFREQ_NEED_INITIAL_FREQ_CHECK flag
    OPP: Add helpers for reading the binding properties
    dt-bindings: opp: Introduce opp-peak-kBps and opp-avg-kBps bindings

    Linus Torvalds
     
  • Pull virtio updates from Michael Tsirkin:

    - virtio-mem: paravirtualized memory hotplug

    - support doorbell mapping for vdpa

    - config interrupt support in ifc

    - fixes all over the place

    * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: (40 commits)
    vhost/test: fix up after API change
    virtio_mem: convert device block size into 64bit
    virtio-mem: drop unnecessary initialization
    ifcvf: implement config interrupt in IFCVF
    vhost: replace -1 with VHOST_FILE_UNBIND in ioctls
    vhost_vdpa: Support config interrupt in vdpa
    ifcvf: ignore continuous setting same status value
    virtio-mem: Don't rely on implicit compiler padding for requests
    virtio-mem: Try to unplug the complete online memory block first
    virtio-mem: Use -ETXTBSY as error code if the device is busy
    virtio-mem: Unplug subblocks right-to-left
    virtio-mem: Drop manual check for already present memory
    virtio-mem: Add parent resource for all added "System RAM"
    virtio-mem: Better retry handling
    virtio-mem: Offline and remove completely unplugged memory blocks
    mm/memory_hotplug: Introduce offline_and_remove_memory()
    virtio-mem: Allow to offline partially unplugged memory blocks
    mm: Allow to offline unmovable PageOffline() pages via MEM_GOING_OFFLINE
    virtio-mem: Paravirtualized memory hotunplug part 2
    virtio-mem: Paravirtualized memory hotunplug part 1
    ...

    Linus Torvalds
     

10 Jun, 2020

4 commits

  • * acpica:
    ACPICA: Update version to 20200528
    ACPICA: iASL: add new OperationRegion subtype keyword PlatformRtMechanism
    ACPICA: acpidump: Removed dead code from oslinuxtbl.c

    Rafael J. Wysocki
     
  • * pm-cpufreq:
    cpufreq: CPPC: add SW BOOST support
    cpufreq: change '.set_boost' to act on one policy
    cpufreq: tegra186: add CPUFREQ_NEED_INITIAL_FREQ_CHECK flag

    * pm-acpi:
    ACPI: PM: Avoid using power resources if there are none for D0

    Rafael J. Wysocki
     
  • The replacement of with made the include
    of the latter in the middle of asm includes. Fix this up with the aid of
    the below script and manual adjustments here and there.

    import sys
    import re

    if len(sys.argv) is not 3:
    print "USAGE: %s " % (sys.argv[0])
    sys.exit(1)

    hdr_to_move="#include " % sys.argv[2]
    moved = False
    in_hdrs = False

    with open(sys.argv[1], "r") as f:
    lines = f.readlines()
    for _line in lines:
    line = _line.rstrip('
    ')
    if line == hdr_to_move:
    continue
    if line.startswith("#include
    Cc: Geert Uytterhoeven
    Cc: Greentime Hu
    Cc: Greg Ungerer
    Cc: Guan Xuetao
    Cc: Guo Ren
    Cc: Heiko Carstens
    Cc: Helge Deller
    Cc: Ingo Molnar
    Cc: Ley Foon Tan
    Cc: Mark Salter
    Cc: Matthew Wilcox
    Cc: Matt Turner
    Cc: Max Filippov
    Cc: Michael Ellerman
    Cc: Michal Simek
    Cc: Nick Hu
    Cc: Paul Walmsley
    Cc: Richard Weinberger
    Cc: Rich Felker
    Cc: Russell King
    Cc: Stafford Horne
    Cc: Thomas Bogendoerfer
    Cc: Thomas Gleixner
    Cc: Tony Luck
    Cc: Vincent Chen
    Cc: Vineet Gupta
    Cc: Will Deacon
    Cc: Yoshinori Sato
    Link: http://lkml.kernel.org/r/20200514170327.31389-4-rppt@kernel.org
    Signed-off-by: Linus Torvalds

    Mike Rapoport
     
  • The include/linux/pgtable.h is going to be the home of generic page table
    manipulation functions.

    Start with moving asm-generic/pgtable.h to include/linux/pgtable.h and
    make the latter include asm/pgtable.h.

    Signed-off-by: Mike Rapoport
    Signed-off-by: Andrew Morton
    Cc: Arnd Bergmann
    Cc: Borislav Petkov
    Cc: Brian Cain
    Cc: Catalin Marinas
    Cc: Chris Zankel
    Cc: "David S. Miller"
    Cc: Geert Uytterhoeven
    Cc: Greentime Hu
    Cc: Greg Ungerer
    Cc: Guan Xuetao
    Cc: Guo Ren
    Cc: Heiko Carstens
    Cc: Helge Deller
    Cc: Ingo Molnar
    Cc: Ley Foon Tan
    Cc: Mark Salter
    Cc: Matthew Wilcox
    Cc: Matt Turner
    Cc: Max Filippov
    Cc: Michael Ellerman
    Cc: Michal Simek
    Cc: Nick Hu
    Cc: Paul Walmsley
    Cc: Richard Weinberger
    Cc: Rich Felker
    Cc: Russell King
    Cc: Stafford Horne
    Cc: Thomas Bogendoerfer
    Cc: Thomas Gleixner
    Cc: Tony Luck
    Cc: Vincent Chen
    Cc: Vineet Gupta
    Cc: Will Deacon
    Cc: Yoshinori Sato
    Link: http://lkml.kernel.org/r/20200514170327.31389-3-rppt@kernel.org
    Signed-off-by: Linus Torvalds

    Mike Rapoport
     

08 Jun, 2020

1 commit

  • As recently reported, some platforms provide a list of power
    resources for device power state D3hot, through the _PR3 object,
    but they do not provide a list of power resources for device power
    state D0.

    Among other things, this causes acpi_device_get_power() to return
    D3hot as the current state of the device in question if all of the
    D3hot power resources are "on", because it sees the power_resources
    flag set and calls acpi_power_get_inferred_state() which finds that
    D3hot is the shallowest power state with all of the associated power
    resources turned "on", so that's what it returns. Moreover, that
    value takes precedence over the acpi_dev_pm_explicit_get() return
    value, because it means a deeper power state. The device may very
    well be in D0 physically at that point, however.

    Moreover, the presence of _PR3 without _PR0 for a given device
    means that only one D3-level power state can be supported by it.
    Namely, because there are no power resources to turn "off" when
    transitioning the device from D0 into D3cold (which should be
    supported since _PR3 is present), the evaluation of _PS3 should
    be sufficient to put it straight into D3cold, but this means that
    the effect of turning "on" the _PR3 power resources is unclear,
    so it is better to avoid doing that altogether. Consequently,
    there is no practical way do distinguish D3cold from D3hot for
    the device in question and the power states of it can be labeled
    so that D3hot is the deepest supported one (and Linux assumes
    that putting a device into D3hot via ACPI may cause power to be
    removed from it anyway, for legacy reasons).

    To work around the problem described above modify the ACPI
    enumeration of devices so that power resources are only used
    for device power management if the list of D0 power resources
    is not empty and make it mart D3cold as supported only if that
    is the case and the D3hot list of power resources is not empty
    too.

    Fixes: ef85bdbec444 ("ACPI / scan: Consolidate extraction of power resources lists")
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=205057
    Link: https://lore.kernel.org/linux-acpi/20200603194659.185757-1-hdegoede@redhat.com/
    Reported-by: Hans de Goede
    Tested-by: Hans de Goede
    Tested-by: youling257@gmail.com
    Cc: 3.10+ # 3.10+
    Signed-off-by: Rafael J. Wysocki
    Reviewed-by: Hans de Goede

    Rafael J. Wysocki
     

07 Jun, 2020

1 commit

  • Pull PCI updates from Bjorn Helgaas:
    "Enumeration:

    - Program MPS for RCiEP devices (Ashok Raj)

    - Fix pci_register_host_bridge() device_register() error handling
    (Rob Herring)

    - Fix pci_host_bridge struct device release/free handling (Rob
    Herring)

    Resource management:

    - Allow resizing BARs for devices on root bus (Ard Biesheuvel)

    Power management:

    - Reduce Thunderbolt resume time by working around devices that don't
    support DLL Link Active reporting (Mika Westerberg)

    - Work around a Pericom USB controller OHCI/EHCI PME# defect
    (Kai-Heng Feng)

    Virtualization:

    - Add ACS quirk for Intel Root Complex Integrated Endpoints (Ashok
    Raj)

    - Avoid FLR for AMD Starship USB 3.0 (Kevin Buettner)

    - Avoid FLR for AMD Matisse HD Audio & USB 3.0 (Marcos Scriven)

    Error handling:

    - Use only _OSC (not HEST FIRMWARE_FIRST) to determine AER ownership
    (Alexandru Gagniuc, Kuppuswamy Sathyanarayanan)

    - Reduce verbosity by logging only ACPI_NOTIFY_DISCONNECT_RECOVER
    events (Kuppuswamy Sathyanarayanan)

    - Don't enable AER by default in Kconfig (Bjorn Helgaas)

    Peer-to-peer DMA:

    - Add AMD Zen Raven and Renoir Root Ports to whitelist (Alex Deucher)

    ASPM:

    - Allow ASPM on links to PCIe-to-PCI/PCI-X Bridges (Kai-Heng Feng)

    Endpoint framework:

    - Fix DMA channel release in test (Kunihiko Hayashi)

    - Add page size as argument to pci_epc_mem_init() (Lad Prabhakar)

    - Add support to handle multiple base for mapping outbound memory
    (Lad Prabhakar)

    Generic host bridge driver:

    - Support building as module (Rob Herring)

    - Eliminate pci_host_common_probe wrappers (Rob Herring)

    Amlogic Meson PCIe controller driver:

    - Don't use FAST_LINK_MODE to set up link (Marc Zyngier)

    Broadcom STB PCIe controller driver:

    - Disable ASPM L0s if 'aspm-no-l0s' in DT (Jim Quinlan)

    - Fix clk_put() error (Jim Quinlan)

    - Fix window register offset (Jim Quinlan)

    - Assert fundamental reset on initialization (Nicolas Saenz Julienne)

    - Add notify xHCI reset property (Nicolas Saenz Julienne)

    - Add init routine for Raspberry Pi 4 VL805 USB controller (Nicolas
    Saenz Julienne)

    - Sync with Raspberry Pi 4 firmware for VL805 initialization (Nicolas
    Saenz Julienne)

    Cadence PCIe controller driver:

    - Remove "cdns,max-outbound-regions" DT property (replaced by
    "ranges") (Kishon Vijay Abraham I)

    - Read 32-bit (not 16-bit) Vendor ID/Device ID property from DT
    (Kishon Vijay Abraham I)

    Marvell Aardvark PCIe controller driver:

    - Improve link training (Marek Behún)

    - Add PHY support (Marek Behún)

    - Add "phys", "max-link-speed", "reset-gpios" to dt-binding (Marek
    Behún)

    - Train link immediately after enabling training to work around
    detection issues with some cards (Pali Rohár)

    - Issue PERST via GPIO to work around detection issues (Pali Rohár)

    - Don't blindly enable ASPM L0s (Pali Rohár)

    - Replace custom macros by standard linux/pci_regs.h macros (Pali
    Rohár)

    Microsoft Hyper-V host bridge driver:

    - Fix probe failure path to release resource (Wei Hu)

    - Retry PCI bus D0 entry on invalid device state for kdump (Wei Hu)

    Renesas R-Car PCIe controller driver:

    - Fix incorrect programming of OB windows (Andrew Murray)

    - Add suspend/resume (Kazufumi Ikeda)

    - Rename pcie-rcar.c to pcie-rcar-host.c (Lad Prabhakar)

    - Add endpoint controller driver (Lad Prabhakar)

    - Fix PCIEPAMR mask calculation (Lad Prabhakar)

    - Add r8a77961 to DT binding (Yoshihiro Shimoda)

    Socionext UniPhier Pro5 controller driver:

    - Add endpoint controller driver (Kunihiko Hayashi)

    Synopsys DesignWare PCIe controller driver:

    - Program outbound ATU upper limit register (Alan Mikhak)

    - Fix inner MSI IRQ domain registration (Marc Zyngier)

    Miscellaneous:

    - Check for platform_get_irq() failure consistently (negative return
    means failure) (Aman Sharma)

    - Fix several runtime PM get/put imbalances (Dinghao Liu)

    - Use flexible-array and struct_size() helpers for code cleanup
    (Gustavo A. R. Silva)

    - Update & fix issues in bridge emulation of PCIe registers (Jon
    Derrick)

    - Add macros for bridge window names (PCI_BRIDGE_IO_WINDOW, etc)
    (Krzysztof Wilczyński)

    - Work around Intel PCH MROMs that have invalid BARs (Xiaochun Lee)"

    * tag 'pci-v5.8-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (100 commits)
    PCI: uniphier: Add Socionext UniPhier Pro5 PCIe endpoint controller driver
    PCI: Add ACS quirk for Intel Root Complex Integrated Endpoints
    PCI/DPC: Print IRQ number used by port
    PCI/AER: Use "aer" variable for capability offset
    PCI/AER: Remove redundant dev->aer_cap checks
    PCI/AER: Remove redundant pci_is_pcie() checks
    PCI/AER: Remove HEST/FIRMWARE_FIRST parsing for AER ownership
    PCI: tegra: Fix runtime PM imbalance on error
    PCI: vmd: Filter resource type bits from shadow register
    PCI: tegra194: Fix runtime PM imbalance on error
    dt-bindings: PCI: Add UniPhier PCIe endpoint controller description
    PCI: hv: Use struct_size() helper
    PCI: Rename _DSM constants to align with spec
    PCI: Avoid FLR for AMD Starship USB 3.0
    PCI: Avoid FLR for AMD Matisse HD Audio & USB 3.0
    x86/PCI: Drop unused xen_register_pirq() gsi_override parameter
    PCI: dwc: Use private data pointer of "struct irq_domain" to get pcie_port
    PCI: amlogic: meson: Don't use FAST_LINK_MODE to set up link
    PCI: dwc: Fix inner MSI IRQ domain registration
    PCI: dwc: pci-dra7xx: Use devm_platform_ioremap_resource_byname()
    ...

    Linus Torvalds
     

05 Jun, 2020

4 commits

  • ACPICA commit 2c2eefa827bd37297f5f9ca4b263fcba829aaf3f

    Link: https://github.com/acpica/acpica/commit/2c2eefa8
    Signed-off-by: Erik Kaneda
    Signed-off-by: Bob Moore
    Signed-off-by: Rafael J. Wysocki

    Erik Kaneda
     
  • We want to allow to specify (similar as for a DIMM), to which node a
    virtio-mem device (and, therefore, its memory) belongs. Add a new
    virtio-mem feature flag and export pxm_to_node, so it can be used in kernel
    module context.

    Acked-by: Michal Hocko # for the export
    Acked-by: "Rafael J. Wysocki" # for the export
    Acked-by: Pankaj Gupta
    Tested-by: Pankaj Gupta
    Cc: "Michael S. Tsirkin"
    Cc: Jason Wang
    Cc: Oscar Salvador
    Cc: Michal Hocko
    Cc: Igor Mammedov
    Cc: Dave Young
    Cc: Andrew Morton
    Cc: Dan Williams
    Cc: Pavel Tatashin
    Cc: Stefan Hajnoczi
    Cc: Vlastimil Babka
    Cc: Len Brown
    Cc: linux-acpi@vger.kernel.org
    Signed-off-by: David Hildenbrand
    Link: https://lore.kernel.org/r/20200507140139.17083-4-david@redhat.com
    Signed-off-by: Michael S. Tsirkin

    David Hildenbrand
     
  • - Constify struct pci_ecam_ops (Rob Herring)

    - Support building as modules (Rob Herring)

    - Eliminate wrappers for pci_host_common_probe() by using DT match table
    data (Rob Herring)

    * remotes/lorenzo/pci/host-generic:
    PCI: host-generic: Eliminate pci_host_common_probe wrappers
    PCI: host-generic: Support building as modules
    PCI: Constify struct pci_ecam_ops

    # Conflicts:
    # drivers/pci/controller/dwc/pcie-hisi.c

    Bjorn Helgaas
     
  • - Clarify that platform_get_irq() should never return 0 (Bjorn Helgaas)

    - Check for platform_get_irq() failure consistently (Bjorn Helgaas)

    - Replace zero-length array with flexible-array (Gustavo A. R. Silva)

    - Unify pcie_find_root_port() and pci_find_pcie_root_port() (Yicong Yang)

    - Quirk Intel C620 MROMs, which have non-BARs in BAR locations (Xiaochun
    Lee)

    - Fix pcie_pme_resume() and pcie_pme_remove() kernel-doc (Jay Fang)

    - Rename _DSM constants to align with spec (Krzysztof Wilczyński)

    * pci/misc:
    PCI: Rename _DSM constants to align with spec
    PCI/PME: Fix kernel-doc of pcie_pme_resume() and pcie_pme_remove()
    x86/PCI: Mark Intel C620 MROMs as having non-compliant BARs
    PCI: Unify pcie_find_root_port() and pci_find_pcie_root_port()
    PCI: Replace zero-length array with flexible-array
    PCI: Check for platform_get_irq() failure consistently
    driver core: platform: Clarify that IRQ 0 is invalid

    Bjorn Helgaas
     

03 Jun, 2020

4 commits

  • Pull ACPI updates from Rafael Wysocki:
    "These update the ACPICA code in the kernel to upstream revision
    20200430, fix several reference counting errors related to ACPI
    tables, add _Exx / _Lxx support to the GED driver, add a new
    acpi_evaluate_reg() helper, add new DPTF battery participant driver
    and extend the DPFT power participant driver, improve the handling of
    memory failures in the APEI code, add a blacklist entry to the
    backlight driver, update the PMIC driver and the processor idle
    driver, fix two kobject reference count leaks, and make a few janitory
    changes.

    Specifics:

    - Update the ACPICA code in the kernel to upstream revision 20200430:

    - Move acpi_gbl_next_cmd_num definition (Erik Kaneda).

    - Ignore AE_ALREADY_EXISTS status in the disassembler when parsing
    create operators (Erik Kaneda).

    - Add status checks to the dispatcher (Erik Kaneda).

    - Fix required parameters for _NIG and _NIH (Erik Kaneda).

    - Make acpi_protocol_lengths static (Yue Haibing).

    - Fix ACPI table reference counting errors in several places, mostly
    in error code paths (Hanjun Guo).

    - Extend the Generic Event Device (GED) driver to support _Exx and
    _Lxx handler methods (Ard Biesheuvel).

    - Add new acpi_evaluate_reg() helper and modify the ACPI PCI hotplug
    code to use it (Hans de Goede).

    - Add new DPTF battery participant driver and make the DPFT power
    participant driver create more sysfs device attributes (Srinivas
    Pandruvada).

    - Improve the handling of memory failures in APEI (James Morse).

    - Add new blacklist entry for Acer TravelMate 5735Z to the backlight
    driver (Paul Menzel).

    - Add i2c address for thermal control to the PMIC driver (Mauro
    Carvalho Chehab).

    - Allow the ACPI processor idle driver to work on platforms with only
    one ACPI C-state present (Zhang Rui).

    - Fix kobject reference count leaks in error code paths in two places
    (Qiushi Wu).

    - Delete unused proc filename macros and make some symbols static
    (Pascal Terjan, Zheng Zengkai, Zou Wei)"

    * tag 'acpi-5.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (32 commits)
    ACPI: CPPC: Fix reference count leak in acpi_cppc_processor_probe()
    ACPI: sysfs: Fix reference count leak in acpi_sysfs_add_hotplug_profile()
    ACPI: GED: use correct trigger type field in _Exx / _Lxx handling
    ACPI: DPTF: Add battery participant driver
    ACPI: DPTF: Additional sysfs attributes for power participant driver
    ACPI: video: Use native backlight on Acer TravelMate 5735Z
    arm64: acpi: Make apei_claim_sea() synchronise with APEI's irq work
    ACPI: APEI: Kick the memory_failure() queue for synchronous errors
    mm/memory-failure: Add memory_failure_queue_kick()
    ACPI / PMIC: Add i2c address for thermal control
    ACPI: GED: add support for _Exx / _Lxx handler methods
    ACPI: Delete unused proc filename macros
    ACPI: hotplug: PCI: Use the new acpi_evaluate_reg() helper
    ACPI: utils: Add acpi_evaluate_reg() helper
    ACPI: debug: Make two functions static
    ACPI: sleep: Put the FACS table after using it
    ACPI: scan: Put SPCR and STAO table after using it
    ACPI: EC: Put the ACPI table after using it
    ACPI: APEI: Put the HEST table for error path
    ACPI: APEI: Put the error record serialization table for error path
    ...

    Linus Torvalds
     
  • Pull power management updates from Rafael Wysocki:
    "These rework the system-wide PM driver flags, make runtime switching
    of cpuidle governors easier, improve the user space hibernation
    interface code, add intel-speed-select interface documentation, add
    more debug messages to the ACPI code handling suspend to idle, update
    the cpufreq core and drivers, fix a minor issue in the cpuidle core
    and update two cpuidle drivers, improve the PM-runtime framework,
    update the Intel RAPL power capping driver, update devfreq core and
    drivers, and clean up the cpupower utility.

    Specifics:

    - Rework the system-wide PM driver flags to make them easier to
    understand and use and update their documentation (Rafael Wysocki,
    Alan Stern).

    - Allow cpuidle governors to be switched at run time regardless of
    the kernel configuration and update the related documentation
    accordingly (Hanjun Guo).

    - Improve the resume device handling in the user space hibernarion
    interface code (Domenico Andreoli).

    - Document the intel-speed-select sysfs interface (Srinivas
    Pandruvada).

    - Make the ACPI code handing suspend to idle print more debug
    messages to help diagnose issues with it (Rafael Wysocki).

    - Fix a helper routine in the cpufreq core and correct a typo in the
    struct cpufreq_driver kerneldoc comment (Rafael Wysocki, Wang
    Wenhu).

    - Update cpufreq drivers:

    - Make the intel_pstate driver start in the passive mode by
    default on systems without HWP (Rafael Wysocki).

    - Add i.MX7ULP support to the imx-cpufreq-dt driver and add
    i.MX7ULP to the cpufreq-dt-platdev blacklist (Peng Fan).

    - Convert the qoriq cpufreq driver to a platform one, make the
    platform code create a suitable device object for it and add
    platform dependencies to it (Mian Yousaf Kaukab, Geert
    Uytterhoeven).

    - Fix wrong compatible binding in the qcom driver (Ansuel Smith).

    - Build the omap driver by default for ARCH_OMAP2PLUS (Anders
    Roxell).

    - Add r8a7742 SoC support to the dt cpufreq driver (Lad
    Prabhakar).

    - Update cpuidle core and drivers:

    - Fix three reference count leaks in error code paths in the
    cpuidle core (Qiushi Wu).

    - Convert Qualcomm SPM to a generic cpuidle driver (Stephan
    Gerhold).

    - Fix up the execution order when entering a domain idle state in
    the PSCI driver (Ulf Hansson).

    - Fix a reference counting issue related to clock management and
    clean up two oddities in the PM-runtime framework (Rafael Wysocki,
    Andy Shevchenko).

    - Add ElkhartLake support to the Intel RAPL power capping driver and
    remove an unused local MSR definition from it (Jacob Pan, Sumeet
    Pawnikar).

    - Update devfreq core and drivers:

    - Replace strncpy() with strscpy() in the devfreq core and use
    lockdep asserts instead of manual checks for a locked mutex in
    it (Dmitry Osipenko, Krzysztof Kozlowski).

    - Add a generic imx bus scaling driver and make it register an
    interconnect device (Leonard Crestez, Gustavo A. R. Silva).

    - Make the cpufreq notifier in the tegra30 driver take boosting
    into account and delete an unuseful error message from that
    driver (Dmitry Osipenko, Markus Elfring).

    - Remove unneeded semicolon from the cpupower code (Zou Wei)"

    * tag 'pm-5.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (51 commits)
    cpuidle: Fix three reference count leaks
    PM: runtime: Replace pm_runtime_callbacks_present()
    PM / devfreq: Use lockdep asserts instead of manual checks for locked mutex
    PM / devfreq: imx-bus: Fix inconsistent IS_ERR and PTR_ERR
    PM / devfreq: Replace strncpy with strscpy
    PM / devfreq: imx: Register interconnect device
    PM / devfreq: Add generic imx bus scaling driver
    PM / devfreq: tegra30: Delete an error message in tegra_devfreq_probe()
    PM / devfreq: tegra30: Make CPUFreq notifier to take into account boosting
    PM: hibernate: Restrict writes to the resume device
    PM: runtime: clk: Fix clk_pm_runtime_get() error path
    cpuidle: Convert Qualcomm SPM driver to a generic CPUidle driver
    ACPI: EC: PM: s2idle: Extend GPE dispatching debug message
    ACPI: PM: s2idle: Print type of wakeup debug messages
    powercap: RAPL: remove unused local MSR define
    PM: runtime: Make clear what we do when conditions are wrong in rpm_suspend()
    Documentation: admin-guide: pm: Document intel-speed-select
    PM: hibernate: Split off snapshot dev option
    PM: hibernate: Incorporate concurrency handling
    Documentation: ABI: make current_governer_ro as a candidate for removal
    ...

    Linus Torvalds
     
  • Merge updates from Andrew Morton:
    "A few little subsystems and a start of a lot of MM patches.

    Subsystems affected by this patch series: squashfs, ocfs2, parisc,
    vfs. With mm subsystems: slab-generic, slub, debug, pagecache, gup,
    swap, memcg, pagemap, memory-failure, vmalloc, kasan"

    * emailed patches from Andrew Morton : (128 commits)
    kasan: move kasan_report() into report.c
    mm/mm_init.c: report kasan-tag information stored in page->flags
    ubsan: entirely disable alignment checks under UBSAN_TRAP
    kasan: fix clang compilation warning due to stack protector
    x86/mm: remove vmalloc faulting
    mm: remove vmalloc_sync_(un)mappings()
    x86/mm/32: implement arch_sync_kernel_mappings()
    x86/mm/64: implement arch_sync_kernel_mappings()
    mm/ioremap: track which page-table levels were modified
    mm/vmalloc: track which page-table levels were modified
    mm: add functions to track page directory modifications
    s390: use __vmalloc_node in stack_alloc
    powerpc: use __vmalloc_node in alloc_vm_stack
    arm64: use __vmalloc_node in arch_alloc_vmap_stack
    mm: remove vmalloc_user_node_flags
    mm: switch the test_vmalloc module to use __vmalloc_node
    mm: remove __vmalloc_node_flags_caller
    mm: remove both instances of __vmalloc_node_flags
    mm: remove the prot argument to __vmalloc_node
    mm: remove the pgprot argument to __vmalloc
    ...

    Linus Torvalds
     
  • These functions are not needed anymore because the vmalloc and ioremap
    mappings are now synchronized when they are created or torn down.

    Remove all callers and function definitions.

    Signed-off-by: Joerg Roedel
    Signed-off-by: Andrew Morton
    Tested-by: Steven Rostedt (VMware)
    Acked-by: Andy Lutomirski
    Acked-by: Peter Zijlstra (Intel)
    Cc: Arnd Bergmann
    Cc: Christoph Hellwig
    Cc: Dave Hansen
    Cc: "H . Peter Anvin"
    Cc: Ingo Molnar
    Cc: Matthew Wilcox (Oracle)
    Cc: Michal Hocko
    Cc: "Rafael J. Wysocki"
    Cc: Thomas Gleixner
    Cc: Vlastimil Babka
    Link: http://lkml.kernel.org/r/20200515140023.25469-7-joro@8bytes.org
    Signed-off-by: Linus Torvalds

    Joerg Roedel
     

02 Jun, 2020

1 commit

  • Pull arm64 updates from Will Deacon:
    "A sizeable pile of arm64 updates for 5.8.

    Summary below, but the big two features are support for Branch Target
    Identification and Clang's Shadow Call stack. The latter is currently
    arm64-only, but the high-level parts are all in core code so it could
    easily be adopted by other architectures pending toolchain support

    Branch Target Identification (BTI):

    - Support for ARMv8.5-BTI in both user- and kernel-space. This allows
    branch targets to limit the types of branch from which they can be
    called and additionally prevents branching to arbitrary code,
    although kernel support requires a very recent toolchain.

    - Function annotation via SYM_FUNC_START() so that assembly functions
    are wrapped with the relevant "landing pad" instructions.

    - BPF and vDSO updates to use the new instructions.

    - Addition of a new HWCAP and exposure of BTI capability to userspace
    via ID register emulation, along with ELF loader support for the
    BTI feature in .note.gnu.property.

    - Non-critical fixes to CFI unwind annotations in the sigreturn
    trampoline.

    Shadow Call Stack (SCS):

    - Support for Clang's Shadow Call Stack feature, which reserves
    platform register x18 to point at a separate stack for each task
    that holds only return addresses. This protects function return
    control flow from buffer overruns on the main stack.

    - Save/restore of x18 across problematic boundaries (user-mode,
    hypervisor, EFI, suspend, etc).

    - Core support for SCS, should other architectures want to use it
    too.

    - SCS overflow checking on context-switch as part of the existing
    stack limit check if CONFIG_SCHED_STACK_END_CHECK=y.

    CPU feature detection:

    - Removed numerous "SANITY CHECK" errors when running on a system
    with mismatched AArch32 support at EL1. This is primarily a concern
    for KVM, which disabled support for 32-bit guests on such a system.

    - Addition of new ID registers and fields as the architecture has
    been extended.

    Perf and PMU drivers:

    - Minor fixes and cleanups to system PMU drivers.

    Hardware errata:

    - Unify KVM workarounds for VHE and nVHE configurations.

    - Sort vendor errata entries in Kconfig.

    Secure Monitor Call Calling Convention (SMCCC):

    - Update to the latest specification from Arm (v1.2).

    - Allow PSCI code to query the SMCCC version.

    Software Delegated Exception Interface (SDEI):

    - Unexport a bunch of unused symbols.

    - Minor fixes to handling of firmware data.

    Pointer authentication:

    - Add support for dumping the kernel PAC mask in vmcoreinfo so that
    the stack can be unwound by tools such as kdump.

    - Simplification of key initialisation during CPU bringup.

    BPF backend:

    - Improve immediate generation for logical and add/sub instructions.

    vDSO:

    - Minor fixes to the linker flags for consistency with other
    architectures and support for LLVM's unwinder.

    - Clean up logic to initialise and map the vDSO into userspace.

    ACPI:

    - Work around for an ambiguity in the IORT specification relating to
    the "num_ids" field.

    - Support _DMA method for all named components rather than only PCIe
    root complexes.

    - Minor other IORT-related fixes.

    Miscellaneous:

    - Initialise debug traps early for KGDB and fix KDB cacheflushing
    deadlock.

    - Minor tweaks to early boot state (documentation update, set
    TEXT_OFFSET to 0x0, increase alignment of PE/COFF sections).

    - Refactoring and cleanup"

    * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (148 commits)
    KVM: arm64: Move __load_guest_stage2 to kvm_mmu.h
    KVM: arm64: Check advertised Stage-2 page size capability
    arm64/cpufeature: Add get_arm64_ftr_reg_nowarn()
    ACPI/IORT: Remove the unused __get_pci_rid()
    arm64/cpuinfo: Add ID_MMFR4_EL1 into the cpuinfo_arm64 context
    arm64/cpufeature: Add remaining feature bits in ID_AA64PFR1 register
    arm64/cpufeature: Add remaining feature bits in ID_AA64PFR0 register
    arm64/cpufeature: Add remaining feature bits in ID_AA64ISAR0 register
    arm64/cpufeature: Add remaining feature bits in ID_MMFR4 register
    arm64/cpufeature: Add remaining feature bits in ID_PFR0 register
    arm64/cpufeature: Introduce ID_MMFR5 CPU register
    arm64/cpufeature: Introduce ID_DFR1 CPU register
    arm64/cpufeature: Introduce ID_PFR2 CPU register
    arm64/cpufeature: Make doublelock a signed feature in ID_AA64DFR0
    arm64/cpufeature: Drop TraceFilt feature exposure from ID_DFR0 register
    arm64/cpufeature: Add explicit ftr_id_isar0[] for ID_ISAR0 register
    arm64: mm: Add asid_gen_match() helper
    firmware: smccc: Fix missing prototype warning for arm_smccc_version_init
    arm64: vdso: Fix CFI directives in sigreturn trampoline
    arm64: vdso: Don't prefix sigreturn trampoline with a BTI C instruction
    ...

    Linus Torvalds
     

01 Jun, 2020

4 commits

  • * acpi-apei:
    arm64: acpi: Make apei_claim_sea() synchronise with APEI's irq work
    ACPI: APEI: Kick the memory_failure() queue for synchronous errors
    mm/memory-failure: Add memory_failure_queue_kick()

    * acpi-pmic:
    ACPI / PMIC: Add i2c address for thermal control

    * acpi-video:
    ACPI: video: Use native backlight on Acer TravelMate 5735Z

    * acpi-dptf:
    ACPI: DPTF: Add battery participant driver
    ACPI: DPTF: Additional sysfs attributes for power participant driver

    Rafael J. Wysocki
     
  • * acpi-processor:
    ACPI: processor: idle: Allow probing on platforms with one ACPI C-state

    * acpi-cppc:
    ACPI: CPPC: Fix reference count leak in acpi_cppc_processor_probe()
    ACPI: CPPC: Make some symbols static

    * acpi-dbg:
    ACPI: debug: Make two functions static

    * acpi-misc:
    ACPI: GED: use correct trigger type field in _Exx / _Lxx handling
    ACPI: GED: add support for _Exx / _Lxx handler methods
    ACPI: Delete unused proc filename macros

    * acpi-pci:
    ACPI: hotplug: PCI: Use the new acpi_evaluate_reg() helper
    ACPI: utils: Add acpi_evaluate_reg() helper

    Rafael J. Wysocki
     
  • * acpica:
    ACPICA: Update version to 20200430
    ACPICA: Fix required parameters for _NIG and _NIH
    ACPICA: Dispatcher: add status checks
    ACPICA: Disassembler: ignore AE_ALREADY_EXISTS status when parsing create operators
    ACPICA: Move acpi_gbl_next_cmd_num definition to acglobal.h
    ACPICA: Make acpi_protocol_lengths static

    * acpi-tables:
    ACPI: sleep: Put the FACS table after using it
    ACPI: scan: Put SPCR and STAO table after using it
    ACPI: EC: Put the ACPI table after using it
    ACPI: APEI: Put the HEST table for error path
    ACPI: APEI: Put the error record serialization table for error path
    ACPI: APEI: Put the error injection table for error path and module exit
    ACPI: APEI: Put the boot error record table after parsing
    ACPI: watchdog: Put the watchdog action table after parsing
    ACPI: LPIT: Put the low power idle table after using it

    Rafael J. Wysocki
     
  • * pm-core:
    PM: runtime: Replace pm_runtime_callbacks_present()
    PM: runtime: clk: Fix clk_pm_runtime_get() error path
    PM: runtime: Make clear what we do when conditions are wrong in rpm_suspend()

    * pm-sleep:
    PM: hibernate: Restrict writes to the resume device
    PM: hibernate: Split off snapshot dev option
    PM: hibernate: Incorporate concurrency handling
    PM: sleep: Helpful edits for devices.rst documentation
    Documentation: PM: sleep: Update driver flags documentation
    PM: sleep: core: Rename DPM_FLAG_LEAVE_SUSPENDED
    PM: sleep: core: Rename DPM_FLAG_NEVER_SKIP
    PM: sleep: core: Rename dev_pm_smart_suspend_and_suspended()
    PM: sleep: core: Rename dev_pm_may_skip_resume()
    PM: sleep: core: Rework the power.may_skip_resume handling
    PM: sleep: core: Do not skip callbacks in the resume phase
    PM: sleep: core: Fold functions into their callers
    PM: sleep: core: Simplify the SMART_SUSPEND flag handling

    Rafael J. Wysocki
     

28 May, 2020

3 commits


27 May, 2020

2 commits

  • Commit ea6f3af4c5e63f69 ("ACPI: GED: add support for _Exx / _Lxx handler
    methods") added a reference to the 'triggering' field of either the
    normal or the extended ACPI IRQ resource struct, but inadvertently used
    the wrong pointer in the latter case. Note that both pointers refer to the
    same union, and the 'triggering' field appears at the same offset in both
    struct types, so it currently happens to work by accident. But let's fix
    it nonetheless

    Fixes: ea6f3af4c5e63f69 ("ACPI: GED: add support for _Exx / _Lxx handler methods")
    Signed-off-by: Ard Biesheuvel
    Signed-off-by: Rafael J. Wysocki

    Ard Biesheuvel
     
  • Since commit bc8648d49a95 ("ACPI/IORT: Handle PCI aliases properly for
    IOMMUs"), __get_pci_rid() has become actually unused and can be removed.

    Signed-off-by: Zenghui Yu
    Acked-by: Lorenzo Pieralisi
    Acked-by: Hanjun Guo
    Link: https://lore.kernel.org/r/20200509093430.1983-1-yuzenghui@huawei.com
    Signed-off-by: Will Deacon

    Zenghui Yu
     

25 May, 2020

5 commits

  • Add the "ACPI" string to the "EC GPE dispatched" message as it is
    ACPI-related.

    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     
  • Since acpi_s2idle_wake() knows the category of wakeup causing the
    system to resume from suspend-to-idle, make it print a unique message
    for each of them to help diagnose wakeup issues.

    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     
  • This driver adds support for Dynamic Platform and Thermal Framework
    battery participant device support.

    These attributes are presented via sysfs interface under the platform
    device for the battery participant:
    $ls /sys/bus/platform/devices/INT3532:00/dptf_battery
    current_discharge_capbility_ma
    max_platform_power_mw
    no_load_voltage_mv
    high_freq_impedance_mohm
    max_steady_state_power_mw

    Refer to the documentation at
    Documentation/ABI/testing/sysfs-platform-dptf
    for details.

    Here the implementation reuses existing dptf-power.c as the motivation and
    processing is same. It also shares one ACPI method. Here this change is
    using participant type, "PTYP" method to identify and do different
    processing. By using participant type, create/delete either "dptf_power"
    or "dptf_battery" attribute group and send notifications.

    The particpant type for for the battery participant is 0x0C.

    ACPI methods description:

    PMAX (Intel(R) Dynamic Tuning Platform Max Power Supplied by Battery):
    This object evaluates to the maximum platform power that can be supported
    by the battery in milli watts.

    PBSS (Intel(R) Dynamic Tuning Power Battery Steady State):
    This object returns the max sustained power for battery in milli watts.

    RBHF (Intel(R) Dynamic Tuning High Frequency Impedance):
    This object returns high frequency impedance value that can be obtained
    from battery fuel gauge.

    VBNL (Intel(R) Dynamic Tuning No-Load Voltage)
    This object returns battery instantaneous no-load voltage that can be
    obtained from battery fuel gauge in milli volts

    CMPP (Intel(R) Dynamic Tuning Current Discharge Capability)
    This object returns battery discharge current capability obtained from
    battery fuel gauge milli amps.

    Notifications:

    0x80: PMAX change. Used to notify Intel(R)Dynamic Tuning Battery
    participant driver when the PMAX has changed by 250mw.
    0x83: PBSS change. Used to notify Intel(R) Dynamic Tuning Battery
    participant driver when the power source has changed.
    0x85: RBHF change. Used to notify Intel(R)Dynamic Tuning Battery
    participant driver when the RBHF has changed over a threshold by
    5mOhm.
    0x86: Battery Capability change. Used to notify Intel(R)Dynamic Tuning
    Battery participant driver when the battery capability has changed.

    Signed-off-by: Srinivas Pandruvada
    [ rjw: Subject ]
    Signed-off-by: Rafael J. Wysocki

    Srinivas Pandruvada
     
  • Add two additional attributes to the existing power participant driver:
    rest_of_platform_power_mw: (RO) Shows the rest of worst case platform
    power in mW outside of S0C. This will help in power distribution to SoC
    and rest of the system. For example on a test system, this value is 2.5W
    with a 15W TDP SoC. Based on the adapter rating (adapter_rating_mw), user
    space software can decide on proper power allocation to SoC to improve
    short term performance via powercap/RAPL interface.

    prochot_confirm: (WO) Confirm EC about a prochot notification.

    Also userspace is notified via sysfs_notify(), whenever power source or
    rest of the platform power is changed. So user space can use poll()
    system call on those attributes.

    The ACPI methods used in this patch are as follows:

    PROP
    This object evaluates to the rest of worst case platform power in mW.
    Bits:
    23:0 Worst case rest of platform power in mW.

    PBOK
    PBOK is a method designed to provide a mechanism for OSPM to change power
    setting before EC can de-assert a PROCHOT from a device. The EC may
    receive several PROCHOTs, so it has a sequence number attached to PSRC
    (read via existing attribute "platform_power_source"). Once OSPM takes
    action for a PSRC change notification, it can call PBOK method to confirm
    with the sequence number.
    Bits:
    3:0 Power Delivery State Change Sequence number
    30 Reserved
    31 0 – Not OK to de-assert PROCHOT
    1 – OK to de-assert PROCHOT

    PSRC (Platform Power Source): Not new in this patch but for
    documentation for new bits
    This object evaluates to an integer that represents the system power
    source as well as the power delivery state change sequence number.
    Bits:
    3:0 The current power source as an integer for AC, DC, USB, Wireless.
    0 = DC, 1 = AC, 2 = USB, 3 = Wireless Charging
    7:4 Power Delivery State Change Sequence Number. Default value is 0

    Notifications:
    0x81: (Power State Change) Used to notify when the power source has
    changed.
    0x84: (PROP change) Used to notify when the platform rest of power has
    changed.

    Signed-off-by: Srinivas Pandruvada
    [ rjw: Subject, minor ABI documentation edit ]
    Signed-off-by: Rafael J. Wysocki

    Srinivas Pandruvada
     
  • Currently, changing the brightness of the internal display of the Acer
    TravelMate 5735Z does not work. Pressing the function keys or changing the
    slider, GNOME Shell 3.36.2 displays the OSD (five steps), but the
    brightness does not change.

    The Acer TravelMate 5735Z shipped with Windows 7 and as such does not
    trigger our "win8 ready" heuristic for preferring the native backlight
    interface.

    Still ACPI backlight control doesn't work on this model, where as the
    native (intel_video) backlight interface does work by adding
    `acpi_backlight=native` or `acpi_backlight=none` to Linux’ command line.

    So, add a quirk to force using native backlight control on this model.

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

    Paul Menzel
     

21 May, 2020

1 commit

  • An IORT PMCG node can have no ID mapping if its overflow interrupt is
    wire based therefore the code that parses the PMCG node can not assume
    the node will always have a single mapping present at index 0.

    Fix iort_get_id_mapping_index() by checking for an overflow interrupt
    and mapping count.

    Fixes: 24e516049360 ("ACPI/IORT: Add support for PMCG")

    Signed-off-by: Tuan Phan
    Reviewed-by: Hanjun Guo
    Acked-by: Lorenzo Pieralisi
    Link: https://lore.kernel.org/r/1589994787-28637-1-git-send-email-tuanphan@os.amperecomputing.com
    Signed-off-by: Will Deacon

    Tuan Phan
     

20 May, 2020

1 commit

  • memory_failure() offlines or repairs pages of memory that have been
    discovered to be corrupt. These may be detected by an external
    component, (e.g. the memory controller), and notified via an IRQ.
    In this case the work is queued as not all of memory_failure()s work
    can happen in IRQ context.

    If the error was detected as a result of user-space accessing a
    corrupt memory location the CPU may take an abort instead. On arm64
    this is a 'synchronous external abort', and on a firmware first
    system it is replayed using NOTIFY_SEA.

    This notification has NMI like properties, (it can interrupt
    IRQ-masked code), so the memory_failure() work is queued. If we
    return to user-space before the queued memory_failure() work is
    processed, we will take the fault again. This loop may cause platform
    firmware to exceed some threshold and reboot when Linux could have
    recovered from this error.

    For NMIlike notifications keep track of whether memory_failure() work
    was queued, and make task_work pending to flush out the queue.
    To save memory allocations, the task_work is allocated as part of
    the ghes_estatus_node, and free()ing it back to the pool is deferred.

    Signed-off-by: James Morse
    Tested-by: Tyler Baicar
    Signed-off-by: Rafael J. Wysocki

    James Morse
     

19 May, 2020

2 commits


18 May, 2020

2 commits

  • Flushing the EC work while suspended to idle when the EC GPE status
    is not set causes some EC wakeup events (notably power button and
    lid ones) to be missed after a series of spurious wakeups on the Dell
    XPS13 9360 in my office.

    If that happens, the machine cannot be woken up from suspend-to-idle
    by the power button or lid status change and it needs to be woken up
    in some other way (eg. by a key press).

    Flushing the EC work only after successful dispatching the EC GPE,
    which means that its status has been set, avoids the issue, so change
    the code in question accordingly.

    Fixes: 7b301750f7f8 ("ACPI: EC: PM: Avoid premature returns from acpi_s2idle_wake()")
    Cc: 5.4+ # 5.4+
    Signed-off-by: Rafael J. Wysocki
    Tested-by: Chris Chiu

    Rafael J. Wysocki
     
  • On Asus T101HA, we keep receiving those error messages:

    i915 0000:00:02.0: [drm] *ERROR* mipi_exec_pmic failed, error: -95
    intel_soc_pmic_exec_mipi_pmic_seq_element: Not implemented
    intel_soc_pmic_exec_mipi_pmic_seq_element: i2c-addr: 0x5e reg-addr 0x4b value 0x59 mask 0xff

    Because the opregion is missing the I2C address.

    Suggested-by: Hans de Goede
    Signed-off-by: Mauro Carvalho Chehab
    Reviewed-by: Hans de Goede
    Reviewed-by: Mika Westerberg
    Reviewed-by: Andy Shevchenko
    Signed-off-by: Rafael J. Wysocki

    Mauro Carvalho Chehab