12 Feb, 2019

19 commits


23 Jan, 2019

1 commit

  • commit ac4ca4b9f4623ba5e1ea7a582f286567c611e027 upstream.

    The tps6586x driver creates an irqchip that is used by its various child
    devices for managing interrupts. The tps6586x-rtc device is one of its
    children that uses the tps6586x irqchip. When using the tps6586x-rtc as
    a wake-up device from suspend, the following is seen:

    PM: Syncing filesystems ... done.
    Freezing user space processes ... (elapsed 0.001 seconds) done.
    OOM killer disabled.
    Freezing remaining freezable tasks ... (elapsed 0.000 seconds) done.
    Disabling non-boot CPUs ...
    Entering suspend state LP1
    Enabling non-boot CPUs ...
    CPU1 is up
    tps6586x 3-0034: failed to read interrupt status
    tps6586x 3-0034: failed to read interrupt status

    The reason why the tps6586x interrupt status cannot be read is because
    the tps6586x interrupt is not masked during suspend and when the
    tps6586x-rtc interrupt occurs, to wake-up the device, the interrupt is
    seen before the i2c controller has been resumed in order to read the
    tps6586x interrupt status.

    The tps6586x-rtc driver sets it's interrupt as a wake-up source during
    suspend, which gets propagated to the parent tps6586x interrupt.
    However, the tps6586x-rtc driver cannot disable it's interrupt during
    suspend otherwise we would never be woken up and so the tps6586x must
    disable it's interrupt instead.

    Prevent the tps6586x interrupt handler from executing on exiting suspend
    before the i2c controller has been resumed by disabling the tps6586x
    interrupt on entering suspend and re-enabling it on resuming from
    suspend.

    Cc: stable@vger.kernel.org
    Signed-off-by: Jon Hunter
    Reviewed-by: Dmitry Osipenko
    Tested-by: Dmitry Osipenko
    Acked-by: Thierry Reding
    Signed-off-by: Lee Jones
    Signed-off-by: Greg Kroah-Hartman

    Jonathan Hunter
     

14 Nov, 2018

1 commit

  • [ Upstream commit 9612f8f503804d2fd2f63aa6ba1e58bba4612d96 ]

    The IRQ work is added before the struct rtc is allocated and registered,
    but this struct is used in the IRQ handler. This may lead to a NULL pointer
    dereference.

    Switch to devm_rtc_allocate_device/rtc_register_device to allocate the rtc
    before calling menelaus_add_irq_work.

    Also, this solves a possible leak as the RTC is never released.

    Signed-off-by: Alexandre Belloni
    Signed-off-by: Lee Jones
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Alexandre Belloni
     

18 Oct, 2018

1 commit

  • [ Upstream commit 10492ee8ed9188d6d420e1f79b2b9bdbc0624e65 ]

    It currently only works if the parent bus uses "simple-bus". We
    currently try to probe children with non-existing compatible values.
    And we're missing .probe.

    I noticed this while testing devices configured to probe using ti-sysc
    interconnect target module driver. For that we also may want to rebind
    the driver, so let's remove __init and __exit.

    Signed-off-by: Tony Lindgren
    Acked-by: Roger Quadros
    Signed-off-by: Lee Jones
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Tony Lindgren
     

26 Sep, 2018

1 commit

  • [ Upstream commit 8c8f74f327a76604a499fad8c54c15e1c0ee8051 ]

    Locking the root adapter for __i2c_transfer will deadlock if the
    device sits behind a mux-locked I2C mux. Switch to the finer-grained
    i2c_lock_bus with the I2C_LOCK_SEGMENT flag. If the device does not
    sit behind a mux-locked mux, the two locking variants are equivalent.

    Signed-off-by: Peter Rosin
    Acked-by: Lee Jones
    Signed-off-by: Wolfram Sang
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Peter Rosin
     

20 Sep, 2018

