13 Mar, 2017

6 commits

  • It is possible for dev_pm_opp_find_freq_exact() to return errors. It was
    all fine earlier as dev_pm_opp_get_voltage() had a check within it to
    check for invalid OPPs, but dev_pm_opp_put() doesn't have any similar
    checks and the callers need to make sure OPP is valid before calling
    them.

    Also update the later dev_warn_ratelimited() to not print the error
    message as the OPP is guaranteed to be valid now.

    Reported-by: Dan Carpenter
    Signed-off-by: Viresh Kumar
    Signed-off-by: Zhang Rui

    Viresh Kumar
     
  • There isn't much the user can do on seeing these warnings, as the
    hardware is actually okay. dev_err suits much better here.

    Signed-off-by: Viresh Kumar
    Signed-off-by: Zhang Rui

    Viresh Kumar
     
  • It is possible for dev_pm_opp_find_freq_exact() to return errors. It was
    all fine earlier as dev_pm_opp_get_voltage() had a check within it to
    check for invalid OPPs, but dev_pm_opp_put() doesn't have any similar
    checks and the callers need to make sure OPP is valid before calling
    them.

    Also update the later dev_warn_ratelimited() to not print the error
    message as the OPP is guaranteed to be valid now.

    Reported-by: Dan Carpenter
    Signed-off-by: Viresh Kumar
    Signed-off-by: Zhang Rui

    Viresh Kumar
     
  • There isn't much the user can do on seeing this warning, as the hardware
    is actually okay. dev_err suits much better here.

    Signed-off-by: Viresh Kumar
    Signed-off-by: Zhang Rui

    Viresh Kumar
     
  • There is no need to check for IS_ERR() as we are looking for a very
    particular error value here. Drop the first check.

    Reported-by: Dan Carpenter
    Signed-off-by: Viresh Kumar
    Signed-off-by: Zhang Rui

    Viresh Kumar
     
  • cooling_list_lock is covering not just cpufreq_dev_count, but also the
    calls to cpufreq_register_notifier() and cpufreq_unregister_notifier().

    Since cooling_list_lock is also used within cpufreq_thermal_notifier(),
    lockdep reports a potential deadlock. Fix it by testing the condition
    under cooling_list_lock and dropping the lock before calling
    cpufreq_register_notifier(). And variable cpufreq_dev_count is removed
    at the same time, because it's no longer needed after the fix.

    Fixes: ae606089621e ("thermal: convert cpu_cooling to use an IDA")
    Reported-and-Tested-by: Russell King
    Signed-off-by: Matthew Wilcox
    Acked-by: Rafael J. Wysocki

    Matthew Wilcox
     

02 Mar, 2017

2 commits

  • We are going to move scheduler ABI details to ,
    which will be used from a number of .c files.

    Create empty placeholder header that maps to .

    Include the new header in the files that are going to need it.

    Acked-by: Linus Torvalds
    Cc: Mike Galbraith
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • Pull thermal management updates from Zhang Rui:

    - add thermal driver for R-Car Gen3 thermal sensors.

    - add thermal driver for ZTE' zx2967 family thermal sensors.

    - convert thermal ID allocation from IDR to IDA.

    - fix a possible NULL dereference in imx thermal driver.

    - fix a ti-soc-thermal driver dependency issue so that critical thermal
    control is still available when CPU_THERMAL is not defined.

    - update binding information for QorIQ thermal driver.

    - a couple of cleanups in thermal core, intel_powerclamp, exynos,
    dra752-thermal, mtk-thermal driver.

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux:
    powerpc/mpc85xx: Update TMU device tree node for T1023/T1024
    powerpc/mpc85xx: Update TMU device tree node for T1040/T1042
    dt-bindings: Update QorIQ TMU thermal bindings
    thermal: mtk_thermal: Staticise a number of data variables
    thermal: arm: dra752: Remove all TSHUT related definitions
    thermal: arm: dra752: Remove TSHUT configuration
    thermal: ti-soc-thermal: Remove CPU_THERMAL Dependency from TI_THERMAL
    thermal: imx: Fix possible NULL dereference.
    thermal: exynos: Remove parsing unused samsung,tmu_cal_mode property
    thermal: zx2967: add thermal driver for ZTE's zx2967 family
    thermal: use cpumask_var_t for on-stack cpu masks
    dt: bindings: add documentation for zx2967 family thermal sensor
    thermal/intel_powerclamp: Remove set-but-not-used variables
    thermal: rcar_gen3_thermal: Add R-Car Gen3 thermal driver
    thermal: rcar_gen3_thermal: Document the R-Car Gen3
    thermal: convert devfreq_cooling to use an IDA
    thermal: convert cpu_cooling to use an IDA
    thermal: convert clock cooling to use an IDA
    thermal core: convert ID allocation to IDA

    Linus Torvalds
     

22 Feb, 2017

1 commit


21 Feb, 2017

1 commit


20 Feb, 2017

1 commit

  • * pm-opp: (24 commits)
    PM / OPP: Expose _of_get_opp_desc_node as dev_pm_opp API
    PM / OPP: Make _find_opp_table_unlocked() static
    PM / OPP: Update Documentation to remove RCU specific bits
    PM / OPP: Simplify dev_pm_opp_get_max_volt_latency()
    PM / OPP: Simplify _opp_set_availability()
    PM / OPP: Move away from RCU locking
    PM / OPP: Take kref from _find_opp_table()
    PM / OPP: Update OPP users to put reference
    PM / OPP: Add 'struct kref' to struct dev_pm_opp
    PM / OPP: Use dev_pm_opp_get_opp_table() instead of _add_opp_table()
    PM / OPP: Take reference of the OPP table while adding/removing OPPs
    PM / OPP: Return opp_table from dev_pm_opp_set_*() routines
    PM / OPP: Add 'struct kref' to OPP table
    PM / OPP: Add per OPP table mutex
    PM / OPP: Split out part of _add_opp_table() and _remove_opp_table()
    PM / OPP: Don't expose srcu_head to register notifiers
    PM / OPP: Rename dev_pm_opp_get_suspend_opp() and return OPP rate
    PM / OPP: Don't allocate OPP table from _opp_allocate()
    PM / OPP: Rename and split _dev_pm_opp_remove_table()
    PM / OPP: Add light weight _opp_free() routine
    ...

    Rafael J. Wysocki
     

19 Feb, 2017

7 commits

  • Sparse throws following warnings:
    drivers/thermal/mtk_thermal.c:186:11: warning: symbol 'mt8173_bank_data' was not declared. Should it be static?
    drivers/thermal/mtk_thermal.c:193:11: warning: symbol 'mt8173_msr' was not declared. Should it be static?
    drivers/thermal/mtk_thermal.c:197:11: warning: symbol 'mt8173_adcpnp' was not declared. Should it be static?
    drivers/thermal/mtk_thermal.c:201:11: warning: symbol 'mt8173_mux_values' was not declared. Should it be static?
    drivers/thermal/mtk_thermal.c:204:11: warning: symbol 'mt2701_bank_data' was not declared. Should it be static?
    drivers/thermal/mtk_thermal.c:208:11: warning: symbol 'mt2701_msr' was not declared. Should it be static?
    drivers/thermal/mtk_thermal.c:212:11: warning: symbol 'mt2701_adcpnp' was not declared. Should it be static?
    drivers/thermal/mtk_thermal.c:216:11: warning: symbol 'mt2701_mux_values' was not declared. Should it be static?

    Make these variables as static to fix these warnings.

    Signed-off-by: Vivek Gautam
    Signed-off-by: Eduardo Valentin

    Vivek Gautam
     
  • No configuration needs to be done for TSHUT from software.
    Hence remove all the unnecessary definitions.

    Signed-off-by: Keerthy
    Signed-off-by: Eduardo Valentin

    Keerthy
     
  • Technical Reference Manual [1] mandates that software should
    not be configuring the thermal shutdown thresholds. Hence
    removing TSHUT_CONFIG.

    [1] http://www.ti.com/lit/ug/sprui30b/sprui30b.pdf

    Signed-off-by: Keerthy
    Reported-by: Ravikumar Kattekola
    Signed-off-by: Eduardo Valentin

    Keerthy
     
  • Currently when CPU_THERMAL is not defined the thermal sensors
    are not even exposed consequently no cooling is possible. CPU_THERMAL
    eventually depends on CPUFREQ. CPPUFREQ is not the only cooling
    for CPU.

    The thermal shutdown for critical temperatures is another
    cooling solution which will currently not get enabled if CPU_THERMAL
    is not defined. Remove this dependency so as to have the last level
    of thermal protection working even without CPUFREQ defined.

    Signed-off-by: Keerthy
    Signed-off-by: Eduardo Valentin

    Keerthy
     
  • of_device_get_match_data could return NULL, and so can cause
    a NULL pointer dereference later.

    Signed-off-by: Shailendra Verma
    Signed-off-by: Eduardo Valentin

    Shailendra Verma
     
  • The property samsung,tmu_cal_mode is not used and not used. We can
    safely remove it.

    Signed-off-by: Krzysztof Kozlowski
    Signed-off-by: Eduardo Valentin

    Krzysztof Kozlowski
     
  • This patch adds thermal driver for ZTE's zx2967 family.

    Signed-off-by: Baoyou Xie
    Reviewed-by: Mathieu Poirier
    Signed-off-by: Eduardo Valentin

    Baoyou Xie
     

