From patchwork Fri Aug 25 11:26:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 13365456 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id EB28BC7EE2C for ; Fri, 25 Aug 2023 11:27:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:Cc :To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=T+DPd7x8ZNAiBrWrUfyBGibNKk475J61jnDRp6ihIwg=; b=iJV6tT6X9j02sy HOwumMUDIsBEK69CpIHtP9QfZWJdFY5U8CpX+KPPB5/jX56Ly9SY1I672PPBMFBMMcLZYxyiL+blS bQ+XMf4lnKpqEIR8u/ZRKtEn7C9BYhQs1WLQPoS6rVJIX7AU36RqxjyeqaGtK7Nws8ZUXGf0sTBkP 2OzH/gXEc7lnmU5xm+3q6kWz+bSvfX07Zzq6lSYD9OmQSb2gLgUc/0SvHt947pZAIoR3/zjXHoDjB U8UH3h8H77NOped45Bw/LKwNLXqelt233cJ7+lKomKVxCu17+0isZrB7TFoBXj1ftjVdUTz+aIqLp e48TeJRgUs3Mw+Gh4/dA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qZUy7-005Cts-2Q; Fri, 25 Aug 2023 11:27:11 +0000 Received: from mail-lf1-x12c.google.com ([2a00:1450:4864:20::12c]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qZUxv-005Cf2-24 for linux-arm-kernel@lists.infradead.org; Fri, 25 Aug 2023 11:27:01 +0000 Received: by mail-lf1-x12c.google.com with SMTP id 2adb3069b0e04-50098cc8967so1260308e87.1 for ; Fri, 25 Aug 2023 04:26:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1692962812; x=1693567612; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=fBY/HtUs9K9shLxFz87/yhgWybEcdjCy9Ovc6VbYJDM=; b=mO8BvDUU1/immKzeAsfPPrAA491wEj/9AIdCzi62+OFRBSSsvECRTHqmGuK0KhGAy0 zwCARHJgAxUcbQkRTeKoM7d7nClDP75436sEQoxl4HwtzLyTrBgj6sGseJv9lG2gyWw6 hQSBuZ/FUOBUV8f55HO5SbcW4YxGHj+nUPRfSqDOSASVsT3XfRwhGqTvfVDBV0g7p2b+ i2m3erXWZS3R1dEkQI0AdrhbiruzPxQNw/txgyht2ORflP39Tnd0I8CPBLDThwjRTb+k s8G/E3xocw6dm8BU7+qVTFCeeShdjq36psItS4gLJvcL1TZJdzS6VURHNbfVZlwfaV58 +9dw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692962812; x=1693567612; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=fBY/HtUs9K9shLxFz87/yhgWybEcdjCy9Ovc6VbYJDM=; b=bjpkSobkYd7rSB8ouICdT5u7xdqHo/YePWb5SA96Uk+kEy7Q++HiWA9F4SirVWujk8 XCornkoGtY6iL6ohuUFdhw0/AUcPwB8AKyHJlgn97KT6ux+CqO2dIY4Fi+IUY7SC+M8F A6168n+SIblIJnUpoWpGx8pOp4k96oAsK0Wz2DZ26b9i8AWaz/gQbruZcLSflQkFv64q bay8Q/arIAIL/0aJp9vLar3uaL5Nwn2efU25P0Hc/chuOd0iHw1ZV2crwSdaZZJY0dtT ueQ6I7b2PioLAnbubdLDEY4JRklpBoVwLeBLO7TAs9H6sazfXSAcFL0+z6xF5roQUU++ o9uQ== X-Gm-Message-State: AOJu0YyhbrKBq3qvfsfkeE1K5FPtsoU/HtRzmWemoG9qYvJhkfQr+R2N RMuLAJWsuiJN/EG5+U1/f/WQCWV7GGxmidb61pmoKw== X-Google-Smtp-Source: AGHT+IGGJdkUEbzPSl8I64Rn0u5xOF5sgGb4L+rFAZnxKgpB/IhJ0oB2oEC1OpMXYM9Cz/aMQ88c3w== X-Received: by 2002:a05:6512:32cc:b0:4ff:7e1e:b4b4 with SMTP id f12-20020a05651232cc00b004ff7e1eb4b4mr14760796lfg.39.1692962812488; Fri, 25 Aug 2023 04:26:52 -0700 (PDT) Received: from uffe-tuxpro14.. (h-94-254-63-18.NA.cust.bahnhof.se. [94.254.63.18]) by smtp.gmail.com with ESMTPSA id g7-20020ac25387000000b004fb7ac67bbdsm259164lfh.41.2023.08.25.04.26.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Aug 2023 04:26:52 -0700 (PDT) From: Ulf Hansson To: Sudeep Holla , Cristian Marussi , Viresh Kumar , Nishanth Menon , Stephen Boyd Cc: Nikunj Kela , Prasad Sodagudi , Alexandre Torgue , Ulf Hansson , linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 00/13] arm_scmi/cpufreq: Add generic performance scaling support Date: Fri, 25 Aug 2023 13:26:20 +0200 Message-Id: <20230825112633.236607-1-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230825_042659_681942_EFC902D7 X-CRM114-Status: GOOD ( 17.79 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Changes in v3: - Re-based upon the for-next/scmi/updates branch. - Re-ordered some of the patches in the series, to eas review. - Added some new DT doc patches in the series, according to comments. - Fixed other comments, see version history for each patch. Changes in v2: - Split up the series, to get the basic support in place as the first step. The part that remains is the integration with the OPP library, to allow consumer drivers to change performance level using the OPP lib. - Re-based on top v6.5-rc1. - Other changes will be described for each patch. The current SCMI performance scaling support is limited to cpufreq. This series extends the support, so it can be used for all kind of devices and not only for CPUs. The changes are spread over a couple of different subsystems, although the changes that affects the other subsystems than the arm_scmi directory are mostly smaller, except for last patch which is in the new genpd directory. The series is based upon the for-next/scmi/updates branch, but to enable the genpd provider in patch 13 (the actual scmi performance domain driver) to be placed in the new genpd directory, I have also merged an immutable branch [1], which is queued for v6.6. Note that, I am runing this on the Qemu virt platform with Optee running an SCMI server. If you want some more details about my test setup, I can share this with you, just let me know. Looking forward to your feedback! Kind regards Ulf Hansson [1] git.kernel.org/pub/scm/linux/kernel/git/people/ulf.hansson/linux-pm.git genpd_create_dir Ulf Hansson (13): firmware: arm_scmi: Extend perf protocol ops to get number of domains firmware: arm_scmi: Extend perf protocol ops to get information of a domain cpufreq: scmi: Prepare to move OF parsing of domain-id to cpufreq firmware: arm_scmi: Align perf ops to use domain-id as in-parameter firmware: arm_scmi: Drop redundant ->device_domain_id() from perf ops cpufreq: scmi: Avoid one OF parsing in scmi_get_sharing_cpus() cpufreq: scmi: Drop redundant ifdef in scmi_cpufreq_probe() dt-bindings: arm: cpus: Add a power-domain-name for a performance-domain dt-bindings: firmware: arm,scmi: Extend bindings for protocol@13 dt-bindings: power: Clarify performance capabilities of power-domains cpufreq: scmi: Add support to parse domain-id using #power-domain-cells PM: domains: Allow genpd providers to manage OPP tables directly by its FW genpd: arm: Add the SCMI performance domain .../devicetree/bindings/arm/cpus.yaml | 4 +- .../bindings/firmware/arm,scmi.yaml | 11 +- .../bindings/power/power-domain.yaml | 17 +- MAINTAINERS | 1 + drivers/base/power/domain.c | 11 +- drivers/cpufreq/scmi-cpufreq.c | 55 +++++-- drivers/firmware/arm_scmi/Kconfig | 12 ++ drivers/firmware/arm_scmi/perf.c | 90 +++++------ drivers/genpd/Makefile | 1 + drivers/genpd/arm/Makefile | 3 + drivers/genpd/arm/scmi_perf_domain.c | 150 ++++++++++++++++++ include/linux/pm_domain.h | 5 + include/linux/scmi_protocol.h | 18 ++- 13 files changed, 293 insertions(+), 85 deletions(-) create mode 100644 drivers/genpd/arm/Makefile create mode 100644 drivers/genpd/arm/scmi_perf_domain.c