07 Nov, 2011
1 commit
-
The thermal driver should use a freezable workqueue to schedule
polling to prevent thermal_zone_device_update() from being run
during system suspend, when the devices it relies on may be inactive.
Make it use the system freezable workqueue for this purpose.Signed-off-by: Rafael J. Wysocki
Signed-off-by: Len Brown
03 Aug, 2011
2 commits
-
THERMAL_HWMON is implemented inside the thermal_sys driver and has no
effect on drivers implementing thermal zones, so they shouldn't see
anything related to it in . Making the THERMAL_HWMON
implementation fully internal has two advantages beyond the cleaner
design:* This avoids rebuilding all thermal drivers if the THERMAL_HWMON
implementation changes, or if CONFIG_THERMAL_HWMON gets enabled or
disabled.* This avoids breaking the thermal kABI in these cases too, which should
make distributions happy.The only drawback I can see is slightly higher memory fragmentation, as
the number of kzalloc() calls will increase by one per thermal zone. But
I doubt it will be a problem in practice, as I've never seen a system with
more than two thermal zones.Signed-off-by: Jean Delvare
Cc: Rene Herman
Acked-by: Guenter Roeck
Signed-off-by: Andrew Morton
Signed-off-by: Len Brown -
We'll soon need to reuse it.
Signed-off-by: Jean Delvare
Cc: Rene Herman
Acked-by: Guenter Roeck
Signed-off-by: Andrew Morton
Signed-off-by: Len Brown
23 Mar, 2011
1 commit
-
This patch fixes two minor bugs in thermal_sys:
(a) The flow of goto's in thermal_hwmon_add_sysfs.
(b) Remove the temp*_crit only if there is a get_crit_temp defined, in
thermal_remove_hwmon_sysfs.Signed-off-by: Durgadoss R
Signed-off-by: Len Brown
01 Mar, 2011
1 commit
-
Several ACPI drivers fail to build if CONFIG_NET is unset, because
they refer to things depending on CONFIG_THERMAL that in turn depends
on CONFIG_NET. However, CONFIG_THERMAL doesn't really need to depend
on CONFIG_NET, because the only part of it requiring CONFIG_NET is
the netlink interface in thermal_sys.c.Put the netlink interface in thermal_sys.c under #ifdef CONFIG_NET
and remove the dependency of CONFIG_THERMAL on CONFIG_NET from
drivers/thermal/Kconfig.Signed-off-by: Rafael J. Wysocki
Acked-by: Randy Dunlap
Cc: Ingo Molnar
Cc: Len Brown
Cc: Stephen Rothwell
Cc: Luming Yu
Cc: Andrew Morton
Signed-off-by: Linus Torvalds
12 Jan, 2011
2 commits
-
This patch adds event notification support to the generic
thermal sysfs framework in the kernel. The notification is in the
form of a netlink event.Signed-off-by: R.Durgadoss
Signed-off-by: Len Brown
01 Dec, 2010
1 commit
-
And while touching that function definition do something about the disaster
of formatting there.Signed-off-by: Alan Cox
Acked-by: Zhang Rui
Signed-off-by: Len Brown
07 Apr, 2010
1 commit
-
Initialize sysfs attributes before device_create_file call.
Addresses https://bugzilla.kernel.org/show_bug.cgi?id=15548
Signed-off-by: Wolfram Sang
Signed-off-by: Sergey Senozhatsky
Cc: "Eric W. Biederman"
Cc: Greg KH
Cc: Zhang Rui
Cc: Len Brown
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
30 Mar, 2010
1 commit
-
…it slab.h inclusion from percpu.h
percpu.h is included by sched.h and module.h and thus ends up being
included when building most .c files. percpu.h includes slab.h which
in turn includes gfp.h making everything defined by the two files
universally available and complicating inclusion dependencies.percpu.h -> slab.h dependency is about to be removed. Prepare for
this change by updating users of gfp and slab facilities include those
headers directly instead of assuming availability. As this conversion
needs to touch large number of source files, the following script is
used as the basis of conversion.http://userweb.kernel.org/~tj/misc/slabh-sweep.py
The script does the followings.
* Scan files for gfp and slab usages and update includes such that
only the necessary includes are there. ie. if only gfp is used,
gfp.h, if slab is used, slab.h.* When the script inserts a new include, it looks at the include
blocks and try to put the new include such that its order conforms
to its surrounding. It's put in the include block which contains
core kernel includes, in the same order that the rest are ordered -
alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
doesn't seem to be any matching order.* If the script can't find a place to put a new include (mostly
because the file doesn't have fitting include block), it prints out
an error message indicating which .h file needs to be added to the
file.The conversion was done in the following steps.
1. The initial automatic conversion of all .c files updated slightly
over 4000 files, deleting around 700 includes and adding ~480 gfp.h
and ~3000 slab.h inclusions. The script emitted errors for ~400
files.2. Each error was manually checked. Some didn't need the inclusion,
some needed manual addition while adding it to implementation .h or
embedding .c file was more appropriate for others. This step added
inclusions to around 150 files.3. The script was run again and the output was compared to the edits
from #2 to make sure no file was left behind.4. Several build tests were done and a couple of problems were fixed.
e.g. lib/decompress_*.c used malloc/free() wrappers around slab
APIs requiring slab.h to be added manually.5. The script was run on all .h files but without automatically
editing them as sprinkling gfp.h and slab.h inclusions around .h
files could easily lead to inclusion dependency hell. Most gfp.h
inclusion directives were ignored as stuff from gfp.h was usually
wildly available and often used in preprocessor macros. Each
slab.h inclusion directive was examined and added manually as
necessary.6. percpu.h was updated not to include slab.h.
7. Build test were done on the following configurations and failures
were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my
distributed build env didn't work with gcov compiles) and a few
more options had to be turned off depending on archs to make things
build (like ipr on powerpc/64 which failed due to missing writeq).* x86 and x86_64 UP and SMP allmodconfig and a custom test config.
* powerpc and powerpc64 SMP allmodconfig
* sparc and sparc64 SMP allmodconfig
* ia64 SMP allmodconfig
* s390 SMP allmodconfig
* alpha SMP allmodconfig
* um on x86_64 SMP allmodconfig8. percpu.h modifications were reverted so that it could be applied as
a separate patch and serve as bisection point.Given the fact that I had only a couple of failures from tests on step
6, I'm fairly confident about the coverage of this conversion patch.
If there is a breakage, it's likely to be something in one of the arch
headers which should be easily discoverable easily on most builds of
the specific arch.Signed-off-by: Tejun Heo <tj@kernel.org>
Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
17 Dec, 2009
1 commit
16 Dec, 2009
1 commit
-
state is unsigned long so the test did not work.
Signed-off-by: Roel Kluin
Acked-by: Zhang Rui
Signed-off-by: Len Brown
06 Nov, 2009
4 commits
-
Otherwise polling will continue for the thermal zone even when
it is no longer needed, for example because forced passive cooling
was disabled.Signed-off-by: Frans Pop
Acked-by: Matthew Garrett
Acked-by: Zhang Rui
Signed-off-by: Andrew Morton
Signed-off-by: Len Brown -
Setting polling_delay is useless as passive_delay has priority,
so the value shown in proc isn't the actual polling delay. It
also gives the impression to the user that he can change the
polling interval through proc, while in fact he can't.Also, unset passive_delay when the forced passive trip point is
unbound to allow polling to be disabled.Signed-off-by: Frans Pop
Acked-by: Matthew Garrett
Acked-by: Zhang Rui
Signed-off-by: Andrew Morton
Signed-off-by: Len Brown -
Values below 1000 milli-celsius don't make sense and can cause the
system to go into a thermal heart attack: the actual temperature
will always be lower and thus the system will be throttled down to
its lowest setting.An additional problem is that values below 1000 will show as 0 in
/proc/acpi/thermal/TZx/trip_points:passive.cat passive
0
echo -n 90 >passive
bash: echo: write error: Invalid argument
echo -n 90000 >passive
cat passive
90000Signed-off-by: Frans Pop
Acked-by: Zhang Rui
Signed-off-by: Andrew Morton
Signed-off-by: Len Brown -
Make the trip_point_N_type sysfs files return a string ending in EOL for
consistency with other sysfs files.Signed-off-by: Amit Kucheria
Acked-by: Zhang Rui
Signed-off-by: Andrew Morton
Signed-off-by: Len Brown
27 Aug, 2009
1 commit
-
The return value of the get_temp function is not checked when doing a
thermal zone update. This may lead to a critical shutdown if get_temp
fails and the content of the temp variable is incorrectly set higher than
the critical trip point.This has been observed on a system with incorrect ACPI implementation
where the corresponding methods were not serialized and therefore
sometimes triggered ACPI errors (AE_ALREADY_EXISTS). The following
critical shutdowns indicated a temperature of 2097 C, which was obviously
wrong.The patch adds a return value check that jumps over all trip point
evaluations printing a warning if get_temp fails. The trip points are
evaluated again on the next polling interval with successful get_temp
execution.Signed-off-by: Michael Brunner
Acked-by: Zhang Rui
Cc: Len Brown
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
16 Jun, 2009
1 commit
-
In the near future, the driver core is going to not allow direct access
to the driver_data pointer in struct device. Instead, the functions
dev_get_drvdata() and dev_set_drvdata() should be used. These functions
have been around since the beginning, so are backwards compatible with
all older kernel versions.Signed-off-by: Greg Kroah-Hartman
15 May, 2009
1 commit
-
This patch fixes a regression caused by commit
b1569e99c795bf83b4ddf41c4f1c42761ab7f75e
"ACPI: move thermal trip handling to generic thermal layer"
which accidentally changed trip point trigger condition to
temp > trip_tempThis patch changes the trigger condition back to
temp >= trip_tempSigned-off-by: Vladimir Zajac
Acked-by: Zhang Rui
Acked-by: Matthew Garrett
Signed-off-by: Andrew Morton
Signed-off-by: Len Brown
28 Mar, 2009
1 commit
-
Due to poor thermal design or Linux driving hardware outside its thermal
envelope, some systems will reach critical temperature and shut down
under high load. This patch adds support for forcing a polling-based
passive trip point if the firmware doesn't provide one. The assumption
is made that the processor is the most practical means to reduce the
dynamic heat generation, so hitting the passive thermal limit will cause
the CPU to be throttled until the temperature stabalises around the
defined value.UI is provided via a "passive" sysfs entry in the thermal zone
directory. It accepts a decimal value in millidegrees celsius, or "0" to
disable the functionality. Default behaviour is for this functionality
to be disabled.Signed-off-by: Matthew Garrett
Signed-off-by: Len Brown
21 Feb, 2009
1 commit
-
The ACPI code currently carries its own thermal trip handling, meaning that
any other thermal implementation will need to reimplement it. Move the code
to the generic thermal layer.Signed-off-by: Matthew Garrett
Signed-off-by: Len Brown
20 Feb, 2009
1 commit
-
The thermal API currently uses strings to pass values to userspace. This
makes it difficult to use from within the kernel. Change the interface
to use integers and fix up the consumers.Signed-off-by: Matthew Garrett
Acked-by: Zhang Rui
Acked-by: Thomas Renninger
Signed-off-by: Len Brown
07 Jan, 2009
1 commit
-
Signed-off-by: Kay Sievers
Signed-off-by: Greg Kroah-Hartman
26 Jun, 2008
1 commit
-
A bug in libsensors
Acked-by: Mark M. Hoffman
Signed-off-by: Len Brown
29 Apr, 2008
1 commit
-
thermal_sys was already the name of the resulting module,
and it is built from this one source file.Signed-off-by: Len Brown