From patchwork Mon Jun 17 13:24:25 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhang Rui X-Patchwork-Id: 2733391 X-Patchwork-Delegate: rui.zhang@intel.com Return-Path: X-Original-To: patchwork-linux-pm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 97959C0AB1 for ; Mon, 17 Jun 2013 13:25:08 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 8DD4E20334 for ; Mon, 17 Jun 2013 13:25:07 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id BFA9520335 for ; Mon, 17 Jun 2013 13:25:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932515Ab3FQNYv (ORCPT ); Mon, 17 Jun 2013 09:24:51 -0400 Received: from mga11.intel.com ([192.55.52.93]:50832 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932357Ab3FQNYu (ORCPT ); Mon, 17 Jun 2013 09:24:50 -0400 Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga102.fm.intel.com with ESMTP; 17 Jun 2013 06:25:44 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.87,881,1363158000"; d="scan'208";a="354717362" Received: from unknown (HELO rzhang1-mobl4.ccr.corp.intel.com) ([10.255.20.69]) by fmsmga002.fm.intel.com with ESMTP; 17 Jun 2013 06:24:45 -0700 From: Zhang Rui To: linux-pm@vger.kernel.org Cc: eduardo.valentin@ti.com, durgadoss.r@intel.com, shawn.guo@linaro.org, ruslan.ruslichenko@ti.com, Zhang Rui Subject: [RFC PATCH 3/6] Thermal: fix step_wise handling of THERMAL_TREND_DROPPING Date: Mon, 17 Jun 2013 21:24:25 +0800 Message-Id: <1371475468-5351-4-git-send-email-rui.zhang@intel.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1371475468-5351-1-git-send-email-rui.zhang@intel.com> References: <1371475468-5351-1-git-send-email-rui.zhang@intel.com> Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org X-Spam-Status: No, score=-8.0 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Fixes two problems in the THERMAL_TREND_DROPPING handling code in step_wise governor. 1. When the temperature is higher than the trip point, we should not deactivate the thermal instance. 2. When the temperature is lower than the trip point, we should not activate the thermal instance. Also rephrase the code a bit to make it more readable. Signed-off-by: Zhang Rui --- drivers/thermal/step_wise.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/drivers/thermal/step_wise.c b/drivers/thermal/step_wise.c index d89e781..f0cc5e5 100644 --- a/drivers/thermal/step_wise.c +++ b/drivers/thermal/step_wise.c @@ -75,13 +75,19 @@ static unsigned long get_target_state(struct thermal_instance *instance, next_target = instance->upper; break; case THERMAL_TREND_DROPPING: - if (cur_state == instance->lower) { - if (!throttle) - next_target = THERMAL_NO_TARGET; + if (throttle) { + if (cur_state <= instance->lower) + next_target = instance->lower; + else + next_target = cur_state > instance->upper ? + instance->upper : cur_state - 1; } else { - next_target = cur_state - 1; - if (next_target > instance->upper) - next_target = instance->upper; + if (cur_state <= instance->lower || + instance->target == THERMAL_NO_TARGET) + next_target = THERMAL_NO_TARGET; + else + next_target = cur_state > instance->upper ? + instance->upper : cur_state - 1; } break; case THERMAL_TREND_DROP_FULL: