From patchwork Tue Sep 12 09:40:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephan Gerhold X-Patchwork-Id: 138377 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9ecd:0:b0:3f2:4152:657d with SMTP id t13csp611629vqx; Tue, 12 Sep 2023 11:49:22 -0700 (PDT) X-Google-Smtp-Source: AGHT+IF1c/8rLjoHceC5Fsj//fZIKTw9o94XDul49JWntwoZ+EcdAsEY84SCUyYMwRyhLv8/e75a X-Received: by 2002:a05:6a00:1492:b0:68f:caf8:cb83 with SMTP id v18-20020a056a00149200b0068fcaf8cb83mr677713pfu.17.1694544562264; Tue, 12 Sep 2023 11:49:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694544562; cv=none; d=google.com; s=arc-20160816; b=Hv/QSu1cpE0U6sXKRuVr0yUs882fYJA6lUi6MLDxAEaYr7Gq043kdBJlx2YITMWyJw e+7iz31nW4XiUmMJKlrwmqcPAGSSPO9vY+G1ZF6bNj8ZCQYXPiUkp1ffR44h0CwWXBUQ ZcNdNpYcKq0n9iJFAOYcxIyXxXjXfort3+M0HC9rUP/56CMFZ9oyFKxtTjMuX+LHEq2h /sO8yB3Pn73LBPkQFZMg9jJE0M9NEPeylRj+tDgY+p8hSg/i5VoVHhzy/5RczazzYScS 7NRcxDYYrVrLrbJErn94P6gcf7EI8Yp48L6BS+k6uY6a883emUvRMPYrnYvPpaV30NLK 0Z+A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=atVlEBB4YMZABXH4SWOY4OFQPXFW6vNTHPIocXGctJs=; fh=6dWPOgLc94d6Vbu+0sy5egZNGUkJgOuUvx9BC4aRyvI=; b=Ml+XuFaN5JhQVMDiTlxcsJw9DJD2/t4ag7BLqMDb/eftPM0qmKYqUKqa1mF9Ouo5hm xAmlQbAb9q55pwHwwbKpWRqFm7lRxSNOaUBtT06Ucq04TA2YKJTAhOzCW/e0LtqFH5K7 9Y38CvT/oc9LnWq6BCkegHUbNyO2PdKcjMc7cF9dTE77XfEguEx7krXrnaQkwSiq9Iae hNT/P6N+glqRrN5yJJdozqj6F/VFIUnof85kT2bX2cmcEklfSf1+zE4U36wjAiLtpLTy LROBQ3MXWgk5jRws0CdT0FV1Pfd5OUFbB2ciOzsjEPSGAGCA4+QuSjY5un6mrzYiALyt Rqdw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernkonzept.com header.s=mx1 header.b=GBXLRQKs; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernkonzept.com Received: from agentk.vger.email (agentk.vger.email. [2620:137:e000::3:2]) by mx.google.com with ESMTPS id ay42-20020a056a00302a00b0068a3a2984ccsi3849087pfb.236.2023.09.12.11.49.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Sep 2023 11:49:22 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) client-ip=2620:137:e000::3:2; Authentication-Results: mx.google.com; dkim=pass header.i=@kernkonzept.com header.s=mx1 header.b=GBXLRQKs; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernkonzept.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by agentk.vger.email (Postfix) with ESMTP id 6AFBA8033DC9; Tue, 12 Sep 2023 03:00:49 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at agentk.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233665AbjILKAb (ORCPT + 37 others); Tue, 12 Sep 2023 06:00:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35920 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233538AbjILKAT (ORCPT ); Tue, 12 Sep 2023 06:00:19 -0400 Received: from mx.kernkonzept.com (serv1.kernkonzept.com [IPv6:2a01:4f8:1c1c:b490::2]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 544F61BB; Tue, 12 Sep 2023 03:00:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=kernkonzept.com; s=mx1; h=Cc:To:In-Reply-To:References:Message-Id: Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From: Reply-To:Content-ID:Content-Description; bh=atVlEBB4YMZABXH4SWOY4OFQPXFW6vNTHPIocXGctJs=; b=GBXLRQKsy0kqC1hGKFV9w8TpKE KuakT0tdPMcVGhJZO4zcgucH7f9F3mwE6+kWPFGeux2al94LSQ8zCGjY0INTR0UdY6d0ZupJ+cLLD v1l/3Tje+cC8fP5UExUvTERFP26gAbJT5eJ0qeA9ofEVQqU3dSnzGOQsgXp99xU4Q1fuESB/rvOgw DXBvvmdyEmqbTSJ/vl7BDGvQYigxU6JUfMbI0d5/046342b5ataMVmj6AvspYt52mNjK7WTJjCYNZ cGHWD8pz6u44i1uLfqGrlsj6QMBXBnxFRZcF8BfVnxxT1GSfIHcAOJ1wlfNgMIAf11Bmw9btKwm3V ke/pPqcg==; Received: from [10.22.3.24] (helo=serv1.dd1.int.kernkonzept.com) by mx.kernkonzept.com with esmtpsa (TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim 4.96) id 1qfzsl-0030Ws-0N; Tue, 12 Sep 2023 11:40:31 +0200 From: Stephan Gerhold Date: Tue, 12 Sep 2023 11:40:15 +0200 Subject: [PATCH 1/4] cpufreq: qcom-nvmem: Enable virtual power domain devices MIME-Version: 1.0 Message-Id: <20230912-msm8909-cpufreq-v1-1-767ce66b544b@kernkonzept.com> References: <20230912-msm8909-cpufreq-v1-0-767ce66b544b@kernkonzept.com> In-Reply-To: <20230912-msm8909-cpufreq-v1-0-767ce66b544b@kernkonzept.com> To: Viresh Kumar Cc: Andy Gross , Bjorn Andersson , Konrad Dybcio , Ilia Lin , "Rafael J. Wysocki" , Rob Herring , Krzysztof Kozlowski , Conor Dooley , linux-pm@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Ulf Hansson , Stephan Gerhold , stable@vger.kernel.org X-Mailer: b4 0.12.3 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (agentk.vger.email [0.0.0.0]); Tue, 12 Sep 2023 03:00:49 -0700 (PDT) X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on agentk.vger.email X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1776858759262337760 X-GMAIL-MSGID: 1776858759262337760 The genpd core ignores performance state votes from devices that are runtime suspended as of commit 5937c3ce2122 ("PM: domains: Drop/restore performance state votes for devices at runtime PM"). However, at the moment nothing ever enables the virtual devices created in qcom-cpufreq-nvmem for the cpufreq power domain scaling, so they are permanently runtime-suspended. Fix this by enabling the devices after attaching them and use dev_pm_syscore_device() to ensure the power domain also stays on when going to suspend. Since it supplies the CPU we can never turn it off from Linux. There are other mechanisms to turn it off when needed, usually in the RPM firmware or the cpuidle path. Without this fix performance states votes are silently ignored, and the CPU/CPR voltage is never adjusted. This has been broken since 5.14 but for some reason no one noticed this on QCS404 so far. Cc: stable@vger.kernel.org Fixes: 1cb8339ca225 ("cpufreq: qcom: Add support for qcs404 on nvmem driver") Signed-off-by: Stephan Gerhold --- drivers/cpufreq/qcom-cpufreq-nvmem.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/drivers/cpufreq/qcom-cpufreq-nvmem.c b/drivers/cpufreq/qcom-cpufreq-nvmem.c index 84d7033e5efe..17d6ab14c909 100644 --- a/drivers/cpufreq/qcom-cpufreq-nvmem.c +++ b/drivers/cpufreq/qcom-cpufreq-nvmem.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include @@ -280,6 +281,7 @@ static int qcom_cpufreq_probe(struct platform_device *pdev) } for_each_possible_cpu(cpu) { + struct device **virt_devs = NULL; struct dev_pm_opp_config config = { .supported_hw = NULL, }; @@ -300,7 +302,7 @@ static int qcom_cpufreq_probe(struct platform_device *pdev) if (drv->data->genpd_names) { config.genpd_names = drv->data->genpd_names; - config.virt_devs = NULL; + config.virt_devs = &virt_devs; } if (config.supported_hw || config.genpd_names) { @@ -311,6 +313,23 @@ static int qcom_cpufreq_probe(struct platform_device *pdev) goto free_opp; } } + + if (virt_devs) { + const char * const *name = config.genpd_names; + int i; + + for (i = 0; *name; i++, name++) { + ret = pm_runtime_resume_and_get(virt_devs[i]); + if (ret) { + dev_err(cpu_dev, "failed to resume %s: %d\n", + *name, ret); + goto free_opp; + } + + /* Keep CPU power domain always-on */ + dev_pm_syscore_device(virt_devs[i], true); + } + } } cpufreq_dt_pdev = platform_device_register_simple("cpufreq-dt", -1, From patchwork Tue Sep 12 09:40:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephan Gerhold X-Patchwork-Id: 138164 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9ecd:0:b0:3f2:4152:657d with SMTP id t13csp384664vqx; Tue, 12 Sep 2023 05:56:57 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFszVNSL0CCybsHJEPkqDFYW8+fs9II6u0WqT7ZPrckUIBenh/zQ41u3GMYdPZXVmt84sAk X-Received: by 2002:a17:90a:5987:b0:269:c7d:aac5 with SMTP id l7-20020a17090a598700b002690c7daac5mr9939152pji.3.1694523417313; Tue, 12 Sep 2023 05:56:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694523417; cv=none; d=google.com; s=arc-20160816; b=dmOTjXshnFQiQ9bTIbilBWrfC7d0FTGtmBy8ezQslt5NrXjEBcM4FS9M8Wo5WDUUjR IxbnO7eqJCBHV4RsFUdYJpk9HcqyfIbJkHHpeazOgCCkpRZf3UNV6nGxv8RpfYzBJYLz 3DiR7rICO+MfdN1lU0dLDz8/vKKssZeND0HyI872mVX9UZgZT1wRVOvaOE68UiCCpF/a EOKApG2/QoAveKBAaYUcf7FU/dFmdu9D26khvjyAzG1mu0yUtDMSFVYkiMzYtPzwH01N VCGBOqZ9nAPUPa/GNfxUTW+mUR+7GwNkB2c/OsaSdaC3lvKCFfBJIvIvqjIf9ex86Ip4 EXEA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=nkBWy5eh+OpkWLvtd2NRIsXU76BxvUy48xcA0SXZihQ=; fh=hLbSiCPMRPlDJyfG7OKhxX7hqn01XgBFPDvNszHhiRY=; b=ztaMk9EJDOwtgMF97o1WFZTKnrE0RoPjXBYmyqxQ90Bal/HyewC6b/pi4fI0/J7kj/ Cdz5TefKoiCRk4uYZkMjVVPTASdL0/cGHBeYVlRXOuyGbV+j26/JYEvK2lPEvCat9dNM /U1e3OJZwtaFzB7gawCWAZYGlwEQ55o4wicC/syiHD+oMVzgKgYg809jIgWdJK6Q6Ed/ 63pwnEaDIvNJbUHoWROjcDI748xF2ZIA4fTbCbN/QKxDz+EnDFoMz8HrUHiX9vSb3zWo 96cv3JVZsLFVYMC4gOspkw/90bGK+0i7eExTXsoXi+wUQ4Wg76dzBibSwfb+Q0C6yfwF 0UhQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernkonzept.com header.s=mx1 header.b=aWvmLD57; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernkonzept.com Received: from lipwig.vger.email (lipwig.vger.email. [2620:137:e000::3:3]) by mx.google.com with ESMTPS id lp6-20020a17090b4a8600b00262f0035181si9891696pjb.26.2023.09.12.05.56.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Sep 2023 05:56:57 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) client-ip=2620:137:e000::3:3; Authentication-Results: mx.google.com; dkim=pass header.i=@kernkonzept.com header.s=mx1 header.b=aWvmLD57; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernkonzept.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by lipwig.vger.email (Postfix) with ESMTP id 958118380FFD; Tue, 12 Sep 2023 03:00:38 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233345AbjILKAH (ORCPT + 37 others); Tue, 12 Sep 2023 06:00:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49588 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233331AbjILKAE (ORCPT ); Tue, 12 Sep 2023 06:00:04 -0400 X-Greylist: delayed 1164 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Tue, 12 Sep 2023 02:59:58 PDT Received: from mx.kernkonzept.com (serv1.kernkonzept.com [IPv6:2a01:4f8:1c1c:b490::2]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C9B551BB; Tue, 12 Sep 2023 02:59:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=kernkonzept.com; s=mx1; h=Cc:To:In-Reply-To:References:Message-Id: Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From: Reply-To:Content-ID:Content-Description; bh=nkBWy5eh+OpkWLvtd2NRIsXU76BxvUy48xcA0SXZihQ=; b=aWvmLD578BWL4/ssI24eDGqN6A eJZjKrhC7SpaM+8Xy8kctMd3vPSeFX2s1C90uO6Wewq6nBVqivSyl4oETjp0StW0ZKmNOnnaHsugY DH6ltOSLubsjLo2WvPOKDBJfZKpkGGt8rjebfx5HyHDRSRHnj+Y6pegK/M+KbgLeN0r4V+UUjYiA2 rWmEILGxApKY8O+eVVN5ZRI+bulnp5gChDVWB+HIhOLMW84Gq2SRvPjpgYL+P5LrOarju6RcbN9ph G2TGnqKGyM+hnlDIKw7S7aL8eiDC8OMewZwtbxH6ioQaUW2ctOGCDkFE83bjFr/BMPWVslbZrN/eK g424WXbw==; Received: from [10.22.3.24] (helo=serv1.dd1.int.kernkonzept.com) by mx.kernkonzept.com with esmtpsa (TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim 4.96) id 1qfzsn-0030Ws-0S; Tue, 12 Sep 2023 11:40:33 +0200 From: Stephan Gerhold Date: Tue, 12 Sep 2023 11:40:16 +0200 Subject: [PATCH 2/4] cpufreq: dt: platdev: Add MSM8909 to blocklist MIME-Version: 1.0 Message-Id: <20230912-msm8909-cpufreq-v1-2-767ce66b544b@kernkonzept.com> References: <20230912-msm8909-cpufreq-v1-0-767ce66b544b@kernkonzept.com> In-Reply-To: <20230912-msm8909-cpufreq-v1-0-767ce66b544b@kernkonzept.com> To: Viresh Kumar Cc: Andy Gross , Bjorn Andersson , Konrad Dybcio , Ilia Lin , "Rafael J. Wysocki" , Rob Herring , Krzysztof Kozlowski , Conor Dooley , linux-pm@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Ulf Hansson , Stephan Gerhold X-Mailer: b4 0.12.3 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (lipwig.vger.email [0.0.0.0]); Tue, 12 Sep 2023 03:00:38 -0700 (PDT) X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lipwig.vger.email X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1776836587017472994 X-GMAIL-MSGID: 1776836587017472994 MSM8909 uses qcom-cpufreq-nvmem to attach power domains and to parse the speedbin from NVMEM (for opp-supported-hw). Signed-off-by: Stephan Gerhold Reviewed-by: Konrad Dybcio --- drivers/cpufreq/cpufreq-dt-platdev.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/cpufreq/cpufreq-dt-platdev.c b/drivers/cpufreq/cpufreq-dt-platdev.c index fb2875ce1fdd..984d2ad1a474 100644 --- a/drivers/cpufreq/cpufreq-dt-platdev.c +++ b/drivers/cpufreq/cpufreq-dt-platdev.c @@ -141,6 +141,7 @@ static const struct of_device_id blocklist[] __initconst = { { .compatible = "nvidia,tegra210", }, { .compatible = "nvidia,tegra234", }, + { .compatible = "qcom,msm8909", }, { .compatible = "qcom,apq8096", }, { .compatible = "qcom,msm8996", }, { .compatible = "qcom,msm8998", }, From patchwork Tue Sep 12 09:40:17 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephan Gerhold X-Patchwork-Id: 138116 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9ecd:0:b0:3f2:4152:657d with SMTP id t13csp345712vqx; Tue, 12 Sep 2023 04:47:29 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEpsSyFRu+Fq1JNnswDaC1J8oL/1cpGOxkLCZfWTtEvgheqjlbeMHLA6KSnT2kQdHdga2kc X-Received: by 2002:a05:6a00:4694:b0:68f:dfda:1814 with SMTP id de20-20020a056a00469400b0068fdfda1814mr2455964pfb.18.1694519249486; Tue, 12 Sep 2023 04:47:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694519249; cv=none; d=google.com; s=arc-20160816; b=isUR4UERcDecEHehklHY9gUp4dRZT8fs+lNmDryEjUrmJFhq8eqeL2xXDmOuHfkJTt TiUcXTGX5ju7Q7itlbNNXBJOzEkFVC58yhYo0Q1hPElx9a61BvhFWnBY/i93n3ioWz7O LDDB/eflV9XqH0AZlKctweXAmdCdnZWqwfXoTvpCv9UBn84J3a8K2aZCpMsKiuJeJeV6 jcpON1OKrSe+lRaejvumWC/XZVpeQZqvG/7xnb8pOrAcPf/nbho8Q39bpTkipR7aC5r0 01f2Ogc62dPhGiYYDzvN7icdv5rzV7kkBAqdMvA1M4TjLtVxwm9OuAAFO5Fi9F1dJNDV AzpA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=kP4dqT07qSwPxY6iatQf4nzJ14CfYPt8epUu4xmkyS0=; fh=hLbSiCPMRPlDJyfG7OKhxX7hqn01XgBFPDvNszHhiRY=; b=DTez+tWz0p2tIpmUkuTt7OJMjia2FAjD5rVxMsI1uyne64Kq62YgfX9sVc+mJfBDGD 7WNHVxkVHCemwsvjFCrJl7g3QmHH//JSa3ZnZ1cUsQD9Ut1OjgQ9jqWltaLW4E7Kavmc HdupjibfAdaPwKZ/RDtMzTEeXpFD7bnVBsYu05FDQ/IVu4Nf3fVCPTe+vzQwNs+jBoGe 04jsG7D6gW9WYY8p2RzfB8qYU3hmY7ttVjTwIbE6ASqOwYsoEwRgY1UygBkgx0HHngZe cgARjvj/rcuhM99Tdx7JF6NiwqQBULm9WXrjjbN4oyv8zQG12F5mTZOCn85OZwjo9Joh Vt/Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernkonzept.com header.s=mx1 header.b=RCEM8skx; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernkonzept.com Received: from howler.vger.email (howler.vger.email. [23.128.96.34]) by mx.google.com with ESMTPS id h63-20020a638342000000b005775fe230cesi3291550pge.386.2023.09.12.04.47.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Sep 2023 04:47:29 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) client-ip=23.128.96.34; Authentication-Results: mx.google.com; dkim=pass header.i=@kernkonzept.com header.s=mx1 header.b=RCEM8skx; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernkonzept.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id D1056850FAE3; Tue, 12 Sep 2023 03:00:23 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233499AbjILKAU (ORCPT + 37 others); Tue, 12 Sep 2023 06:00:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48990 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233390AbjILKAP (ORCPT ); Tue, 12 Sep 2023 06:00:15 -0400 Received: from mx.kernkonzept.com (serv1.kernkonzept.com [IPv6:2a01:4f8:1c1c:b490::2]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F03CA1BB; Tue, 12 Sep 2023 03:00:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=kernkonzept.com; s=mx1; h=Cc:To:In-Reply-To:References:Message-Id: Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From: Reply-To:Content-ID:Content-Description; bh=kP4dqT07qSwPxY6iatQf4nzJ14CfYPt8epUu4xmkyS0=; b=RCEM8skxSiDKiA7WjvDFhfVFYR HWy/XSdRzWKPeviAnX9rwJoXquVOyUNny8ch7oLYIg7oovORreTTaRMWyiMplREXzaMQfw594sMkm m3qq9A4wmiR+GrHsy+mXVYCe9rtUclCSqcl9Umf/8tBHQgJBG8YRAjjqcUgQyNpAc4aI875sPSxCn MfpNOVkU004ItL50KSru24X51j/9/gASgfmEhs4+4spbu6JFF6QE9d+F4fSHB/nKWOa0mMIVL3nng VJX7AJaqdTErRLXIvdUCwGDskoZQtj80sxmZjr9tExWyUia7z1k5wGh59PyDASoeBDvSHzhmCUlBX Dbn9XAlQ==; Received: from [10.22.3.24] (helo=serv1.dd1.int.kernkonzept.com) by mx.kernkonzept.com with esmtpsa (TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim 4.96) id 1qfzsp-0030Ws-0b; Tue, 12 Sep 2023 11:40:35 +0200 From: Stephan Gerhold Date: Tue, 12 Sep 2023 11:40:17 +0200 Subject: [PATCH 3/4] dt-bindings: cpufreq: qcom-nvmem: Document MSM8909 MIME-Version: 1.0 Message-Id: <20230912-msm8909-cpufreq-v1-3-767ce66b544b@kernkonzept.com> References: <20230912-msm8909-cpufreq-v1-0-767ce66b544b@kernkonzept.com> In-Reply-To: <20230912-msm8909-cpufreq-v1-0-767ce66b544b@kernkonzept.com> To: Viresh Kumar Cc: Andy Gross , Bjorn Andersson , Konrad Dybcio , Ilia Lin , "Rafael J. Wysocki" , Rob Herring , Krzysztof Kozlowski , Conor Dooley , linux-pm@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Ulf Hansson , Stephan Gerhold X-Mailer: b4 0.12.3 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (howler.vger.email [0.0.0.0]); Tue, 12 Sep 2023 03:00:23 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1776832216962279074 X-GMAIL-MSGID: 1776832216962279074 Document that MSM8909 is used with qcom-cpufreq-nvmem for voltage scaling and to restrict the maximum frequency based on the speedbin encoded in the nvmem cells. Signed-off-by: Stephan Gerhold Acked-by: Rob Herring --- Documentation/devicetree/bindings/cpufreq/qcom-cpufreq-nvmem.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/cpufreq/qcom-cpufreq-nvmem.yaml b/Documentation/devicetree/bindings/cpufreq/qcom-cpufreq-nvmem.yaml index 7e1bb992ce90..09315a1d8fc1 100644 --- a/Documentation/devicetree/bindings/cpufreq/qcom-cpufreq-nvmem.yaml +++ b/Documentation/devicetree/bindings/cpufreq/qcom-cpufreq-nvmem.yaml @@ -29,6 +29,7 @@ select: - qcom,apq8096 - qcom,ipq8064 - qcom,ipq8074 + - qcom,msm8909 - qcom,msm8939 - qcom,msm8960 - qcom,msm8974 From patchwork Tue Sep 12 09:40:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephan Gerhold X-Patchwork-Id: 138174 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9ecd:0:b0:3f2:4152:657d with SMTP id t13csp398988vqx; Tue, 12 Sep 2023 06:15:41 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE+pJiveMZpsCFZ42c0kOkI4t4WIrQrll8R0j8VGC7VTqD7XRnX3eE4yBPd60sz/S7xWTsc X-Received: by 2002:a05:6a21:99a9:b0:14c:a53c:498e with SMTP id ve41-20020a056a2199a900b0014ca53c498emr12689389pzb.42.1694524541020; Tue, 12 Sep 2023 06:15:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694524541; cv=none; d=google.com; s=arc-20160816; b=nXMPpE219RgcV80NKw/PrnIogjH7ai1Y1hvQveA9RJGrq7CRjdnNkNwc0IqssTAUHg AbYXyLexYmKsZd3yKne74oHcSZMG6RsyKehFTdhGDmI2+9WoaLdol8oHeHch29n5cOp7 djeL1kUlj7LlRbixDuTnQKcRdfEyEKi4WCMkp2Bb+19Np2Aa+hs7ww8BQsLFGOok+uX5 X5ZiNhWf23zfXvskqPYM5gGlH75KURuCvEasnW5vdRWVLiicfV/2zEKB1DlxFISQaZQr TxX2ofM5Vgy7RNNcWJ5HlURHRva81hcEN2PRSgsZakk3lQxc/hfpB/o/03EqYa1cWLvd JU1A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=BxXw2lPBlPXmQ8F4w0fefRPMnE8WnMJ9NcWQp72L7OE=; fh=hLbSiCPMRPlDJyfG7OKhxX7hqn01XgBFPDvNszHhiRY=; b=P8fOZVpBIui35nnjbZGqEW+PRSdFajdFgZ5OZCISJUlOXNKRPqIbmB3QW4GwBt4kKw GIVPMIKLLypg9MIfdTQIycleOFLoazaX4lHfYJC0I4oKossDWXZP6GWYeu2No4PwQosQ Sz0Os+Y/QCDJQ1nka1v2wqPt95dU+OIRTIbxZXIETMnL+cIdCt5dGC+fkhnDCdZDcxq2 Cr8/pRP4uWUhvyJMVTu7nLIinfiQ0SPbrQoYlfLgJsZN6qa0Kj2K/nIsYdksaqmHPyw9 MdbfpLQ22CzGDO2vBfsTR6aV2FEXWXXQqko50pDoDhmrfS0QeWwFMJ6HPyThodwlFFDY 2hHQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernkonzept.com header.s=mx1 header.b=WMMOE1Jd; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernkonzept.com Received: from lipwig.vger.email (lipwig.vger.email. [2620:137:e000::3:3]) by mx.google.com with ESMTPS id p16-20020a170902e75000b001bc35017804si8457086plf.443.2023.09.12.06.15.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Sep 2023 06:15:40 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) client-ip=2620:137:e000::3:3; Authentication-Results: mx.google.com; dkim=pass header.i=@kernkonzept.com header.s=mx1 header.b=WMMOE1Jd; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernkonzept.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by lipwig.vger.email (Postfix) with ESMTP id 1649A8250270; Tue, 12 Sep 2023 03:00:27 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233256AbjILKAQ (ORCPT + 37 others); Tue, 12 Sep 2023 06:00:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48958 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233343AbjILKAN (ORCPT ); Tue, 12 Sep 2023 06:00:13 -0400 Received: from mx.kernkonzept.com (serv1.kernkonzept.com [IPv6:2a01:4f8:1c1c:b490::2]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E67A0E64; Tue, 12 Sep 2023 03:00:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=kernkonzept.com; s=mx1; h=Cc:To:In-Reply-To:References:Message-Id: Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From: Reply-To:Content-ID:Content-Description; bh=BxXw2lPBlPXmQ8F4w0fefRPMnE8WnMJ9NcWQp72L7OE=; b=WMMOE1JdxyWmMDacjV73+JJ8Ec iBcnvhReNiQMfRVKMTDiS6FOo4trT2yvmbWboWzIDZHe7kevkONS8v3KLV2UTiDAF4Qw8B9ZGjeMa 0f1YN50EXx2kE+QYmTu5Jt+MVpTcuzPAjsYtIAuJU4u5SBa1HeHkwBEUQUB4iIPsc4IgbIEk64YeG v6T10qZ9anMbbTKwgx6Pp0rgI8tPPRTCKC0ECJpr0PT5C/6vVfvG76aAC7LM39BOB1+rgnLGTtCd9 dAFeOawFHAXelKSqwD5VNkL73SjSiSp+amqdMfC39XckjhUmUYidZ2zyj8c1yeuyE/uw/ZZUOmhIK HIMDzNkw==; Received: from [10.22.3.24] (helo=serv1.dd1.int.kernkonzept.com) by mx.kernkonzept.com with esmtpsa (TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim 4.96) id 1qfzsr-0030Ws-0o; Tue, 12 Sep 2023 11:40:37 +0200 From: Stephan Gerhold Date: Tue, 12 Sep 2023 11:40:18 +0200 Subject: [PATCH 4/4] cpufreq: qcom-nvmem: Add MSM8909 MIME-Version: 1.0 Message-Id: <20230912-msm8909-cpufreq-v1-4-767ce66b544b@kernkonzept.com> References: <20230912-msm8909-cpufreq-v1-0-767ce66b544b@kernkonzept.com> In-Reply-To: <20230912-msm8909-cpufreq-v1-0-767ce66b544b@kernkonzept.com> To: Viresh Kumar Cc: Andy Gross , Bjorn Andersson , Konrad Dybcio , Ilia Lin , "Rafael J. Wysocki" , Rob Herring , Krzysztof Kozlowski , Conor Dooley , linux-pm@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Ulf Hansson , Stephan Gerhold X-Mailer: b4 0.12.3 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (lipwig.vger.email [0.0.0.0]); Tue, 12 Sep 2023 03:00:27 -0700 (PDT) X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lipwig.vger.email X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1776837765107137102 X-GMAIL-MSGID: 1776837765107137102 When the MSM8909 SoC is used together with the PM8909 PMIC the primary power supply for the CPU (VDD_APC) is shared with other components to the SoC, namely the VDD_CX power domain typically supplied by the PM8909 S1 regulator. This means that all votes for necessary performance states go via the RPM firmware which collects the requirements from all the processors in the SoC. The RPM firmware then chooses the actual voltage based on the performance states ("corners"), depending on calibration values in the NVMEM and other factors. The MSM8909 SoC is also sometimes used with the PM8916 or PM660 PMIC. In that case there is a dedicated regulator connected to VDD_APC and Linux is responsible to do adaptive voltage scaling using CPR (similar to the existing code for QCS404). This difference can be described in the device tree, by either assigning the CPU a power domain from RPMPD or from the CPR driver. To describe this in a more generic way, use "apc" as power domain name instead of "cpr". From the Linux point of view there is no CPR involved when MSM8909 is used together with PM8909. Also add a simple function that reads the speedbin from a NVMEM cell and sets it as-is for opp-supported-hw. The actual bit position can be described in the device tree without additional driver changes. Signed-off-by: Stephan Gerhold Acked-by: Konrad Dybcio --- drivers/cpufreq/qcom-cpufreq-nvmem.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/drivers/cpufreq/qcom-cpufreq-nvmem.c b/drivers/cpufreq/qcom-cpufreq-nvmem.c index 17d6ab14c909..2ea5e5ee9f1c 100644 --- a/drivers/cpufreq/qcom-cpufreq-nvmem.c +++ b/drivers/cpufreq/qcom-cpufreq-nvmem.c @@ -49,6 +49,24 @@ struct qcom_cpufreq_drv { static struct platform_device *cpufreq_dt_pdev, *cpufreq_pdev; +static int qcom_cpufreq_simple_get_version(struct device *cpu_dev, + struct nvmem_cell *speedbin_nvmem, + char **pvs_name, + struct qcom_cpufreq_drv *drv) +{ + u8 *speedbin; + + *pvs_name = NULL; + speedbin = nvmem_cell_read(speedbin_nvmem, NULL); + if (IS_ERR(speedbin)) + return PTR_ERR(speedbin); + + dev_dbg(cpu_dev, "speedbin: %d\n", *speedbin); + drv->versions = 1 << *speedbin; + kfree(speedbin); + return 0; +} + static void get_krait_bin_format_a(struct device *cpu_dev, int *speed, int *pvs, int *pvs_ver, u8 *buf) @@ -212,6 +230,13 @@ static const struct qcom_cpufreq_match_data match_data_krait = { .get_version = qcom_cpufreq_krait_name_version, }; +static const char *msm8909_genpd_names[] = { "apc", NULL }; + +static const struct qcom_cpufreq_match_data match_data_msm8909 = { + .get_version = qcom_cpufreq_simple_get_version, + .genpd_names = msm8909_genpd_names, +}; + static const char *qcs404_genpd_names[] = { "cpr", NULL }; static const struct qcom_cpufreq_match_data match_data_qcs404 = { @@ -375,6 +400,7 @@ static struct platform_driver qcom_cpufreq_driver = { }; static const struct of_device_id qcom_cpufreq_match_list[] __initconst = { + { .compatible = "qcom,msm8909", .data = &match_data_msm8909 }, { .compatible = "qcom,apq8096", .data = &match_data_kryo }, { .compatible = "qcom,msm8996", .data = &match_data_kryo }, { .compatible = "qcom,qcs404", .data = &match_data_qcs404 },