01 Mar, 2013

1 commit

  • Pull thermal management updates from Zhang Rui:
    "Highlights:

    - introduction of Dove thermal sensor driver.

    - introduction of Kirkwood thermal sensor driver.

    - introduction of intel_powerclamp thermal cooling device driver.

    - add interrupt and DT support for rcar thermal driver.

    - add thermal emulation support which allows platform thermal driver
    to do software/hardware emulation for thermal issues."

    * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux: (36 commits)
    thermal: rcar: remove __devinitconst
    thermal: return an error on failure to register thermal class
    Thermal: rename thermal governor Kconfig option to avoid generic naming
    thermal: exynos: Use the new thermal trend type for quick cooling action.
    Thermal: exynos: Add support for temperature falling interrupt.
    Thermal: Dove: Add Themal sensor support for Dove.
    thermal: Add support for the thermal sensor on Kirkwood SoCs
    thermal: rcar: add Device Tree support
    thermal: rcar: remove machine_power_off() from rcar_thermal_notify()
    thermal: rcar: add interrupt support
    thermal: rcar: add read/write functions for common/priv data
    thermal: rcar: multi channel support
    thermal: rcar: use mutex lock instead of spin lock
    thermal: rcar: enable CPCTL to use hardware TSC deciding
    thermal: rcar: use parenthesis on macro
    Thermal: fix a build warning when CONFIG_THERMAL_EMULATION cleared
    Thermal: fix a wrong comment
    thermal: sysfs: Add a new sysfs node emul_temp for thermal emulation
    PM: intel_powerclamp: off by one in start_power_clamp()
    thermal: exynos: Miscellaneous fixes to support falling threshold interrupt
    ...

    Linus Torvalds
     

28 Feb, 2013

1 commit


06 Feb, 2013

1 commit


22 Nov, 2012

1 commit

  • There are predefined cpu_masks that are const data structures.
    This patch changes the cpu cooling register function so that
    those const cpu_masks can be used, without compilation warnings.

    include/linux/cpumask.h

    * The following particular system cpumasks and operations manage
    * possible, present, active and online cpus.
    *
    * cpu_possible_mask- has bit 'cpu' set iff cpu is populatable
    * cpu_present_mask - has bit 'cpu' set iff cpu is populated
    * cpu_online_mask - has bit 'cpu' set iff cpu available to scheduler
    * cpu_active_mask - has bit 'cpu' set iff cpu available to migration
    *

    Signed-off-by: Eduardo Valentin
    Signed-off-by: Zhang Rui

    Eduardo Valentin
     

15 Nov, 2012

1 commit


07 Nov, 2012

3 commits

  • Problem of using this list is that the cpufreq_get_max_state callback will be
    called when register cooling device by thermal_cooling_device_register, but
    this list isn't ready at this moment. What's more, there is no need to maintain
    such a list, we can get cpufreq_cooling_device instance by the private
    thermal_cooling_device.devdata.

    Signed-off-by: hongbo.zhang
    Reviewed-by: Francesco Lavra
    Reviewed-by: Amit Daniel Kachhap
    Signed-off-by: Zhang Rui

    hongbo.zhang
     
  • In the while loop for counting cpu frequencies, if table[i].frequency equals
    CPUFREQ_ENTRY_INVALID, index i won't be increased, so this leads to an endless
    loop, what's more the index i cannot be referred as cpu frequencies number if
    there is CPUFREQ_ENTRY_INVALID case.

    Signed-off-by: hongbo.zhang
    Reviewed-by: Viresh Kumar
    Reviewed-by: Amit Daniel Kachhap
    Signed-off-by: Zhang Rui

    hongbo.zhang
     
  • The curly bracket should be aligned with corresponding if else statements.

    Signed-off-by: hongbo.zhang
    Reviewed-by: Viresh Kumar
    Signed-off-by: Zhang Rui

    hongbo.zhang
     

09 Oct, 2012

1 commit


27 Sep, 2012

1 commit


24 Sep, 2012

1 commit

  • This patchset introduces a new generic cooling device based on cpufreq
    that can be used on non-ACPI platforms. As a proof of concept, we have
    drivers for the following platforms using this mechanism now:

    * Samsung Exynos (Exynos4 and Exynos5) in the current patchset.
    * Freescale i.MX (git://git.linaro.org/people/amitdanielk/linux.git imx6q_thermal)

    There is a small change in cpufreq cooling registration APIs, so a minor
    change is needed for Freescale platforms.

    Brief Description:

    1) The generic cooling devices code is placed inside driver/thermal/*
    as placing inside acpi folder will need un-necessary enabling of acpi
    code. This code is architecture independent.

    2) This patchset adds generic cpu cooling low level implementation
    through frequency clipping. In future, other cpu related cooling
    devices may be added here. An ACPI version of this already exists
    (drivers/acpi/processor_thermal.c) .But this will be useful for
    platforms like ARM using the generic thermal interface along with the
    generic cpu cooling devices. The cooling device registration API's
    return cooling device pointers which can be easily binded with the
    thermal zone trip points. The important APIs exposed are,

    a) struct thermal_cooling_device *cpufreq_cooling_register(
    struct cpumask *clip_cpus)
    b) void cpufreq_cooling_unregister(struct thermal_cooling_device *cdev)

    3) Samsung exynos platform thermal implementation is done using the
    generic cpu cooling APIs and the new trip type. The temperature sensor
    driver present in the hwmon folder(registered as hwmon driver) is moved
    to thermal folder and registered as a thermal driver.

    A simple data/control flow diagrams is shown below,

    Core Linux thermal Exynos thermal interface
    Cc: Guenter Roeck
    Cc: SangWook Ju
    Cc: Durgadoss
    Cc: Len Brown
    Cc: Jean Delvare
    Cc: Kyungmin Park
    Cc: Kukjin Kim
    Signed-off-by: Andrew Morton
    Signed-off-by: Amit Daniel Kachhap
    Signed-off-by: Zhang Rui

    Amit Daniel Kachhap