Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp302511ybt; Fri, 19 Jun 2020 02:18:19 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy+ZQpweuTzOUcnxdje4oE+52vHm9JvPibNXRfqNIGTlnQWCtNlSH5t25vWNJJq6WwLyzQH X-Received: by 2002:a17:906:2dc7:: with SMTP id h7mr2812801eji.15.1592558299657; Fri, 19 Jun 2020 02:18:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592558299; cv=none; d=google.com; s=arc-20160816; b=ChIuMYzp1z7zUEdZnRaXXGlQ9i2jBJ2AwwcVDIbWq9pKwe++JaMAExdWRBreCqIjo1 hYt9DogML24ShJzODhT4E6CRvd381Ue2XZ7UKpyBkVfDGz0TCBsoawFaAkEiwQUF+HKu rrvkhgFzx3eJWevOQ02Y47UKK/se9HDpZNmAz02kZj0OdgEEfmBHpUdJPqkYjZ8476Xf jvt5LkQCicDpz9LSPe4dY9mWwSStBN+hvepZJAAohxapIzKHB0oAoAB2b4sBrq5X5dAE bfUutV7GL8hddlu4105LHufqDM8Q1Jbf6QX6dUFMZZbmrpCA1mmH1k8LazJSRhI/P9k7 OqtQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from; bh=hk1fJxDp6hoGHdWl9wdvrOUXRoxeuytQ+3tEXJol1k8=; b=qK5RIsjGJ8nAWXp6k1Gs9B1k+e25q5hyHn0F6GC60KZH5g2x8p4rcHd6RtmcNdnSGt LyRChJjs8flJxTin5XCHrFltAQO1gOE0B3zbzxZiilzFlx7vldOCFsGVRNPlYSvU8Qcs dueoJ0TVYNoyUVLQsTKKwXwtKI02V/85/E38fPVeGSzbhWQ3TBc5nkQNaX2PQz2fGnR3 DQNNFzPaLRed6HZS6nqDmtX8H7NorRyDzoWu9R20OY7EDRt+LhwAcqBiikTkCM9y4Yld q8X0Zpv0Zda6Y3FJ8ht8jJVmfYk5MDVdeKX9k270ehimWF/zfvPpaRSP84LSZ//ljWpd iu2g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id l11si3566893edw.591.2020.06.19.02.17.55; Fri, 19 Jun 2020 02:18:19 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728777AbgFSJQF (ORCPT + 99 others); Fri, 19 Jun 2020 05:16:05 -0400 Received: from lucky1.263xmail.com ([211.157.147.131]:43726 "EHLO lucky1.263xmail.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726878AbgFSJQE (ORCPT ); Fri, 19 Jun 2020 05:16:04 -0400 X-Greylist: delayed 411 seconds by postgrey-1.27 at vger.kernel.org; Fri, 19 Jun 2020 05:16:03 EDT Received: from localhost (unknown [192.168.167.32]) by lucky1.263xmail.com (Postfix) with ESMTP id 6D418AFDC6; Fri, 19 Jun 2020 17:09:11 +0800 (CST) X-MAIL-GRAY: 0 X-MAIL-DELIVERY: 1 X-ADDR-CHECKED4: 1 X-ANTISPAM-LEVEL: 2 X-ABS-CHECKED: 0 Received: from localhost.localdomain (unknown [58.22.7.114]) by smtp.263.net (postfix) whith ESMTP id P3326T139697392834304S1592557749877054_; Fri, 19 Jun 2020 17:09:10 +0800 (CST) X-IP-DOMAINF: 1 X-UNIQUE-TAG: <434d5cdc956ae93f131f66b7a903d7ad> X-RL-SENDER: finley.xiao@rock-chips.com X-SENDER: xf@rock-chips.com X-LOGIN-NAME: finley.xiao@rock-chips.com X-FST-TO: heiko@sntech.de X-SENDER-IP: 58.22.7.114 X-ATTACHMENT-NUM: 0 X-DNS-TYPE: 0 X-System-Flag: 0 From: Finley Xiao To: heiko@sntech.de, amit.kachhap@gmail.com, daniel.lezcano@linaro.org, viresh.kumar@linaro.org, javi.merino@kernel.org, rui.zhang@intel.com, amit.kucheria@verdurent.com Cc: linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, stable@vger.kernel.org, huangtao@rock-chips.com, tony.xie@rock-chips.com, cl@rock-chips.com, Finley Xiao Subject: [PATCH] thermal/drivers/cpufreq_cooling: Fix wrong frequency converted from power Date: Fri, 19 Jun 2020 17:08:25 +0800 Message-Id: <20200619090825.32747-1-finley.xiao@rock-chips.com> X-Mailer: git-send-email 2.11.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The function cpu_power_to_freq is used to find a frequency and set the cooling device to consume at most the power to be converted. For example, if the power to be converted is 80mW, and the em table is as follow. struct em_cap_state table[] = { /* KHz mW */ { 1008000, 36, 0 }, { 1200000, 49, 0 }, { 1296000, 59, 0 }, { 1416000, 72, 0 }, { 1512000, 86, 0 }, }; The target frequency should be 1416000KHz, not 1512000KHz. Fixes: 349d39dc5739 ("thermal: cpu_cooling: merge frequency and power tables") Cc: # v4.13+ Signed-off-by: Finley Xiao Acked-by: Viresh Kumar --- drivers/thermal/cpufreq_cooling.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/thermal/cpufreq_cooling.c b/drivers/thermal/cpufreq_cooling.c index 9e124020519f..6c0e1b053126 100644 --- a/drivers/thermal/cpufreq_cooling.c +++ b/drivers/thermal/cpufreq_cooling.c @@ -123,12 +123,12 @@ static u32 cpu_power_to_freq(struct cpufreq_cooling_device *cpufreq_cdev, { int i; - for (i = cpufreq_cdev->max_level - 1; i >= 0; i--) { - if (power > cpufreq_cdev->em->table[i].power) + for (i = cpufreq_cdev->max_level; i >= 0; i--) { + if (power >= cpufreq_cdev->em->table[i].power) break; } - return cpufreq_cdev->em->table[i + 1].frequency; + return cpufreq_cdev->em->table[i].frequency; } /** -- 2.11.0