10 Feb, 2017

1 commit

  • Putting a bare cpumask structure on the stack produces a warning on
    large SMP configurations:

    drivers/thermal/cpu_cooling.c: In function 'cpufreq_state2power':
    drivers/thermal/cpu_cooling.c:644:1: warning: the frame size of 1056 bytes is larger than 1024 bytes [-Wframe-larger-than=]
    drivers/thermal/cpu_cooling.c: In function '__cpufreq_cooling_register':
    drivers/thermal/cpu_cooling.c:898:1: warning: the frame size of 1104 bytes is larger than 1024 bytes [-Wframe-larger-than=]

    The recommended workaround is to use cpumask_var_t, which behaves just like
    a normal cpu mask in most cases, but turns into a dynamic allocation
    when CONFIG_CPUMASK_OFFSTACK is set.

    Signed-off-by: Arnd Bergmann
    Acked-by: Viresh Kumar
    Signed-off-by: Zhang Rui

    Arnd Bergmann
     

07 Feb, 2017

1 commit

  • In poll_pkg_cstate() function, the variables jiffies_last and
    jiffies_now are set but never used.

    This has been detected by building the driver with W=1:

    drivers/thermal/intel_powerclamp.c: In function ‘poll_pkg_cstate’:
    drivers/thermal/intel_powerclamp.c:464:23: warning: variable
    ‘jiffies_last’ set but not used [-Wunused-but-set-variable]
    static unsigned long jiffies_last;
    ^

    Signed-off-by: Augusto Mecking Caringi
    Acked-by: Jacob Pan
    Signed-off-by: Zhang Rui

    Augusto Mecking Caringi
     

30 Jan, 2017

1 commit

  • This patch updates dev_pm_opp_find_freq_*() routines to get a reference
    to the OPPs returned by them.

    Also updates the users of dev_pm_opp_find_freq_*() routines to call
    dev_pm_opp_put() after they are done using the OPPs.

    As it is guaranteed the that OPPs wouldn't get freed while being used,
    the RCU read side locking present with the users isn't required anymore.
    Drop it as well.

    This patch also updates all users of devfreq_recommended_opp() which was
    returning an OPP received from the OPP core.

    Note that some of the OPP core routines have gained
    rcu_read_{lock|unlock}() calls, as those still use RCU specific APIs
    within them.

    Signed-off-by: Viresh Kumar
    Reviewed-by: Chanwoo Choi [Devfreq]
    Signed-off-by: Rafael J. Wysocki

    Viresh Kumar
     

25 Jan, 2017

1 commit


20 Jan, 2017

2 commits


17 Jan, 2017

1 commit

  • As Ayaka reported the thermal was abormal on rk3288 at booting time.
    thermal thermal_zone1: critical temperature reached(125 C),shutting down
    thermal thermal_zone2: critical temperature reached(125 C),shutting down
    thermal thermal_zone1: critical temperature reached(125 C),shutting down
    thermal thermal_zone2: critical temperature reached(125 C),shutting down
    ...
    The root caused by reading the invald analogic value, the value is zero
    will convert the 125 degree to trigger the critical temperature.
    Fixes it with insteading of the incorrect reading now.

    Fixes commit cadf29dc2a8bcaae83
    ("thermal: rockchip: optimize the conversion table")

    Reported-by: ayaka
    Signed-off-by: Caesar Wang
    Signed-off-by: Eduardo Valentin

    Caesar Wang
     

