Received: by 2002:a05:6a10:9e8c:0:0:0:0 with SMTP id y12csp334741pxx; Wed, 28 Oct 2020 06:09:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxlv15DuzhBVJoIKKB4m8ZWbefzB4YuyuqxxetjbcMNTl+Kag3S9fd2Ej7XbOmWIzAZG8iA X-Received: by 2002:a1c:7515:: with SMTP id o21mr8519235wmc.5.1603890582924; Wed, 28 Oct 2020 06:09:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1603890582; cv=none; d=google.com; s=arc-20160816; b=AiZmrl+e8+FW7LBszI755+KiMBQ/5DU3UFaZqcTpPbw+wDNKSVdLn7gJLbwXoOyNJm Y0dcCr6tYufgwGgjvEV0UyMYbDgxVgAxyTpELTnXXZ/ajUMScuo17Kzi5mm34ULMEm+O sDnNIpDyaVwi4S+5zgsYOXgg3Rrz6Wvql47zTcUcOVHuwoGt2avPVwYZUxPxjO14LVuG qQIA8YVFzu2QtElDfBh9YphQbvBmZq4FS8Wq9oock0RzP3Su24fZBKoaWSB9x8TDWkry mcYwL54AKClzs1Gw3QFzcZB6CUTNK9ze6Cep9kn4hapHRuDSsBNOX6IXwIxtdz2sg2GL 6iKA== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=yO41k5AP8MQbpvxTEhMj1Lxt6F1ujWZX7PoiGVXW8y0=; b=QbU3tafmJQ1aHz5NoDePmBk4kbKcf9vnADqpDGVCuVmoNXK3v/hAFtmulI3M56onxS RR1m8n1Z25BvPywYvybBkBI7/K6sYqiw61d0HnItTg1RGtNcHqPY4T+78KlF+qkKCO2I rITfeRabvJCQa++R3sLD3+b4bWxRFE0rRFII6wCRW9TBIDUwMdtMkKk+pHNk7LVEZE23 V5MXhwy0Feikwnq95VRCAtWNwFs4QCIWz60FFZY3cbTU7HDe7NpaecVCaR1Cotl6cPEV boMVLPo1CdEjfQZazlhoIhpoooIljuP5dsQ2I0O3dR7gKMUC1yrWfCVUpo3HVyaEHkjf k34w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=fn5ZrxIB; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y9si2654785ede.591.2020.10.28.06.09.20; Wed, 28 Oct 2020 06:09:42 -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; dkim=pass header.i=@kernel.org header.s=default header.b=fn5ZrxIB; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1800119AbgJ0PfE (ORCPT + 99 others); Tue, 27 Oct 2020 11:35:04 -0400 Received: from mail.kernel.org ([198.145.29.99]:46742 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1797737AbgJ0PaF (ORCPT ); Tue, 27 Oct 2020 11:30:05 -0400 Received: from localhost (83-86-74-64.cable.dynamic.v4.ziggo.nl [83.86.74.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 52FB722264; Tue, 27 Oct 2020 15:30:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1603812604; bh=7eJIhGU+LhBF44KrW7v9gCBclDyX+xR1ykuZGzElen8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fn5ZrxIBNhLCqDKnXm2MIaoV3JhvPqeRjA8o6UKiI5BK6dzIWCNREOcfNoa4kpwE2 NR2vhYODXG+pMPJY/GwBk65KhSi92ABD4gR2FpGCSwA2Q07IREBhjTW/uphdaTZIMp N9MInOeotdgkIPJK8wq8nWaP8v73xwoGqa4oZEHw= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Matthias Kaehlcke , Viresh Kumar , Sasha Levin Subject: [PATCH 5.9 267/757] cpufreq: qcom: Dont add frequencies without an OPP Date: Tue, 27 Oct 2020 14:48:37 +0100 Message-Id: <20201027135503.097951412@linuxfoundation.org> X-Mailer: git-send-email 2.29.1 In-Reply-To: <20201027135450.497324313@linuxfoundation.org> References: <20201027135450.497324313@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Matthias Kaehlcke [ Upstream commit bc9b9c5ab9d8d16157737db539929d57562926e9 ] The driver currently adds all frequencies from the hardware LUT to the cpufreq table, regardless of whether the corresponding OPP exists. This prevents devices from disabling certain OPPs through the device tree and can result in CPU frequencies for which the interconnect bandwidth can't be adjusted. Only add frequencies with an OPP entry. Fixes: 55538fbc79e9 ("cpufreq: qcom: Read voltage LUT and populate OPP") Signed-off-by: Matthias Kaehlcke Signed-off-by: Viresh Kumar Signed-off-by: Sasha Levin --- drivers/cpufreq/qcom-cpufreq-hw.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/drivers/cpufreq/qcom-cpufreq-hw.c b/drivers/cpufreq/qcom-cpufreq-hw.c index 3fb044b907a83..47b7d394d2abb 100644 --- a/drivers/cpufreq/qcom-cpufreq-hw.c +++ b/drivers/cpufreq/qcom-cpufreq-hw.c @@ -177,10 +177,15 @@ static int qcom_cpufreq_hw_read_lut(struct device *cpu_dev, freq = cpu_hw_rate / 1000; if (freq != prev_freq && core_count != LUT_TURBO_IND) { - table[i].frequency = freq; - qcom_cpufreq_update_opp(cpu_dev, freq, volt); - dev_dbg(cpu_dev, "index=%d freq=%d, core_count %d\n", i, + if (!qcom_cpufreq_update_opp(cpu_dev, freq, volt)) { + table[i].frequency = freq; + dev_dbg(cpu_dev, "index=%d freq=%d, core_count %d\n", i, freq, core_count); + } else { + dev_warn(cpu_dev, "failed to update OPP for freq=%d\n", freq); + table[i].frequency = CPUFREQ_ENTRY_INVALID; + } + } else if (core_count == LUT_TURBO_IND) { table[i].frequency = CPUFREQ_ENTRY_INVALID; } @@ -197,9 +202,13 @@ static int qcom_cpufreq_hw_read_lut(struct device *cpu_dev, * as the boost frequency */ if (prev->frequency == CPUFREQ_ENTRY_INVALID) { - prev->frequency = prev_freq; - prev->flags = CPUFREQ_BOOST_FREQ; - qcom_cpufreq_update_opp(cpu_dev, prev_freq, volt); + if (!qcom_cpufreq_update_opp(cpu_dev, prev_freq, volt)) { + prev->frequency = prev_freq; + prev->flags = CPUFREQ_BOOST_FREQ; + } else { + dev_warn(cpu_dev, "failed to update OPP for freq=%d\n", + freq); + } } break; -- 2.25.1