1 commit

  • [ Upstream commit c2b1509c77a99a0dcea0a9051ca743cb88385f50 ]

    Use devm_elk_get() to let Linux manage struct clk memory to avoid the following
    memory leakage report:

    unreferenced object 0xdd75efc0 (size 64):
    comm "systemd-udevd", pid 186, jiffies 4294945126 (age 1195.750s)
    hex dump (first 32 bytes):
    61 64 63 5f 74 73 63 5f 66 63 6b 00 00 00 00 00 adc_tsc_fck.....
    00 00 00 00 92 03 00 00 00 00 00 00 00 00 00 00 ................
    backtrace:
    [] kmemleak_alloc+0x40/0x74
    [] __kmalloc_track_caller+0x198/0x388
    [] kstrdup+0x40/0x5c
    [] kstrdup_const+0x30/0x3c
    [] __clk_create_clk+0x60/0xac
    [] clk_get_sys+0x74/0x144
    [] clk_get+0x5c/0x68
    [] ti_tscadc_probe+0x260/0x468 [ti_am335x_tscadc]
    [] platform_drv_probe+0x60/0xac
    [] driver_probe_device+0x214/0x2dc
    [] __driver_attach+0x94/0xc0
    [] bus_for_each_dev+0x90/0xa0
    [] driver_attach+0x28/0x30
    [] bus_add_driver+0x184/0x1ec
    [] driver_register+0xb0/0xf0
    [] __platform_driver_register+0x40/0x54

    Signed-off-by: Zumeng Chen
    Signed-off-by: Lee Jones
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Zumeng Chen
     

15 Sep, 2018

1 commit

  • [ Upstream commit 2f606da78230f09cf1a71fde6ee91d0c710fa2b2 ]

    Instantiating the sm501 OHCI subdevice results in a kernel warning.

    sm501-usb sm501-usb: SM501 OHCI
    sm501-usb sm501-usb: new USB bus registered, assigned bus number 1
    WARNING: CPU: 0 PID: 1 at ./include/linux/dma-mapping.h:516
    ohci_init+0x194/0x2d8
    Modules linked in:

    CPU: 0 PID: 1 Comm: swapper Tainted: G W
    4.18.0-rc7-00178-g0b5b1f9a78b5 #1
    PC is at ohci_init+0x194/0x2d8
    PR is at ohci_init+0x168/0x2d8
    PC : 8c27844c SP : 8f81dd94 SR : 40008001
    TEA : 29613060
    R0 : 00000000 R1 : 00000000 R2 : 00000000 R3 : 00000202
    R4 : 8fa98b88 R5 : 8c277e68 R6 : 00000000 R7 : 00000000
    R8 : 8f965814 R9 : 8c388100 R10 : 8fa98800 R11 : 8fa98928
    R12 : 8c48302c R13 : 8fa98920 R14 : 8c48302c
    MACH: 00000096 MACL: 0000017c GBR : 00000000 PR : 8c278420

    Call trace:
    [] usb_add_hcd+0x1e8/0x6ec
    [] _dev_info+0x0/0x54
    [] arch_local_save_flags+0x0/0x8
    [] arch_local_irq_restore+0x0/0x24
    [] ohci_hcd_sm501_drv_probe+0x114/0x2d8
    ...

    Initialize coherent_dma_mask when creating SM501 subdevices to fix
    the problem.

    Fixes: b6d6454fdb66f ("mfd: SM501 core driver")
    Signed-off-by: Guenter Roeck
    Signed-off-by: Lee Jones
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Guenter Roeck
     

10 Sep, 2018