06 Jan, 2017

1 commit

  • The device_unregister call in thermal_zone_device_unregister causes the
    thermal_zone_device structure to be freed before the call to free the
    dynamically allocated attribute groups. This leads to a kernel panic.

    Furthermore, the 4 calls to free the trip point attribute structures
    occur before the call to unregister the device, leading to a kernel
    panic when sysfs attempts to access the attributes to remove them.

    Here is an example of a kernel panic when the cpu thermal zones are
    removed upon cpu offline:
    BUG: unable to handle kernel NULL pointer dereference at (null)
    IP: strlen+0x0/0x20

    Call Trace:
    ? kernfs_name_hash+0x17/0x80
    kernfs_find_ns+0x3f/0xd0
    kernfs_remove_by_name_ns+0x36/0xa0
    remove_files.isra.1+0x36/0x70
    sysfs_remove_group+0x44/0x90
    sysfs_remove_groups+0x2e/0x50
    device_remove_attrs+0x5e/0x90
    device_del+0x1ea/0x350
    device_unregister+0x1a/0x60
    thermal_zone_device_unregister+0x1f2/0x210
    pkg_thermal_cpu_offline+0x14f/0x1a0 [x86_pkg_temp_thermal]
    ? kzalloc.constprop.2+0x10/0x10 [x86_pkg_temp_thermal]
    cpuhp_invoke_callback+0x8d/0x3f0
    cpuhp_down_callbacks+0x42/0x80
    cpuhp_thread_fun+0x8b/0xf0
    smpboot_thread_fn+0x110/0x160
    kthread+0x101/0x140
    ? sort_range+0x30/0x30
    ? kthread_park+0x90/0x90
    ret_from_fork+0x25/0x30

    This patch moves the kfree calls to clean up the dynamic attributes to
    the thermal_class's thermal_zone_device release function.

    Cc: Zhang Rui
    Cc: Eduardo Valentin
    Cc: linux-pm@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Tested-by: Yasuaki Ishimatsu
    Signed-off-by: Jacob von Chorus
    Signed-off-by: Zhang Rui

    Jacob von Chorus
     

04 Jan, 2017

5 commits

  • thermal devfreq cooling does not use the ability to look up pointers by
    ID, so convert it from using an IDR to the more space-efficient IDA.

    Signed-off-by: Matthew Wilcox
    Signed-off-by: Zhang Rui

    Matthew Wilcox
     
  • thermal cpu cooling does not use the ability to look up pointers by ID,
    so convert it from using an IDR to the more space-efficient IDA.

    The cooling_cpufreq_lock was being used to protect cpufreq_dev_count as
    well as the IDR. Rather than keep the mutex to protect a single integer,
    I expanded the scope of cooling_list_lock to also cover cpufreq_dev_count.
    We could also convert cpufreq_dev_count into an atomic.

    Signed-off-by: Matthew Wilcox
    Signed-off-by: Zhang Rui

    Matthew Wilcox
     
  • thermal clock cooling does not use the ability to look up pointers by ID,
    so convert it from using an IDR to the more space-efficient IDA.

    Signed-off-by: Matthew Wilcox
    Signed-off-by: Zhang Rui

    Matthew Wilcox
     
  • The thermal core does not use the ability to look up pointers by ID, so
    convert it from using an IDR to the more space-efficient IDA.

    Signed-off-by: Matthew Wilcox
    Signed-off-by: Zhang Rui

    Matthew Wilcox
     
  • Booting Linux on a mx6q based board leads to the following warning:

    (NULL device *): hwmon_device_register() is deprecated. Please convert the
    driver to use hwmon_device_register_with_info().

    ,so do as suggested.

    Also, this results in the core taking care of creating the 'name'
    attribute, so drop the code doing that from the thermal driver.

    Suggested-by: Guenter Roeck
    Signed-off-by: Fabio Estevam
    Signed-off-by: Zhang Rui

    Fabio Estevam
     

14 Dec, 2016

