Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp3352148pxb; Mon, 9 Nov 2020 08:59:58 -0800 (PST) X-Google-Smtp-Source: ABdhPJx1bsAGdsQqrkVPR2glk3VOuDlPO/Mgo3KnmIE9ZqnPed+k9gL1DplUmvqcI3D4Kb/qsTNB X-Received: by 2002:a17:906:748b:: with SMTP id e11mr15345789ejl.513.1604941198702; Mon, 09 Nov 2020 08:59:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1604941198; cv=none; d=google.com; s=arc-20160816; b=I+Zw54FLOROO4JmMEkOFmlU/qj4r5JCj5RXZLiovo9ovVC1xq2dqN690GAIq8zpNkE V3ZQZozcvIR3pCDNh6a0qpLx3Hna1jBEFWjAF6H78p3Z+K2i55m8TJYax2K9nJBj2KhD Rf7asys4Iv2smYRyNTiBscO7uBAFlgjQIrNt7C8ooPLy0m93P9ocGVCpzZOImK/aLcQE NesZ+WoCkrnVZOagyE/iMvLYz4Zn3OSgbmpuabSNp42me1wNBrklDATtd8yZnteT90+8 cMqGaFoKAfi7dFv7BS5UEVdN308QDJ+6z92vw56SY02c6wzAupPbjKfd8ITh9pzPG+CC /TqA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=jOyPuvIcOr1jS00jLWv1lAoKplj5gI4fMJSb1UybR+4=; b=HvtcECC1q8JWVW6LnHIOhzaf0KrJa5gr+/wPwiZpn3430eaI5lIlWWwC46r0U2rhdS pKY/fo8Daxv45GEL/NPCQeSVoFR/QhHIzTXbExJdpO1lMb7JiFLOvp1bLMra0Ht7KoSM QE/YLqMbm1/FyQTm8qU3LGnPt+2yZspD6mgt2o+V//DsYWh159cXWSqwtN0JxOXtqqZF 8D5055cBrJOOC8KuTZsiyTbzsOQZ3/CoHx1UvHdCqIIv7Z6EpT2065tb/jqi4vG0pIUy /0QTIIl0fJLdRXo3xgkSGfrHT0jpGo5UmpQA0muCV7o0ZBX0Suyc8XxYjil+klPRYUnj OoZQ== 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 o10si7431065edf.226.2020.11.09.08.59.35; Mon, 09 Nov 2020 08:59:58 -0800 (PST) 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 S1731161AbgKIQ5Z (ORCPT + 99 others); Mon, 9 Nov 2020 11:57:25 -0500 Received: from cloudserver094114.home.pl ([79.96.170.134]:54474 "EHLO cloudserver094114.home.pl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730659AbgKIQ5I (ORCPT ); Mon, 9 Nov 2020 11:57:08 -0500 Received: from 89-64-87-89.dynamic.chello.pl (89.64.87.89) (HELO kreacher.localnet) by serwer1319399.home.pl (79.96.170.134) with SMTP (IdeaSmtpServer 0.83.520) id 66d88ba8e54cb002; Mon, 9 Nov 2020 17:57:06 +0100 From: "Rafael J. Wysocki" To: Linux PM Cc: "Rafael J. Wysocki" , Viresh Kumar , Srinivas Pandruvada , Zhang Rui , LKML , Doug Smythies Subject: [PATCH v2 2/4] cpufreq: Introduce CPUFREQ_GOV_FLAG_STRICT_TARGET Date: Mon, 09 Nov 2020 17:52:46 +0100 Message-ID: <1691551.0Fp6MP5ZGR@kreacher> In-Reply-To: <13269660.K2JYd4sGFX@kreacher> References: <13269660.K2JYd4sGFX@kreacher> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Rafael J. Wysocki Introduce a new governor flag, CPUFREQ_GOV_FLAG_STRICT_TARGET, for the govenors that want the target frequency to be set exactly to the given value without leaving any room for adjustments on the hardware side and set this flag for the powersave and performance governors. Signed-off-by: Rafael J. Wysocki --- drivers/cpufreq/cpufreq_performance.c | 1 + drivers/cpufreq/cpufreq_powersave.c | 1 + include/linux/cpufreq.h | 3 +++ 3 files changed, 5 insertions(+) Index: linux-pm/drivers/cpufreq/cpufreq_performance.c =================================================================== --- linux-pm.orig/drivers/cpufreq/cpufreq_performance.c +++ linux-pm/drivers/cpufreq/cpufreq_performance.c @@ -20,6 +20,7 @@ static void cpufreq_gov_performance_limi static struct cpufreq_governor cpufreq_gov_performance = { .name = "performance", .owner = THIS_MODULE, + .flags = CPUFREQ_GOV_FLAG_STRICT_TARGET, .limits = cpufreq_gov_performance_limits, }; Index: linux-pm/drivers/cpufreq/cpufreq_powersave.c =================================================================== --- linux-pm.orig/drivers/cpufreq/cpufreq_powersave.c +++ linux-pm/drivers/cpufreq/cpufreq_powersave.c @@ -21,6 +21,7 @@ static struct cpufreq_governor cpufreq_g .name = "powersave", .limits = cpufreq_gov_powersave_limits, .owner = THIS_MODULE, + .flags = CPUFREQ_GOV_FLAG_STRICT_TARGET, }; MODULE_AUTHOR("Dominik Brodowski "); Index: linux-pm/include/linux/cpufreq.h =================================================================== --- linux-pm.orig/include/linux/cpufreq.h +++ linux-pm/include/linux/cpufreq.h @@ -575,6 +575,9 @@ struct cpufreq_governor { /* For governors which change frequency dynamically by themselves */ #define CPUFREQ_GOV_FLAG_DYN_SWITCH BIT(0) +/* For governors wanting the target frequency to be set exactly */ +#define CPUFREQ_GOV_FLAG_STRICT_TARGET BIT(1) + /* Pass a target to the cpufreq driver */ unsigned int cpufreq_driver_fast_switch(struct cpufreq_policy *policy,