aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-06-05Documentation: thermal: document of_cpufreq_cooling_register()v3.18/topic/thermal-depsJavi Merino
Commit 39d99cff76bf ("thermal: cpu_cooling: introduce of_cpufreq_cooling_register") taught the cpu cooling device to register devices that were linked to the device tree but didn't update the cpu-cooling-api documentation. Fix it. Cc: Amit Daniel Kachhap <amit.kachhap@linaro.org> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Zhang Rui <rui.zhang@intel.com> Cc: Eduardo Valentin <edubezval@gmail.com> Signed-off-by: Javi Merino <javi.merino@arm.com> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit 9477e18dd5d6c575ed972d81b7d9d6ff8a83746b) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: Fix cdev registration with THERMAL_NO_LIMIT on 64bitPunit Agrawal
The size of unsigned long varies between 32 and 64 bit systems while the size of phandle arguments is always 32 bits per parameter. On 64-bit systems, cooling devices registered via of-thermal apis fail to bind when the min/max cooling state is specified as THERMAL_NO_LIMIT (-1UL) as there is a mis-match between the value read from the device tree (32bit) and the pre-processor define (64bit). As we're unlikely to need cooling states larger than 32 bits, and for consistency with the size of phandle arguments, explicitly limit THERMAL_NO_LIMIT to 32 bits. Reported-by: Hyungwoo Yang <hwoo.yang@gmail.com> Acked-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Punit Agrawal <punit.agrawal@arm.com> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit a940cb34fed73b2d4809a4575f2981d5927e2c21) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: provide an UAPI header fileFlorian Fainelli
include/linux/thermal.h contains definitions for the Thermal generic netlink family, but none of the valuable information relevant to user-space such as the Genl family name, multicast group, version or command set and data types is exported to user-space. Export all the relevant generic netlink information to user-space to make this genl family usable by user-space, and while at it, export THERMAL_NAME_LENGTH since it limits name length for thermal_hwmon devices. Kbuild and MAINTAINERS are also updated accordingly to reflect this new file: include/uapi/linux/thermal.h. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: Zhang Rui <rui.zhang@intel.com> (cherry picked from commit af6c9f1657ca6d2ef2b2c0e31ad17c6fbf773baf) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: of: Remove bogus type qualifier for of_thermal_get_trip_points()Geert Uytterhoeven
With gcc 4.1.2, 4.2, and 4.2.4 (4.4 and later are OK): drivers/thermal/thermal_core.h:110: warning: type qualifiers ignored on function return type Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Fixes: ce8be7785922de0e ("thermal: of: Extend of-thermal to export table of trip points") Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit ebc3193ae0df723f4d8abd06890cd77354493c79) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: cpu_cooling: document node in struct cpufreq_cooling_deviceJavi Merino
The node field of struct cpufreq_cooling_device was reintroduced in 2dcd851fe4b4 (thermal: cpu_cooling: Update always cpufreq policy with thermal constraints) but without the documentation that it once had. Add it back so that all the fields of struct cpufreq_cooling_device are documented. Cc: Yadwinder Singh Brar <yadi.brar@samsung.com> Cc: Eduardo Valentin <edubezval@gmail.com> Cc: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Javi Merino <javi.merino@arm.com> Signed-off-by: Zhang Rui <rui.zhang@intel.com> (cherry picked from commit fc4de356e033a46a08caf78027df871cc20780c1) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: cpu_cooling: small memory leak on errorDan Carpenter
There was a left over return here so the error handling isn't run. It leads to a small memory leak and a static checker warning. drivers/thermal/cpu_cooling.c:351 __cpufreq_cooling_register() info: ignoring unreachable code. Fixes: f6859014c7e7 ("thermal: cpu_cooling: Store frequencies in descending order") Acked-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit 2d2e95ea8f124869b96ad929d1701bd64844a06a) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05drivers: thermal: Remove ARCH_HAS_BANDGAP dependency for samsungAbhilash Kesavan
As samsung thermal support is enabled only for ARCH_EXYNOS, there is no need to select ARCH_HAS_BANDGAP from the arch-specific code. Removing this dependency will also allow the driver to be enabled on 64-bit SoCs. Reviewed-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Reviewed-by: Lukasz Majewski <l.majewski@samsung.com> Acked-by: Lukasz Majewski <l.majewski@samsung.com> Signed-off-by: Abhilash Kesavan <a.kesavan@samsung.com> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit fcbb1e02ee540e1875137d36259017f91b95c30c) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05Thermal: fix platform_no_drv_owner.cocci warningsWu Fengguang
drivers/thermal/int340x_thermal/int3403_thermal.c:468:3-8: No need to set .owner here. The core will do it. Remove .owner field if calls are used which set it automatically Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci Signed-off-by: Fengguang Wu <fengguang.wu@intel.com> Acked-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Zhang Rui <rui.zhang@intel.com> (cherry picked from commit 341203167f9138073853cecd1f02d180bf9924ca) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: of: Extend current of-thermal.c code to allow setting emulated tempLukasz Majewski
Before this change it was only possible to set get_temp() and get_trend() methods to be used in the common code handling passing parameters via device tree to "cpu-thermal" CPU thermal zone device. Now it is possible to also set emulated value of temperature for debug purposes. Signed-off-by: Lukasz Majewski <l.majewski@samsung.com> Acked-by: Eduardo Valentin <edubezval@gmail.com> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit 184a4bf623fa587067851d25435fcb2f41de445b) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: of: Extend of-thermal to export table of trip pointsLukasz Majewski
This patch extends the of-thermal.c to export trip points for a given thermal zone. Thermal drivers should use of_thermal_get_trip_points() method to get pointer to table of thermal trip points. Signed-off-by: Lukasz Majewski <l.majewski@samsung.com> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit ce8be7785922de0ef497b20384425ed04f674f9d) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: of: Rename struct __thermal_trip to struct thermal_tripLukasz Majewski
This patch changes name of struct __thermal_trip to thermal_trip and moves declaration of the latter to ./include/linux/thermal.h for better visibility. Signed-off-by: Lukasz Majewski <l.majewski@samsung.com> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit ad9914ac3b1f5c12ef2cf1c58a6ddda306fb79d4) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: of: Extend of-thermal.c to provide check if trip point is validLukasz Majewski
This patch extends the of-thermal.c to provide check if trip point is valid. Signed-off-by: Lukasz Majewski <l.majewski@samsung.com> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit a9bf2cc49d9030e374edb9cc0389512a1a1c357e) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: of: Extend of-thermal.c to provide number of trip pointsLukasz Majewski
This patch extends the of-thermal.c to provide information about number of available trip points. Signed-off-by: Lukasz Majewski <l.majewski@samsung.com> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit 08dab66ec8431a1f744596cfc9f5fb659b623835) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: cpu_cooling: update copyright tagsViresh Kumar
Adding my copyright information for two purposes: - To get cc'd for future patches to review (Only if people read this header while sending mail) - Have done enough changes to earn a place here? Cc: Amit Daniel Kachhap <amit.daniel@samsung.com> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit 73904cbc1a5a5143323743209257d4668fadc7f3) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: cpu_cooling: Use cpufreq_dev->freq_table for finding level/freqViresh Kumar
get_property() was an over complicated beast with BUGs. It used to believe that cpufreq table is present in ascending or descending order, which might not always be true. Previous patch has created another freq table in descending order for us and we better use it now. With that get_property() simply goes away and another helper get_level() comes in. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit 4843c4a190495aec41c8a87365697e933dc88bc9) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: cpu_cooling: Store frequencies in descending orderViresh Kumar
CPUFreq framework *doesn't* guarantee that frequencies present in cpufreq table will be in ascending or descending order. But cpu_cooling somehow assumes that. Probably because most of current users are creating this list from DT, which is done with the help of OPP layer. And OPP layer creates the list in ascending order of frequencies. But cpu_cooling can be used for other platforms too, which don't have frequencies arranged in any order. This patch tries to fix this issue by creating another list of valid frequencies in descending order. Care is also taken to throw warnings for duplicate entries. Later patches would use it to simplify code. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit f6859014c7e7cc0e7688525741fc3a0e7aee63be) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: cpu_cooling: Pass 'cpufreq_dev' to get_property()Viresh Kumar
We already know the value of 'cpufreq_dev->max_level' and so there is no need calculating that once again. For this, we need to send 'cpufreq_dev' to get_property(). Make all necessary changes for this change. Because cpufreq_cooling_get_level() doesn't have access to 'cpufreq_dev', it is updated to iterate over the list of cpufreq_cooling_devices to get cooling device for the cpu number passed to it. This also makes it robust to return levels only for the CPU registered via a cooling device. We don't have to support anything that isn't registered yet. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit b9f8b4160310e4459c08b54b918cd83da141f7f0) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: cpu_cooling: use cpufreq_dev_list instead of cpufreq_dev_countViresh Kumar
As we already have a list of cpufreq_cooling_devices now, lets use it instead of a local counter. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit 2479bb6443d6a793f896219a34bfab0cc410f0b4) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: cpu_cooling: get_property() doesn't need to support GET_MAXL anymoreViresh Kumar
We don't use get_property() to find max levels anymore as it is done at boot now. So, don't support GET_MAXL in get_property(). Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit 97afa4aafb821eca197f678b6552488c46f8c48e) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: cpu_cooling: find max level during device registrationViresh Kumar
CPU frequency tables don't update after the driver is registered and so we don't need to iterate over them to find total number of states every time cpufreq_get_max_state() is called. Do it once at boot time. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit dcc6c7fdef9e705b1300be22213fb23e3fd1994d) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: cpu_cooling: remove unnecessary wrapper get_cpu_frequency()Viresh Kumar
get_cpu_frequency() isn't doing much by itself, just calling get_property(). And so this wrapper isn't required at all. Get rid of it. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit 521a2e5831704efef8aa826d6b22abef55650d59) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: cpu_cooling: Merge cpufreq_apply_cooling() into cpufreq_set_cur_state()Viresh Kumar
cpufreq_apply_cooling() has a single caller, cpufreq_set_cur_state() and cpufreq_set_cur_state() is an unnecessary wrapper over cpufreq_apply_cooling(). Get rid of it by merging both routines. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit 5194fe469927e50367b35e556812c7fc6ce130d1) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: cpu_cooling: initialize 'cpufreq_val' on registrationViresh Kumar
There is no point checking for validity of 'cpufreq_val' from cpufreq_thermal_notifier() every time the routine is called. Its guaranteed to be 0 on the first call but will be valid otherwise. Lets update it once while the device registers. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit 7adb635b3cd790e4e0d7e9d0b3dd30574ae36596) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: cpu_cooling: do error handling at the bottom in ↵Viresh Kumar
__cpufreq_cooling_register() This makes life easy and bug free. And is scalable for future resource allocations. Acked-by: Javi Merino <javi.merino@arm.com> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit 730abe064b6f8860302b75a689ceed059c08e0b1) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: cpu_cooling: Don't check is_cpufreq_valid()Viresh Kumar
Because get_cpu_frequency() has returned a valid frequency, it means that the cpufreq policy is surely valid and so no point checking that again with is_cpufreq_valid(). Get rid of the routine as well as there are no more users. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit c9ca319f0579cd51b07a666683157233c2cf720d) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: cpu_cooling: don't iterate over all allowed_cpus to update cpufreq ↵Viresh Kumar
policy All CPUs present in 'allowed_cpus' share the same 'struct cpufreq_policy' structure and so calling cpufreq_update_policy() for each of them doesn't make sense. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit e1fae554fb69b8869acbea9397d15758a93d1204) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: cpu_cooling: Don't match min/max frequencies for all CPUs on ↵Viresh Kumar
cooling register In __cpufreq_cooling_register() we try to match min/max frequencies for all CPUs passed in 'clip_cpus' mask. This mask is the cpumask of cpus where the frequency constraints will be applied. Same frequency constraint can be applied only to the CPUs belonging to the same cluster (i.e. CPUs sharing clock line). For all such CPUs we have a single 'struct cpufreq_policy' structure managing them and so getting policies for all CPUs wouldn't make any sense as they will all return the same pointer. So, remove this useless check of checking min/max for all CPUs. Also update doc comment to make this more obvious that clip_cpus should be same as policy->related_cpus. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit 405fb8256226ad68cf6ba5172d289a70cb447c81) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: cpu_cooling: propagate error returned by idr_alloc()Viresh Kumar
We aren't supposed to return our own error type here. Return what we got. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit 268ac445ee1b2b7c2806e7a21076e6d94aca1ca3) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: cpu_cooling: no need to initialze 'ret'Viresh Kumar
ret is initialized before it is used, so no need to set it to 0 in its declaration. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit 8e54d442fe3cdd1ffe5f563ee843b4d48e14ef6e) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: cpu_cooling: no need to set cpufreq_dev to NULLViresh Kumar
It will be overwritten soon with return value of kzalloc(). Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit 5d3bdb8998e066fe270f2f71db7163d5ac40d989) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: cpu_cooling: no need to set cpufreq_state to zeroViresh Kumar
Its already zero, we allocated cpufreq_dev with kzalloc. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit 92e615ec82c0314fb480eeb19396f4ac15bf97ef) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: cpu_cooling: Pass variable instead of its type to sizeof()Viresh Kumar
Just following coding guidelines here. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit 98d522f056568007557867d53833770dee9d8fe8) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: cpu_cooling: Add comment to clarify relation between cooling state ↵Viresh Kumar
and frequency This wasn't explained well anywhere and should be clearly specified. Lets add a top level comment for this. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit 07d888d831b038c01c5415f8945f41c743f49fb2) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: cpu_cooling: fix doc comment over struct cpufreq_cooling_deviceViresh Kumar
cooling_cpufreq_lock isn't used to protect this structure and so the comment over it is outdated. Fix it. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit beca6053fc21bbe0ed0242a3f79c0cca5749a90f) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: cpu_cooling: random comment fixupsViresh Kumar
s/give/given Acked-by: Eduardo Valentin <edubezval@gmail.com> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit 728c03c9592198717fed3e9fbae7260cff300175) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: cpu_cooling: check for the readiness of cpufreq layerEduardo Valentin
In this patch, the cpu_cooling code checks for the usability of cpufreq layer before proceeding with the CPU cooling device registration. The main reason is: CPU cooling device is not usable if cpufreq cannot switch frequencies. Similar checks are spread in thermal drivers. Thus, the advantage now is to have the check in a single place: cpu cooling device registration. For this reason, this patch also updates the existing drivers that depend on CPU cooling to simply propagate the error code of the cpu cooling registration call. Therefore, in case cpufreq is not ready, the thermal drivers will still return -EPROBE_DEFER, in an attempt to try again when cpufreq layer gets ready. Cc: devicetree@vger.kernel.org Cc: Grant Likely <grant.likely@linaro.org> Cc: Kukjin Kim <kgene.kim@samsung.com> Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Cc: linux-pm@vger.kernel.org Cc: linux-samsung-soc@vger.kernel.org Cc: Naveen Krishna Chatradhi <ch.naveen@samsung.com> Cc: Rob Herring <robh+dt@kernel.org> Cc: Zhang Rui <rui.zhang@intel.com> Acked-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit 0f1be51c358f740fe5183bd0bcd60076fdfb53d0) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: Fix error path in thermal_init()Luis Henriques
thermal_unregister_governors() and class_unregister() were being called in the wrong order. Fixes: 80a26a5c22b9 ("Thermal: build thermal governors into thermal_sys module") Cc: stable@vger.kernel.org Signed-off-by: Luis Henriques <luis.henriques@canonical.com> Signed-off-by: Zhang Rui <rui.zhang@intel.com> (cherry picked from commit 9d367e5e7b05c71a8c1ac4e9b6e00ba45a79f2fc) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: lock the thermal zone when switching governorsJavi Merino
Currently, userspace can request a governor change while the governor itself is running. Grab the thermal zone lock when changing the governor to prevent this race. Signed-off-by: Javi Merino <javi.merino@arm.com> Signed-off-by: Zhang Rui <rui.zhang@intel.com> (cherry picked from commit b6cc772f64ac7d1917770406844b73a94ca5ef06) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: core: ignore invalid trip temperatureSrinivas Pandruvada
Ignore invalid trip temperature less or equal to zero. Some buggy systems have invalid trips, causing system shutdown. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Signed-off-by: Zhang Rui <rui.zhang@intel.com> (cherry picked from commit 84ffe3ecc2c8b3effc41c0babd2cc24f1edb2aab) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: of: improve of-thermal sensor registration APIEduardo Valentin
Different drivers request API extensions in of-thermal. For this reason, additional callbacks are required to fit the new drivers needs. The current API implementation expects the registering sensor driver to provide a get_temp and get_trend callbacks as function parameters. As the amount of callbacks is growing, this patch changes the existing implementation to use a .ops field to hold all the of thermal callbacks to sensor drivers. This patch also changes the existing of-thermal users to fit the new API design. No functional change is introduced in this patch. Cc: Alexandre Courbot <gnurou@gmail.com> Cc: devicetree@vger.kernel.org Cc: Grant Likely <grant.likely@linaro.org> Cc: Guenter Roeck <linux@roeck-us.net> Cc: Jean Delvare <jdelvare@suse.de> Cc: linux-kernel@vger.kernel.org Cc: linux-pm@vger.kernel.org Cc: linux-tegra@vger.kernel.org Cc: lm-sensors@lm-sensors.org Cc: Rob Herring <robh+dt@kernel.org> Cc: Stephen Warren <swarren@wwwdotorg.org> Cc: Thierry Reding <thierry.reding@gmail.com> Cc: Zhang Rui <rui.zhang@intel.com> Acked-by: Guenter Roeck <linux@roeck-us.net> Tested-by: Mikko Perttunen <mikko.perttunen@kapsi.fi> Reviewed-by: Mikko Perttunen <mikko.perttunen@kapsi.fi> Reviewed-by: Alexandre Courbot <acourbot@nvidia.com> Reviewed-by: Lukasz Majewski <l.majewski@samsung.com> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit 2251aef64a38db60f4ae7a4a83f9203c6791f196) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: Add Tegra SOCTHERM thermal management driverMikko Perttunen
This adds support for the Tegra SOCTHERM thermal sensing and management system found in the Tegra124 system-on-chip. This initial driver supports temperature polling for four thermal zones. Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit 66fb84805134c39f00d7c2054c881faa50910390) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2015-06-05thermal: introduce clock cooling deviceEduardo Valentin
This patch introduces a new thermal cooling device based on common clock framework. The original motivation to write this cooling device is to be able to cool down thermal zones using clocks that feed co-processors, such as GPUs, DSPs, Image Processing Co-processors, etc. But it is written in a way that it can be used on top of any clock. The implementation is pretty straight forward. The code creates a thermal cooling device based on a pair of a struct device and a clock name. The struct device is assumed to be usable by the OPP layer. The OPP layer is used as source of the list of possible frequencies. The (cpufreq) frequency table is then used as a map from frequencies to cooling states. Cooling states are indexes to the frequency table. The logic sits on top of common clock framework, specifically on clock pre notifications. Any PRE_RATE_CHANGE is hijacked, and the transition is only allowed when the new rate is within the thermal limit (cooling state -> freq). When a thermal cooling device state transition is requested, the clock is also checked to verify if the current clock rate is within the new thermal limit. Cc: Zhang Rui <rui.zhang@intel.com> Cc: Mike Turquette <mturquette@linaro.org> Cc: Nishanth Menon <nm@ti.com> Cc: Pavel Machek <pavel@ucw.cz> Cc: "Rafael J. Wysocki" <rjw@sisk.pl> Cc: Len Brown <len.brown@intel.com> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: linux-pm@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Eduardo Valentin <eduardo.valentin@ti.com> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> (cherry picked from commit f9df89d897ee0928aa4e03b30250e87f5d1e788a) Signed-off-by: Kevin Hilman <khilman@linaro.org>
2014-12-07Linux 3.18v3.18Linus Torvalds
2014-12-07Merge branch 'for-3.18-fixes' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata Pull libata fixes from Tejun Heo: "Three libata fixes for v3.18. Nothing too interesting. PCI ID ID and quirk additions to ahci and an error handling path fix in sata_fsl" * 'for-3.18-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata: ahci: disable MSI on SAMSUNG 0xa800 SSD sata_fsl: fix error handling of irq_of_parse_and_map AHCI: Add DeviceIDs for Sunrise Point-LP SATA controller
2014-12-06Merge git://www.linux-watchdog.org/linux-watchdogLinus Torvalds
Pull watchdog fix from Wim Van Sebroeck: "Fix the watchdog mask bit offset for Exynos7" * git://www.linux-watchdog.org/linux-watchdog: watchdog: s3c2410_wdt: Fix the mask bit offset for Exynos7
2014-12-06Merge branch 'i2c/for-current' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux Pull i2c fixes from Wolfram Sang: "Here are two more driver bugfixes for I2C which would be good to have" * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: i2c: cadence: Set the hardware time-out register to maximum value i2c: davinci: generate STP always when NACK is received
2014-12-05watchdog: s3c2410_wdt: Fix the mask bit offset for Exynos7Abhilash Kesavan
The watchdog mask bit offset listed for Exynos7 is incorrect. Fix this. Signed-off-by: Abhilash Kesavan <a.kesavan@samsung.com> Acked-by: Naveen Krishna Chatradhi <naveenkrishna.ch@gmail.com Reviewd-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2014-12-05Merge branch 'x86-urgent-for-linus' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 fixes from Thomas Gleixner: "Two final fixlets for 3.18: - Prevent microcode reload wreckage on 32bit - Unbreak cross compilation" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86, microcode: Limit the microcode reloading to 64-bit for now x86: Use $(OBJDUMP) instead of plain objdump
2014-12-05Merge tag 'sound-3.18' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixlet from Takashi Iwai: "Just one commit for adding a copule of HD-audio quirk entries" * tag 'sound-3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ALSA: hda/realtek - Add headset Mic support for new Dell machine
2014-12-04Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linuxLinus Torvalds
Pull drm intel fixes from Dave Airlie: "Two intel stable fixes, that should be it from me for this round" * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: drm/i915: Unlock panel even when LVDS is disabled drm/i915: More cautious with pch fifo underruns