7 commits

  • In some cases, some sensors didn't need the trip points, the
    set_trips will pass {-INT_MAX, INT_MAX} to trigger tsadc alarm in the end,
    ignore this case and disable the high temperature interrupt.

    Signed-off-by: Caesar Wang
    Reviewed-by: Brian Norris
    Signed-off-by: Eduardo Valentin

    Caesar Wang
     
  • In order to support the valid temperature can conver to analog value.
    The rockchip thermal driver has not supported the all valid temperature
    to convert the analog value. (e.g.: 61C, 62C, 63C....)

    For example:
    In some cases, we need adjust the trip point.
    $cd /sys/class/thermal/thermal_zone*
    $echo 68000 > trip_point_0_temp
    That will return the max analogic value indicates the invalid before
    posting this patch.

    So, this patch will optimize the conversion table to support the other
    cases.

    Signed-off-by: Caesar Wang
    Signed-off-by: Eduardo Valentin

    Caesar Wang
     
  • The temp_to_code function will return 0 when we set the temperature to a
    invalid value (e.g. 61C, 62C, 63C....), that's unpractical. This patch
    will prevent this case happening. That will return the max analog value to
    indicate the temperature is invalid or over table temperature range.

    Signed-off-by: Caesar Wang
    Signed-off-by: Eduardo Valentin

    Caesar Wang
     
  • This driver passes struct chip_tsadc_table by value throughout; this is
    inefficient, and AFAICT, there is no reason for it. Let's pass pointers
    instead.

    Signed-off-by: Brian Norris
    Reviewed-by: Caesar Wang
    Signed-off-by: Caesar Wang
    Signed-off-by: Eduardo Valentin

    Brian Norris
     
  • These error messages don't give much information about what went wrong.
    It would be nice, for one, to see what invalid temperature was being
    requested when conversion fails. It's also good to return an error when
    we can't handle a conversion properly.

    While we're at it, fix the grammar too.

    Signed-off-by: Brian Norris
    Signed-off-by: Caesar Wang
    Signed-off-by: Eduardo Valentin

    Brian Norris
     
  • Pull power management updates from Rafael Wysocki:
    "Again, cpufreq gets more changes than the other parts this time (one
    new driver, one old driver less, a bunch of enhancements of the
    existing code, new CPU IDs, fixes, cleanups)

    There also are some changes in cpuidle (idle injection rework, a
    couple of new CPU IDs, online/offline rework in intel_idle, fixes and
    cleanups), in the generic power domains framework (mostly related to
    supporting power domains containing CPUs), and in the Operating
    Performance Points (OPP) library (mostly related to supporting devices
    with multiple voltage regulators)

    In addition to that, the system sleep state selection interface is
    modified to make it easier for distributions with unchanged user space
    to support suspend-to-idle as the default system suspend method, some
    issues are fixed in the PM core, the latency tolerance PM QoS
    framework is improved a bit, the Intel RAPL power capping driver is
    cleaned up and there are some fixes and cleanups in the devfreq
    subsystem

    Specifics:

    - New cpufreq driver for Broadcom STB SoCs and a Device Tree binding
    for it (Markus Mayer)

    - Support for ARM Integrator/AP and Integrator/CP in the generic DT
    cpufreq driver and elimination of the old Integrator cpufreq driver
    (Linus Walleij)

    - Support for the zx296718, r8a7743 and r8a7745, Socionext UniPhier,
    and PXA SoCs in the the generic DT cpufreq driver (Baoyou Xie,
    Geert Uytterhoeven, Masahiro Yamada, Robert Jarzmik)

    - cpufreq core fix to eliminate races that may lead to using inactive
    policy objects and related cleanups (Rafael Wysocki)

    - cpufreq schedutil governor update to make it use SCHED_FIFO kernel
    threads (instead of regular workqueues) for doing delayed work (to
    reduce the response latency in some cases) and related cleanups
    (Viresh Kumar)

    - New cpufreq sysfs attribute for resetting statistics (Markus Mayer)

    - cpufreq governors fixes and cleanups (Chen Yu, Stratos Karafotis,
    Viresh Kumar)

    - Support for using generic cpufreq governors in the intel_pstate
    driver (Rafael Wysocki)

    - Support for per-logical-CPU P-state limits and the EPP/EPB (Energy
    Performance Preference/Energy Performance Bias) knobs in the
    intel_pstate driver (Srinivas Pandruvada)

    - New CPU ID for Knights Mill in intel_pstate (Piotr Luc)

    - intel_pstate driver modification to use the P-state selection
    algorithm based on CPU load on platforms with the system profile in
    the ACPI tables set to "mobile" (Srinivas Pandruvada)

    - intel_pstate driver cleanups (Arnd Bergmann, Rafael Wysocki,
    Srinivas Pandruvada)

    - cpufreq powernv driver updates including fast switching support
    (for the schedutil governor), fixes and cleanus (Akshay Adiga,
    Andrew Donnellan, Denis Kirjanov)

    - acpi-cpufreq driver rework to switch it over to the new CPU
    offline/online state machine (Sebastian Andrzej Siewior)

    - Assorted cleanups in cpufreq drivers (Wei Yongjun, Prashanth
    Prakash)

    - Idle injection rework (to make it use the regular idle path instead
    of a home-grown custom one) and related powerclamp thermal driver
    updates (Peter Zijlstra, Jacob Pan, Petr Mladek, Sebastian Andrzej
    Siewior)

    - New CPU IDs for Atom Z34xx and Knights Mill in intel_idle (Andy
    Shevchenko, Piotr Luc)

    - intel_idle driver cleanups and switch over to using the new CPU
    offline/online state machine (Anna-Maria Gleixner, Sebastian
    Andrzej Siewior)

    - cpuidle DT driver update to support suspend-to-idle properly
    (Sudeep Holla)

    - cpuidle core cleanups and misc updates (Daniel Lezcano, Pan Bian,
    Rafael Wysocki)

    - Preliminary support for power domains including CPUs in the generic
    power domains (genpd) framework and related DT bindings (Lina Iyer)

    - Assorted fixes and cleanups in the generic power domains (genpd)
    framework (Colin Ian King, Dan Carpenter, Geert Uytterhoeven)

    - Preliminary support for devices with multiple voltage regulators
    and related fixes and cleanups in the Operating Performance Points
    (OPP) library (Viresh Kumar, Masahiro Yamada, Stephen Boyd)

    - System sleep state selection interface rework to make it easier to
    support suspend-to-idle as the default system suspend method
    (Rafael Wysocki)

    - PM core fixes and cleanups, mostly related to the interactions
    between the system suspend and runtime PM frameworks (Ulf Hansson,
    Sahitya Tummala, Tony Lindgren)

    - Latency tolerance PM QoS framework imorovements (Andrew Lutomirski)

    - New Knights Mill CPU ID for the Intel RAPL power capping driver
    (Piotr Luc)

    - Intel RAPL power capping driver fixes, cleanups and switch over to
    using the new CPU offline/online state machine (Jacob Pan, Thomas
    Gleixner, Sebastian Andrzej Siewior)

    - Fixes and cleanups in the exynos-ppmu, exynos-nocp, rk3399_dmc,
    rockchip-dfi devfreq drivers and the devfreq core (Axel Lin,
    Chanwoo Choi, Javier Martinez Canillas, MyungJoo Ham, Viresh Kumar)

    - Fix for false-positive KASAN warnings during resume from ACPI S3
    (suspend-to-RAM) on x86 (Josh Poimboeuf)

    - Memory map verification during resume from hibernation on x86 to
    ensure a consistent address space layout (Chen Yu)

    - Wakeup sources debugging enhancement (Xing Wei)

    - rockchip-io AVS driver cleanup (Shawn Lin)"

    * tag 'pm-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (127 commits)
    devfreq: rk3399_dmc: Don't use OPP structures outside of RCU locks
    devfreq: rk3399_dmc: Remove dangling rcu_read_unlock()
    devfreq: exynos: Don't use OPP structures outside of RCU locks
    Documentation: intel_pstate: Document HWP energy/performance hints
    cpufreq: intel_pstate: Support for energy performance hints with HWP
    cpufreq: intel_pstate: Add locking around HWP requests
    PM / sleep: Print active wakeup sources when blocking on wakeup_count reads
    PM / core: Fix bug in the error handling of async suspend
    PM / wakeirq: Fix dedicated wakeirq for drivers not using autosuspend
    PM / Domains: Fix compatible for domain idle state
    PM / OPP: Don't WARN on multiple calls to dev_pm_opp_set_regulators()
    PM / OPP: Allow platform specific custom set_opp() callbacks
    PM / OPP: Separate out _generic_set_opp()
    PM / OPP: Add infrastructure to manage multiple regulators
    PM / OPP: Pass struct dev_pm_opp_supply to _set_opp_voltage()
    PM / OPP: Manage supply's voltage/current in a separate structure
    PM / OPP: Don't use OPP structure outside of rcu protected section
    PM / OPP: Reword binding supporting multiple regulators per device
    PM / OPP: Fix incorrect cpu-supply property in binding
    cpuidle: Add a kerneldoc comment to cpuidle_use_deepest_state()
    ..

    Linus Torvalds
     
  • Pull thermal management updates from Zhang Rui:

    - Thermal core code reorganization and cleanup. Two new files are
    created for thermal sysfs I/F code and thermal helper functions
    (Eduardo Valentin).

    - Sanitize hotplug and locking for x86_pkg_temp driver (Thomas
    Gleixner)

    - Update MAINTAINER file for pwm-fan driver and Samsung thermal driver
    (Lukasz Majewski)

    - Fix module auto-load for max77620, tango and db8500 thermal driver
    (Javier Martinez Canillas)

    - Fix a bug that thermal hwmon sysfs I/F returns wrong critical trip
    point temperature value (Krzysztof Kozlowski)

    - Add Skylake PCH 100 series support for intel_pch_thermal driver
    (OGAWA Hirofumi)

    - Small fixes and cleanups for platform thermal drivers (Julia Lawall,
    Luis Henriques, Leo Yan, Stephen Boyd, Shawn Lin, Javi Merino and
    Lukasz Luba)

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux: (76 commits)
    MAINTAINERS: Samsung: Update maintainer for PWM FAN and SAMSUNG THERMAL
    thermal/x86 pkg temp: Convert to hotplug state machine
    thermal/x86_pkg_temp: Sanitize package management
    thermal/x86_pkg_temp: Move work into package struct
    thermal/x86_pkg_temp: Move work scheduled flag into package struct
    thermal/x86_pkg_temp: Sanitize locking
    thermal/x86_pkg_temp: Cleanup code some more
    thermal/x86_pkg_temp: Cleanup namespace
    thermal/x86_pkg_temp: Get rid of ref counting
    thermal/x86_pkg_temp: Sanitize callback (de)initialization
    thermal/x86_pkg_temp: Replace open coded cpu search
    thermal/x86_pkg_temp: Remove redundant package search
    thermal/x86_pkg_temp: Cleanup thermal interrupt handling
    thermal: hwmon: Properly report critical temperature in sysfs
    devfreq_cooling: pass a pointer to devfreq in the power model callbacks
    devfreq_cooling: make the structs devfreq_cooling_xxx visible for all
    dt-bindings: rockchip-thermal: fix the misleading description
    thermal: rockchip: improve the warning log
    thermal: db8500: Fix module autoload
    thermal: tango: Fix module autoload
    ...

    Linus Torvalds
     

