14 Sep, 2015

1 commit


21 Dec, 2014

1 commit


12 Dec, 2014

1 commit


09 Dec, 2014

2 commits

  • cpufreq_cooling_register() expects mask of all the CPUs where frequency
    constraint is applicable.

    This platform has more than one CPU to which these constraints will apply and so
    passing mask of only CPU0 wouldn't be sufficient. Also, this platform has a
    single cluster of CPUs and the constraint applies to all CPUs.

    If CPU0 is hoplugged out then we may face strange BUGs as cpu_cooling framework
    isn't aware of any siblings sharing clock line.

    Fix it by passing cpu_present_mask to cpufreq_cooling_register().

    Cc: Hongbo Zhang
    Cc: Linus Walleij
    Signed-off-by: Viresh Kumar
    Signed-off-by: Eduardo Valentin

    Viresh Kumar
     
  • 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
    Cc: Kukjin Kim
    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
    Cc: Rob Herring
    Cc: Zhang Rui
    Acked-by: Viresh Kumar
    Signed-off-by: Viresh Kumar
    Signed-off-by: Eduardo Valentin

    Eduardo Valentin
     

20 Oct, 2014

1 commit


27 Apr, 2013

1 commit

  • This patch changes the driver to avoid the usage of IS_ERR_OR_NULL()
    macro. This macro can lead to dangerous results, like returning
    success (0) during a failure scenario (NULL pointer handling).

    The case present in this driver can be translated to a simple
    check for IS_ERR(), as the cpufreq_cooling_register() returns
    either a valid pointer or an ERR_PTR().

    Cc: Zhang Rui
    Cc: Russell King
    Cc: Grant Likely
    Cc: Rob Herring
    Cc: Hongbo Zhang
    Cc: linux-pm@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: devicetree-discuss@lists.ozlabs.org
    Signed-off-by: Eduardo Valentin
    Acked-by: Fabio Baltieri
    Signed-off-by: Zhang Rui

    Eduardo Valentin
     

04 Jan, 2013

1 commit


15 Nov, 2012

1 commit

  • This driver is based on the thermal management framework in thermal_sys.c. A
    thermal zone device is created with the trip points to which cooling devices
    can be bound, the current cooling device is cpufreq, e.g. CPU frequency is
    clipped down to cool the CPU, and other cooling devices can be added and bound
    to the trip points dynamically. The platform specific PRCMU interrupts are
    used to active thermal update when trip points are reached.

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

    hongbo.zhang