07 Nov, 2011

1 commit


03 Aug, 2011

3 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

    Jean Delvare
     
  • 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

    Jean Delvare
     
  • It's about time to revert 16d752397301b9 ("thermal: Create
    CONFIG_THERMAL_HWMON=n"). Anybody running a kernel >= 2.6.40 would also
    be running a recent enough version of lm-sensors.

    Actually having CONFIG_THERMAL_HWMON is pretty convenient so instead of
    dropping it, we keep it but hide it.

    Signed-off-by: Jean Delvare
    Cc: Rene Herman
    Acked-by: Guenter Roeck
    Signed-off-by: Andrew Morton
    Signed-off-by: Len Brown

    Jean Delvare
     

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

    Durgadoss R
     

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

    Rafael J. Wysocki
     

12 Jan, 2011

2 commits


01 Dec, 2010

1 commit


07 Apr, 2010

1 commit


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 allmodconfig

    8. 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>

    Tejun Heo
     

17 Dec, 2009

1 commit


16 Dec, 2009

1 commit


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

    Frans Pop
     
  • 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

    Frans Pop
     
  • 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
    90000

    Signed-off-by: Frans Pop
    Acked-by: Zhang Rui
    Signed-off-by: Andrew Morton
    Signed-off-by: Len Brown

    Frans Pop
     
  • 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

    Amit Kucheria
     

19 Sep, 2009

1 commit


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

    Michael Brunner
     

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

    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_temp

    This patch changes the trigger condition back to
    temp >= trip_temp

    Signed-off-by: Vladimir Zajac
    Acked-by: Zhang Rui
    Acked-by: Matthew Garrett
    Signed-off-by: Andrew Morton
    Signed-off-by: Len Brown

    Vladimir Zajac
     

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

    Matthew Garrett
     

21 Feb, 2009

1 commit


20 Feb, 2009

1 commit


07 Jan, 2009

1 commit


26 Jun, 2008

1 commit


29 Apr, 2008

3 commits


16 Apr, 2008

1 commit

  • The THERMAL_MAX_TRIPS value is set to 10. It is too few for the Compaq AP550
    machine which has 12 trip points.

    Signed-off-by: Krzysztof Helt
    Cc: Len Brown
    Cc: Zhang Rui
    Cc: "Rafael J. Wysocki"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Krzysztof Helt
     

18 Mar, 2008

2 commits


13 Mar, 2008

1 commit


16 Feb, 2008

2 commits


08 Feb, 2008

1 commit


02 Feb, 2008

1 commit