13 Dec, 2016

2 commits

  • Pull x86 idle updates from Ingo Molnar:
    "There were two bigger changes in this development cycle:

    - remove idle notifiers:

    32 files changed, 74 insertions(+), 803 deletions(-)

    These notifiers were of questionable value and the main usecase,
    the i7300 driver, was essentially unmaintained and can be removed,
    plus modern power management concepts don't need the callback - so
    use this golden opportunity and get rid of this opaque and fragile
    callback from a latency sensitive code path.

    (Len Brown, Thomas Gleixner)

    - improve the AMD Erratum 400 workaround that used high overhead MSR
    polling in the idle loop (Borisla Petkov, Thomas Gleixner)"

    * 'x86-idle-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86: Remove empty idle.h header
    x86/amd: Simplify AMD E400 aware idle routine
    x86/amd: Check for the C1E bug post ACPI subsystem init
    x86/bugs: Separate AMD E400 erratum and C1E bug
    x86/cpufeature: Provide helper to set bugs bits
    x86/idle: Remove enter_idle(), exit_idle()
    x86: Remove x86_test_and_clear_bit_percpu()
    x86/idle: Remove is_idle flag
    x86/idle: Remove idle_notifier
    i7300_idle: Remove this driver

    Linus Torvalds
     
  • Rafael J. Wysocki