1 commit

  • commit 6afebb70ee7a4bde106dc1a875e7ac7997248f84 upstream.

    Fixes https://bugs.linaro.org/show_bug.cgi?id=3903

    LTP Functional tests have caused a bad paging request when triggering
    the regmap_read_debugfs() logic of the device PMIC Hi6553 (reading
    regmap/f8000000.pmic/registers file during read_all test):

    Unable to handle kernel paging request at virtual address ffff0
    [ffff00000984e000] pgd=0000000077ffe803, pud=0000000077ffd803,0
    Internal error: Oops: 96000007 [#1] SMP
    ...
    Hardware name: HiKey Development Board (DT)
    ...
    Call trace:
    regmap_mmio_read8+0x24/0x40
    regmap_mmio_read+0x48/0x70
    _regmap_bus_reg_read+0x38/0x48
    _regmap_read+0x68/0x170
    regmap_read+0x50/0x78
    regmap_read_debugfs+0x1a0/0x308
    regmap_map_read_file+0x48/0x58
    full_proxy_read+0x68/0x98
    __vfs_read+0x48/0x80
    vfs_read+0x94/0x150
    SyS_read+0x6c/0xd8
    el0_svc_naked+0x30/0x34
    Code: aa1e03e0 d503201f f9400280 8b334000 (39400000)

    Investigations have showed that, when triggered by debugfs read()
    handler, the mmio regmap logic was reading a bigger (16k) register area
    than the one mapped by devm_ioremap_resource() during hi655x-pmic probe
    time (4k).

    This commit changes hi655x's max register, according to HW specs, to be
    the same as the one declared in the pmic device in hi6220's dts, fixing
    the issue.

    Cc: #v4.9 #v4.14 #v4.16 #v4.17
    Signed-off-by: Rafael David Tinoco
    Signed-off-by: Lee Jones
    Signed-off-by: Greg Kroah-Hartman

    Rafael David Tinoco
     

03 Aug, 2018

1 commit

  • [ Upstream commit 0dbbf25561b29ffab5ba6277429760abdf49ceff ]

    If we cannot communicate with the EC chip to detect the protocol version
    and its features, it's very likely useless to continue. Else we will
    commit all kind of uninformed mistakes (using the wrong protocol, the
    wrong buffer size, mixing the EC with other chips).

    Signed-off-by: Vincent Palatin
    Acked-by: Benson Leung
    Signed-off-by: Enric Balletbo i Serra
    Reviewed-by: Gwendal Grignou
    Reviewed-by: Andy Shevchenko
    Signed-off-by: Lee Jones
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Vincent Palatin
     

03 Jul, 2018

2 commits

  • commit 4e93a658576ab115977225c9d0992b97ff19ba8c upstream.

    Intel Cannon Lake PCH has much higher 216 MHz input clock to LPSS I2C
    than Sunrisepoint which uses 120 MHz. Preliminary information was that
    both share the same clock rate but actual silicon implements elevated
    rate for better support for 3.4 MHz high-speed I2C.

    This incorrect input clock rate results too high I2C bus clock in case
    ACPI doesn't provide tuned I2C timing parameters since I2C host
    controller driver calculates them from input clock rate.

    Fix this by using the correct rate. We still share the same 230 ns SDA
    hold time value than Sunrisepoint.

    Cc: stable@vger.kernel.org
    Fixes: b418bbff36dd ("mfd: intel-lpss: Add Intel Cannonlake PCI IDs")
    Reported-by: Jian-Hong Pan
    Reported-by: Chris Chiu
    Reported-by: Daniel Drake
    Signed-off-by: Jarkko Nikula
    Reviewed-by: Andy Shevchenko
    Acked-by: Mika Westerberg
    Tested-by: Jian-Hong Pan
    Signed-off-by: Lee Jones
    Signed-off-by: Greg Kroah-Hartman

    Jarkko Nikula
     
  • commit d28b62520830b2d0bffa2d98e81afc9f5e537e8b upstream.

    According to documentation REMAP register has to be programmed in
    either DMA or PIO mode of the slice.

    Move the DMA capability check below to let REMAP register be programmed
    in PIO mode.

    Cc: stable@vger.kernel.org # 4.3+
    Fixes: 4b45efe85263 ("mfd: Add support for Intel Sunrisepoint LPSS devices")
    Signed-off-by: Andy Shevchenko
    Signed-off-by: Lee Jones
    Signed-off-by: Greg Kroah-Hartman

    Andy Shevchenko
     

30 Dec, 2017

3 commits

  • commit 85e9b13cbb130a3209f21bd7933933399c389ffe upstream.

    Fix child-node lookup during probe, which ended up searching the whole
    device tree depth-first starting at the parent rather than just matching
    on its children.

    To make things worse, the parent node was prematurely freed, while the
    child node was leaked.

    Note that the CONFIG_OF compile guard can be removed as
    of_get_child_by_name() provides a !CONFIG_OF implementation which always
    fails.

    Fixes: 37e13cecaa14 ("mfd: Add support for Device Tree to twl6040")
    Fixes: ca2cad6ae38e ("mfd: Fix twl6040 build failure")
    Signed-off-by: Johan Hovold
    Acked-by: Peter Ujfalusi
    Signed-off-by: Lee Jones
    Signed-off-by: Greg Kroah-Hartman

    Johan Hovold
     
  • commit 0a423772de2f3d7b00899987884f62f63ae00dcb upstream.

    A helper purported to look up a child node based on its name was using
    the wrong of-helper and ended up prematurely freeing the parent of-node
    while leaking any matching node.

    To make things worse, any matching node would not even necessarily be a
    child node as the whole device tree was searched depth-first starting at
    the parent.

    Fixes: 019a7e6b7b31 ("mfd: twl4030-audio: Add DT support")
    Signed-off-by: Johan Hovold
    Acked-by: Peter Ujfalusi
    Signed-off-by: Lee Jones
    Signed-off-by: Greg Kroah-Hartman

    Johan Hovold
     
  • commit 15d8374874ded0bec37ef27f8301a6d54032c0e5 upstream.

    On the Tegra124 Nyan-Big chromebook the very first SPI message sent to
    the EC is failing.

    The Tegra SPI driver configures the SPI chip-selects to be active-high
    by default (and always has for many years). The EC SPI requires an
    active-low chip-select and so the Tegra chip-select is reconfigured to
    be active-low when the EC SPI driver calls spi_setup(). The problem is
    that if the first SPI message to the EC is sent too soon after
    reconfiguring the SPI chip-select, it fails.

    The EC SPI driver prevents back-to-back SPI messages being sent too
    soon by keeping track of the time the last transfer was sent via the
    variable 'last_transfer_ns'. To prevent the very first transfer being
    sent too soon, initialise the 'last_transfer_ns' variable after calling
    spi_setup() and before sending the first SPI message.

    Signed-off-by: Jon Hunter
    Reviewed-by: Brian Norris
    Reviewed-by: Douglas Anderson
    Acked-by: Benson Leung
    Signed-off-by: Lee Jones
    Signed-off-by: Greg Kroah-Hartman

    Jon Hunter
     

20 Dec, 2017

2 commits

  • [ Upstream commit 362741a21a5c4b9ee31e75ce28d63c6d238a745c ]

    There is the only path, where mxs_lradc_probe() leaves clk undisabled,
    since it does return instead of goto err_clk.

    Found by Linux Driver Verification project (linuxtesting.org).

    Signed-off-by: Alexey Khoroshilov
    Signed-off-by: Lee Jones
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Alexey Khoroshilov
     
  • commit 18f77393796848e68909e65d692c1d1436f06e06 upstream.

    When fsl-imx25-tsadc is compiled as a module, loading, unloading and
    reloading the module will lead to a crash.

    Unable to handle kernel paging request at virtual address bf005430
    [] (irq_find_matching_fwspec)
    from [] (of_irq_get+0x58/0x74)
    [] (of_irq_get)
    from [] (platform_get_irq+0x48/0xc8)
    [] (platform_get_irq)
    from [] (mx25_tsadc_probe+0x220/0x2f4 [fsl_imx25_tsadc])

    irq_find_matching_fwspec() loops over all registered irq domains. The
    irq domain is still registered from last time the module was loaded but
    the pointer to its operations is invalid after the module was unloaded.

    Add a removal function which clears the irq handler and removes the irq
    domain. With this cleanup in place, it's possible to unload and reload
    the module.

    Signed-off-by: Martin Kaiser
    Reviewed-by: Lucas Stach
    Signed-off-by: Lee Jones
    Signed-off-by: Greg Kroah-Hartman

    Martin Kaiser
     

30 Nov, 2017

1 commit

  • commit 07d70913dce59f3c8e5d0ca76250861158a9ca6c upstream.

    Avoton/Rangeley are based on Silvermount micro-architecture, like
    Bay Trail, and uses the INTEL_SPI_BYT method to drive SPI.

    Signed-off-by: Joakim Tjernlund
    Acked-by: Mika Westerberg
    Signed-off-by: Lee Jones
    Signed-off-by: Greg Kroah-Hartman

    Joakim Tjernlund
     

02 Nov, 2017

1 commit

  • Many source files in the tree are missing licensing information, which
    makes it harder for compliance tools to determine the correct license.

    By default all files without license information are under the default
    license of the kernel, which is GPL version 2.

    Update the files which contain no license information with the 'GPL-2.0'
    SPDX license identifier. The SPDX identifier is a legally binding
    shorthand, which can be used instead of the full boiler plate text.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne.

    How this work was done:

    Patches were generated and checked against linux-4.14-rc6 for a subset of
    the use cases:
    - file had no licensing information it it.
    - file was a */uapi/* one with no licensing information in it,
    - file was a */uapi/* one with existing licensing information,

    Further patches will be generated in subsequent months to fix up cases
    where non-standard license headers were used, and references to license
    had to be inferred by heuristics based on keywords.

    The analysis to determine which SPDX License Identifier to be applied to
    a file was done in a spreadsheet of side by side results from of the
    output of two independent scanners (ScanCode & Windriver) producing SPDX
    tag:value files created by Philippe Ombredanne. Philippe prepared the
    base worksheet, and did an initial spot review of a few 1000 files.

    The 4.13 kernel was the starting point of the analysis with 60,537 files
    assessed. Kate Stewart did a file by file comparison of the scanner
    results in the spreadsheet to determine which SPDX license identifier(s)
    to be applied to the file. She confirmed any determination that was not
    immediately clear with lawyers working with the Linux Foundation.

    Criteria used to select files for SPDX license identifier tagging was:
    - Files considered eligible had to be source code files.
    - Make and config files were included as candidates if they contained >5
    lines of source
    - File already had some variant of a license header in it (even if
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

14 Sep, 2017

1 commit


08 Sep, 2017

1 commit

  • Pull MFD updates from Lee Jones:
    "New Drivers
    - RK805 Power Management IC (PMIC)
    - ROHM BD9571MWV-M MFD Power Management IC (PMIC)
    - Texas Instruments TPS68470 Power Management IC (PMIC) & LEDs

    New Device Support:
    - Add support for HiSilicon Hi6421v530 to hi6421-pmic-core
    - Add support for X-Powers AXP806 to axp20x
    - Add support for X-Powers AXP813 to axp20x
    - Add support for Intel Sunrise Point LPSS to intel-lpss-pci

    New Functionality:
    - Amend API to provide register layout; atmel-smc

    Fix-ups:
    - DT re-work; omap, nokia
    - Header file location change {I2C => MFD}; dm355evm_msp, tps65010
    - Fix chip ID formatting issue(s); rk808
    - Optionally register touchscreen devices; da9052-core
    - Documentation improvements; twl-core
    - Constification; rtsx_pcr, ab8500-core, da9055-i2c, da9052-spi
    - Drop unnecessary static declaration; max8925-i2c
    - Kconfig changes (missing deps and remove module support)
    - Slim down oversized licence statement; hi6421-pmic-core
    - Use managed resources (devm_*); lp87565
    - Supply proper error checking/handling; t7l66xb

    Bug Fixes:
    - Fix counter duplication issue; da9052-core
    - Fix potential NULL deference issue; max8998
    - Leave SPI-NOR write-protection bit alone; lpc_ich
    - Ensure device is put into reset during suspend; intel-lpss
    - Correct register offset variable size; omap-usb-tll"

    * tag 'mfd-next-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (61 commits)
    mfd: intel_soc_pmic: Differentiate between Bay and Cherry Trail CRC variants
    mfd: intel_soc_pmic: Export separate mfd-cell configs for BYT and CHT
    dt-bindings: mfd: Add bindings for ZII RAVE devices
    mfd: omap-usb-tll: Fix register offsets
    mfd: da9052: Constify spi_device_id
    mfd: intel-lpss: Put I2C and SPI controllers into reset state on suspend
    mfd: da9055: Constify i2c_device_id
    mfd: intel-lpss: Add missing PCI ID for Intel Sunrise Point LPSS devices
    mfd: t7l66xb: Handle return value of clk_prepare_enable
    mfd: Add ROHM BD9571MWV-M PMIC DT bindings
    mfd: intel_soc_pmic_chtwc: Turn Kconfig option into a bool
    mfd: lp87565: Convert to use devm_mfd_add_devices()
    mfd: Add support for TPS68470 device
    mfd: lpc_ich: Do not touch SPI-NOR write protection bit on Haswell/Broadwell
    mfd: syscon: atmel-smc: Add helper to retrieve register layout
    mfd: axp20x: Use correct platform device ID for many PEK
    dt-bindings: mfd: axp20x: Introduce bindings for AXP813
    mfd: axp20x: Add support for AXP813 PMIC
    dt-bindings: mfd: axp20x: Add AXP806 to supported list of chips
    mfd: Add ROHM BD9571MWV-M MFD PMIC driver
    ...

    Linus Torvalds
     

06 Sep, 2017

1 commit

  • Pull power management updates from Rafael Wysocki:
    "This time (again) cpufreq gets the majority of changes which mostly
    are driver updates (including a major consolidation of intel_pstate),
    some schedutil governor modifications and core cleanups.

    There also are some changes in the system suspend area, mostly related
    to diagnostics and debug messages plus some renames of things related
    to suspend-to-idle. One major change here is that suspend-to-idle is
    now going to be preferred over S3 on systems where the ACPI tables
    indicate to do so and provide requsite support (the Low Power Idle S0
    _DSM in particular). The system sleep documentation and the tools
    related to it are updated too.

    The rest is a few cpuidle changes (nothing major), devfreq updates,
    generic power domains (genpd) framework updates and a few assorted
    modifications elsewhere.

    Specifics:

    - Drop the P-state selection algorithm based on a PID controller from
    intel_pstate and make it use the same P-state selection method
    (based on the CPU load) for all types of systems in the active mode
    (Rafael Wysocki, Srinivas Pandruvada).

    - Rework the cpufreq core and governors to make it possible to take
    cross-CPU utilization updates into account and modify the schedutil
    governor to actually do so (Viresh Kumar).

    - Clean up the handling of transition latency information in the
    cpufreq core and untangle it from the information on which drivers
    cannot do dynamic frequency switching (Viresh Kumar).

    - Add support for new SoCs (MT2701/MT7623 and MT7622) to the mediatek
    cpufreq driver and update its DT bindings (Sean Wang).

    - Modify the cpufreq dt-platdev driver to autimatically create
    cpufreq devices for the new (v2) Operating Performance Points (OPP)
    DT bindings and update its whitelist of supported systems (Viresh
    Kumar, Shubhrajyoti Datta, Marc Gonzalez, Khiem Nguyen, Finley
    Xiao).

    - Add support for Ux500 to the cpufreq-dt driver and drop the
    obsolete dbx500 cpufreq driver (Linus Walleij, Arnd Bergmann).

    - Add new SoC (R8A7795) support to the cpufreq rcar driver (Khiem
    Nguyen).

    - Fix and clean up assorted issues in the cpufreq drivers and core
    (Arvind Yadav, Christophe Jaillet, Colin Ian King, Gustavo Silva,
    Julia Lawall, Leonard Crestez, Rob Herring, Sudeep Holla).

    - Update the IO-wait boost handling in the schedutil governor to make
    it less aggressive (Joel Fernandes).

    - Rework system suspend diagnostics to make it print fewer messages
    to the kernel log by default, add a sysfs knob to allow more
    suspend-related messages to be printed and add Low Power S0 Idle
    constraints checks to the ACPI suspend-to-idle code (Rafael
    Wysocki, Srinivas Pandruvada).

    - Prefer suspend-to-idle over S3 on ACPI-based systems with the
    ACPI_FADT_LOW_POWER_S0 flag set and the Low Power Idle S0 _DSM
    interface present in the ACPI tables (Rafael Wysocki).

    - Update documentation related to system sleep and rename a number of
    items in the code to make it cleare that they are related to
    suspend-to-idle (Rafael Wysocki).

    - Export a variable allowing device drivers to check the target
    system sleep state from the core system suspend code (Florian
    Fainelli).

    - Clean up the cpuidle subsystem to handle the polling state on x86
    in a more straightforward way and to use %pOF instead of full_name
    (Rafael Wysocki, Rob Herring).

    - Update the devfreq framework to fix and clean up a few minor issues
    (Chanwoo Choi, Rob Herring).

    - Extend diagnostics in the generic power domains (genpd) framework
    and clean it up slightly (Thara Gopinath, Rob Herring).

    - Fix and clean up a couple of issues in the operating performance
    points (OPP) framework (Viresh Kumar, Waldemar Rymarkiewicz).

    - Add support for RV1108 to the rockchip-io Adaptive Voltage Scaling
    (AVS) driver (David Wu).

    - Fix the usage of notifiers in CPU power management on some
    platforms (Alex Shi).

    - Update the pm-graph system suspend/hibernation and boot profiling
    utility (Todd Brandt).

    - Make it possible to run the cpupower utility without CPU0 (Prarit
    Bhargava)"

    * tag 'pm-4.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (87 commits)
    cpuidle: Make drivers initialize polling state
    cpuidle: Move polling state initialization code to separate file
    cpuidle: Eliminate the CPUIDLE_DRIVER_STATE_START symbol
    cpufreq: imx6q: Fix imx6sx low frequency support
    cpufreq: speedstep-lib: make several arrays static, makes code smaller
    PM: docs: Delete the obsolete states.txt document
    PM: docs: Describe high-level PM strategies and sleep states
    PM / devfreq: Fix memory leak when fail to register device
    PM / devfreq: Add dependency on PM_OPP
    PM / devfreq: Move private devfreq_update_stats() into devfreq
    PM / devfreq: Convert to using %pOF instead of full_name
    PM / AVS: rockchip-io: add io selectors and supplies for RV1108
    cpufreq: ti: Fix 'of_node_put' being called twice in error handling path
    cpufreq: dt-platdev: Drop few entries from whitelist
    cpufreq: dt-platdev: Automatically create cpufreq device with OPP v2
    ARM: ux500: don't select CPUFREQ_DT
    cpuidle: Convert to using %pOF instead of full_name
    cpufreq: Convert to using %pOF instead of full_name
    PM / Domains: Convert to using %pOF instead of full_name
    cpufreq: Cap the default transition delay value to 10 ms
    ...

    Linus Torvalds
     

05 Sep, 2017

1 commit

  • Both Bay and Cherry Trail devices may be used together with a Crystal Cove
    PMIC. Each platform has its own variant of the PMIC, which both use the
    same ACPI HID, but they are not 100% compatible.

    This commits makes the intel_soc_pmic_core code check the _HRV of the
    ACPI-firmware-node and selects intel_soc_pmic_config_byt_crc resp.
    intel_soc_pmic_config_cht_crc based on this.

    This fixes the Bay Trail specific ACPI OpRegion code causing problems
    on Cherry Trail devices. Specifically this was causing the external
    microsd slot on a Dell Venue 8 5855 (Cherry Trail version) to not work
    and the eMMC to become unreliable and throw lots of errors.

    Fixes: 5165238460 ("mfd: intel_soc_pmic: Core driver")
    Reported-and-tested-by: russianneuromancer
    Signed-off-by: Hans de Goede
    Reviewed-by: Andy Shevchenko
    Signed-off-by: Lee Jones

    Hans de Goede