From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.9 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0991FC2D0C2 for ; Mon, 30 Dec 2019 14:44:12 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D3CFA20663 for ; Mon, 30 Dec 2019 14:44:11 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="NP/bXJFL" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727576AbfL3OoL (ORCPT ); Mon, 30 Dec 2019 09:44:11 -0500 Received: from mail-lf1-f65.google.com ([209.85.167.65]:33709 "EHLO mail-lf1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727397AbfL3OoK (ORCPT ); Mon, 30 Dec 2019 09:44:10 -0500 Received: by mail-lf1-f65.google.com with SMTP id n25so25282879lfl.0 for ; Mon, 30 Dec 2019 06:44:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id; bh=sFfjg/yNHvgMOq/dY0SQeqxIZJHWCbLuEKyo3araOLs=; b=NP/bXJFLt86IBRjeVMel3EBAEvK8F7rBxQbMHOohl4CF2QNfY9trFGs+OHOfSomsVD tLeLIs8K3KwGEDz9U/J51c6YOE4ZzyNB2l72m/Lr/Jh3NQx591Q2w+1yXvAsRlLdZjnl 5QXW17WOv65zyS/p8YBEVHpjlPuvKRrHn7p3KfGlgGVBth9MPppuf35rsX4oZcwU5UKP Mi1MImgE0NmiNE3eBREBzc+u9lB1OrsjhTDw0RGHMDK3BqGMZlW8dkg1HcygZxDr+o7V Nr9PFC4MivKEkhX6ZlcQwQSykROcCnzGVRAgj7mguDzbuk9pLT2GSMWjQ3HvDPzEE/3Y YPWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=sFfjg/yNHvgMOq/dY0SQeqxIZJHWCbLuEKyo3araOLs=; b=hCQfV1IW2UkNldxGWDunOMq1VCVN+kST+VU0OaNhnjRpYESQ8pRFUQkc4LSK6WN7rc L7FIN+MTKQua6x1AvAii/yH9VY5rsZmZ9hawdsLvFwz7ukonI4k4NTCtFoROr/pzaRcf 920mor5lRDWkwjqAB+OVieetTeNBzLR6hX8ac8k4VQeRg0yfu9NUi4ntSYSiq1WSP5PR d9Keq5oKpV65sFEG6asif9v4CZ7a9U9lYw/ghKaQNWQ8dQ84ULnhqHUZTfqUbaMd10uQ 5p70OMgbH/0QGQvvt7OMa/iYfT9s1vOILhX0iDMZzygN3lsqJWttsRC4nFKwledDhur4 18LQ== X-Gm-Message-State: APjAAAUR5FnS2etSq1a88kdBMU6/olKubQgwZremaJAM81Qv61NfPwI6 N6N2DF3kp6lY0PBnB9iBoSLZ8Q== X-Google-Smtp-Source: APXvYqy4XidAIjxpwoiaO8eMYG36haXaoFRqDnDjYaeZWAaq8806N3mNSYv74D0HNG8dhm1F6TD5NQ== X-Received: by 2002:a19:48c5:: with SMTP id v188mr38314593lfa.100.1577717048501; Mon, 30 Dec 2019 06:44:08 -0800 (PST) Received: from localhost.localdomain (h-158-174-22-210.NA.cust.bahnhof.se. [158.174.22.210]) by smtp.gmail.com with ESMTPSA id a21sm18744931lfg.44.2019.12.30.06.44.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Dec 2019 06:44:07 -0800 (PST) From: Ulf Hansson To: Sudeep Holla , Lorenzo Pieralisi , Rob Herring , linux-pm@vger.kernel.org Cc: "Rafael J . Wysocki" , Daniel Lezcano , Mark Rutland , Lina Iyer , Vincent Guittot , Stephen Boyd , Andy Gross , Bjorn Andersson , Kevin Hilman , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org Subject: [PATCH v5 00/15] cpuidle: psci: Support hierarchical CPU arrangement Date: Mon, 30 Dec 2019 15:43:47 +0100 Message-Id: <20191230144402.30195-1-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.17.1 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Changes in v5: - Remove PM domains in the error path, when failing to enable OSI. - Folded in a patch that adds a genpd OF helper to remove subdomains. - Added reviewed-by tags. Changes in v4: - Move the check for OSI support from psci_dt_attach_cpu() to the caller's side of it. - Add comment in the code about using the deepest idle state as the triggering point for the domain state selection. - Folded in a patch to enable support for CPU hotplug. Changes in v3: - Take one step further to completely avoid executing any OSI specific code from the ->enter() callback, while operating in the default PSCI Platform Coordinated mode. - Update example for the PSCI DT bindings to make it compile with "make dt_binding_check" Changes in v2: - Avoid to affect the non-OSI path with specific changes for OSI. This forced me to re-order the series and a caused more or less minor changes to most of the patches. - Updated the DT bindings for PSCI to clarify and to include the "psci" name of the PM domain to attach to. - Replaced patch1 with another patch from Sudeep, solving the same problem, but in a different way. This series enables initial support for hierarchical CPU arrangement, managed by PSCI and its corresponding cpuidle driver. It's based on using the generic PM domain (genpd), which nowadays also supports devices belonging to CPUs. The last DTS patch enables the hierarchical topology to be used for the Qcom 410c Dragonboard, which supports the PSCI OS-initiated mode. More detailed background can be found from previous submissions [1]. The series is also available at: git.linaro.org/people/ulf.hansson/linux-pm.git next Kind regards Ulf Hansson [1] https://lwn.net/Articles/788306/ Lina Iyer (1): cpuidle: dt: Support hierarchical CPU idle states Sudeep Holla (1): cpuidle: psci: Align psci_power_state count with idle state count Ulf Hansson (13): dt: psci: Update DT bindings to support hierarchical PSCI states firmware: psci: Export functions to manage the OSI mode of: base: Add of_get_cpu_state_node() to get idle states for a CPU node cpuidle: psci: Simplify OF parsing of CPU idle state nodes cpuidle: psci: Support hierarchical CPU idle states cpuidle: psci: Add a helper to attach a CPU to its PM domain cpuidle: psci: Attach CPU devices to their PM domains cpuidle: psci: Prepare to use OS initiated suspend mode via PM domains cpuidle: psci: Manage runtime PM in the idle path cpuidle: psci: Support CPU hotplug for the hierarchical model PM / Domains: Introduce a genpd OF helper that removes a subdomain cpuidle: psci: Add support for PM domains by using genpd arm64: dts: Convert to the hierarchical CPU topology layout for MSM8916 .../devicetree/bindings/arm/cpus.yaml | 15 + .../devicetree/bindings/arm/psci.yaml | 104 ++++++ arch/arm64/boot/dts/qcom/msm8916.dtsi | 57 +++- drivers/base/power/domain.c | 38 +++ drivers/cpuidle/Makefile | 4 +- drivers/cpuidle/cpuidle-psci-domain.c | 308 ++++++++++++++++++ drivers/cpuidle/cpuidle-psci.c | 161 +++++++-- drivers/cpuidle/cpuidle-psci.h | 17 + drivers/cpuidle/dt_idle_states.c | 5 +- drivers/firmware/psci/psci.c | 18 +- drivers/of/base.c | 36 ++ include/linux/cpuhotplug.h | 1 + include/linux/of.h | 8 + include/linux/pm_domain.h | 8 + include/linux/psci.h | 2 + 15 files changed, 747 insertions(+), 35 deletions(-) create mode 100644 drivers/cpuidle/cpuidle-psci-domain.c create mode 100644 drivers/cpuidle/cpuidle-psci.h -- 2.17.1 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DD638C2D0C2 for ; Mon, 30 Dec 2019 14:50:11 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id A087D20663 for ; Mon, 30 Dec 2019 14:50:11 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="Hz8ht0mi"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="NP/bXJFL" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A087D20663 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date: Subject: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=Q2M/cMWuid6zJThX/tVH2pAQbkk82vb4BSPtuo1gGw8=; b=Hz8 ht0mic5iH0PRaWsHa/0OWzzIFRry7j24h2Tyg3ImaK2OSay5pxXRoFVl2ZthOcYjIOVdoVDMvnIUf SwzqU/qaQRnBZabV+PdlyO1NpgCtuP/ixxiUei9HGY7DG/o+Isjzn9XDCiZ2H9muG0GKvms9JJAw2 xl8AQbsk91OsD/oXy+14ujvp7DhLf5LcFlLZVrm8HxtbTwASGBl5XM+LgIHxq4/w0uxlBTst3PIPv neQtSCmdhC59Mp/KQ6AR7H3voO88DgwvplJjsH4tMvT2djL1tCb1y4gf9SX7EEAVGGIlJ4L7mLFx5 bnKWmLBnfjnllGYJ6KboCWH+bWnLu8w==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1ilwMq-0002vS-Ja; Mon, 30 Dec 2019 14:50:00 +0000 Received: from mail-lf1-x143.google.com ([2a00:1450:4864:20::143]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1ilwHD-00059M-5f for linux-arm-kernel@lists.infradead.org; Mon, 30 Dec 2019 14:44:13 +0000 Received: by mail-lf1-x143.google.com with SMTP id f15so25235673lfl.13 for ; Mon, 30 Dec 2019 06:44:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id; bh=sFfjg/yNHvgMOq/dY0SQeqxIZJHWCbLuEKyo3araOLs=; b=NP/bXJFLt86IBRjeVMel3EBAEvK8F7rBxQbMHOohl4CF2QNfY9trFGs+OHOfSomsVD tLeLIs8K3KwGEDz9U/J51c6YOE4ZzyNB2l72m/Lr/Jh3NQx591Q2w+1yXvAsRlLdZjnl 5QXW17WOv65zyS/p8YBEVHpjlPuvKRrHn7p3KfGlgGVBth9MPppuf35rsX4oZcwU5UKP Mi1MImgE0NmiNE3eBREBzc+u9lB1OrsjhTDw0RGHMDK3BqGMZlW8dkg1HcygZxDr+o7V Nr9PFC4MivKEkhX6ZlcQwQSykROcCnzGVRAgj7mguDzbuk9pLT2GSMWjQ3HvDPzEE/3Y YPWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=sFfjg/yNHvgMOq/dY0SQeqxIZJHWCbLuEKyo3araOLs=; b=SFn+Cuy/3qerU8D/RJouRmqJzH7yJBMzuKyq6M4QgBLpMJeyVW3/qCp0vrLTqiO6dF D8jHIqvN7+K0IGSkmZ395ybKheGovmoDHs4kMpAmVu9MtULt4Gb4bUiLyuv4Oh5wO6ax lEpAGIuSf1II8trD/XcaW+sY2XZOUcFd9xJfbs/ECg6X5muzhkAYESrWfA5S9xJu/0HJ UcA9RJOIH+g1861MIosjIDLBu71SRYV7eAZUmeW6xxOUZiXqlC9LnBOuy+iPdJrZPbXR D54sMZhGD3QhdKMhXhsWVPRUVUdViVcldqPZ2RDjiMA94/1ZxqTLOna51ohJyQLV4bKh vLlg== X-Gm-Message-State: APjAAAUdl+eEoKFEM8vOgZlAo5pACvPWkFDu0HAhN1MrnC7Lw/t9VPyA 0hdQwx0Ps73iHNFqvjo4oJbU2b5QWPI= X-Google-Smtp-Source: APXvYqy4XidAIjxpwoiaO8eMYG36haXaoFRqDnDjYaeZWAaq8806N3mNSYv74D0HNG8dhm1F6TD5NQ== X-Received: by 2002:a19:48c5:: with SMTP id v188mr38314593lfa.100.1577717048501; Mon, 30 Dec 2019 06:44:08 -0800 (PST) Received: from localhost.localdomain (h-158-174-22-210.NA.cust.bahnhof.se. [158.174.22.210]) by smtp.gmail.com with ESMTPSA id a21sm18744931lfg.44.2019.12.30.06.44.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Dec 2019 06:44:07 -0800 (PST) From: Ulf Hansson To: Sudeep Holla , Lorenzo Pieralisi , Rob Herring , linux-pm@vger.kernel.org Subject: [PATCH v5 00/15] cpuidle: psci: Support hierarchical CPU arrangement Date: Mon, 30 Dec 2019 15:43:47 +0100 Message-Id: <20191230144402.30195-1-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.17.1 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191230_064411_361806_A4056401 X-CRM114-Status: GOOD ( 18.24 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , Ulf Hansson , Kevin Hilman , Stephen Boyd , linux-arm-msm@vger.kernel.org, Daniel Lezcano , "Rafael J . Wysocki" , Lina Iyer , Bjorn Andersson , Andy Gross , linux-arm-kernel@lists.infradead.org MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org Changes in v5: - Remove PM domains in the error path, when failing to enable OSI. - Folded in a patch that adds a genpd OF helper to remove subdomains. - Added reviewed-by tags. Changes in v4: - Move the check for OSI support from psci_dt_attach_cpu() to the caller's side of it. - Add comment in the code about using the deepest idle state as the triggering point for the domain state selection. - Folded in a patch to enable support for CPU hotplug. Changes in v3: - Take one step further to completely avoid executing any OSI specific code from the ->enter() callback, while operating in the default PSCI Platform Coordinated mode. - Update example for the PSCI DT bindings to make it compile with "make dt_binding_check" Changes in v2: - Avoid to affect the non-OSI path with specific changes for OSI. This forced me to re-order the series and a caused more or less minor changes to most of the patches. - Updated the DT bindings for PSCI to clarify and to include the "psci" name of the PM domain to attach to. - Replaced patch1 with another patch from Sudeep, solving the same problem, but in a different way. This series enables initial support for hierarchical CPU arrangement, managed by PSCI and its corresponding cpuidle driver. It's based on using the generic PM domain (genpd), which nowadays also supports devices belonging to CPUs. The last DTS patch enables the hierarchical topology to be used for the Qcom 410c Dragonboard, which supports the PSCI OS-initiated mode. More detailed background can be found from previous submissions [1]. The series is also available at: git.linaro.org/people/ulf.hansson/linux-pm.git next Kind regards Ulf Hansson [1] https://lwn.net/Articles/788306/ Lina Iyer (1): cpuidle: dt: Support hierarchical CPU idle states Sudeep Holla (1): cpuidle: psci: Align psci_power_state count with idle state count Ulf Hansson (13): dt: psci: Update DT bindings to support hierarchical PSCI states firmware: psci: Export functions to manage the OSI mode of: base: Add of_get_cpu_state_node() to get idle states for a CPU node cpuidle: psci: Simplify OF parsing of CPU idle state nodes cpuidle: psci: Support hierarchical CPU idle states cpuidle: psci: Add a helper to attach a CPU to its PM domain cpuidle: psci: Attach CPU devices to their PM domains cpuidle: psci: Prepare to use OS initiated suspend mode via PM domains cpuidle: psci: Manage runtime PM in the idle path cpuidle: psci: Support CPU hotplug for the hierarchical model PM / Domains: Introduce a genpd OF helper that removes a subdomain cpuidle: psci: Add support for PM domains by using genpd arm64: dts: Convert to the hierarchical CPU topology layout for MSM8916 .../devicetree/bindings/arm/cpus.yaml | 15 + .../devicetree/bindings/arm/psci.yaml | 104 ++++++ arch/arm64/boot/dts/qcom/msm8916.dtsi | 57 +++- drivers/base/power/domain.c | 38 +++ drivers/cpuidle/Makefile | 4 +- drivers/cpuidle/cpuidle-psci-domain.c | 308 ++++++++++++++++++ drivers/cpuidle/cpuidle-psci.c | 161 +++++++-- drivers/cpuidle/cpuidle-psci.h | 17 + drivers/cpuidle/dt_idle_states.c | 5 +- drivers/firmware/psci/psci.c | 18 +- drivers/of/base.c | 36 ++ include/linux/cpuhotplug.h | 1 + include/linux/of.h | 8 + include/linux/pm_domain.h | 8 + include/linux/psci.h | 2 + 15 files changed, 747 insertions(+), 35 deletions(-) create mode 100644 drivers/cpuidle/cpuidle-psci-domain.c create mode 100644 drivers/cpuidle/cpuidle-psci.h -- 2.17.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel