Received: by 2002:ac0:a581:0:0:0:0:0 with SMTP id m1-v6csp1033087imm; Wed, 20 Jun 2018 10:25:45 -0700 (PDT) X-Google-Smtp-Source: ADUXVKItBUplRa2UjCJcJw7tkhJRjIQz2H/Wfyd5vQ9lElJ/BNzOtAvLBJlAZK5OEOkj+gFDvRDI X-Received: by 2002:a17:902:9f84:: with SMTP id g4-v6mr24964336plq.339.1529515545048; Wed, 20 Jun 2018 10:25:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1529515545; cv=none; d=google.com; s=arc-20160816; b=ttMULAcXNLcs7otOh9qWNUu1955FyoliVEeBU3qq7wT+SxnJOr1/Qz07dgw+JujVOg JJDBGTV6PkzK2HH+ZcZ+7BZxfjbUcK+qG017nNfwmcGS9cB2AcjjazW0cVPl8Nww3got rhR7KDxZPi/lw8dA53SMhc6JvlL/Lkxtbd2LwXijTemc9UK96gtkpDgYSWzYtJ5aBqwd wZoErlmgbunGkCwVEDM0FI3VcTE1hqCD3jq+HojKnieSV13/vwrHviOXbdf9l22dM30G 0gyr2zZ1rB4yVdLs93I3LEUNMx5kscgQZ90oYh9hX4aARNijYw9BJAKLmk3nF8fAGgbJ oonQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=vciKAZrRv7ECOl2ptqOo+/cjgmJMMGADcdSrEduU6CM=; b=dyIkWtnc6mNPpLQMTJvclawQdIefUGD9yRU4Xbz49QprsuO9FFPufkfDJ0xF5M3Vyw LqHnx+bdO1KIDatsFG0axw1fI8Qa9jlt0otoGGroYYAJb79rdR+LUhpw/FYb4YhvCD/t vw+5oas0f/E94lCvYBtrIwsOPkRz8e+p4RdBO1bTMmzXvPkVZRihP6kl3MlcYZfTUEcu j06o4Nr1pwclcCMbL4CGPkaXF+3837hOL1/W43rpXlc7s7vb9vwrQhjTfmIX0hq4F8EK FfrEgequjhplU+ahnlQ0UwxQUSt9ibwHkMGKqsGyVedhYQHN8Y7IYq29fJrHj4bb5F5D e09g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=KkpC0Yn2; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e14-v6si2313779pgt.185.2018.06.20.10.25.31; Wed, 20 Jun 2018 10:25:45 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=KkpC0Yn2; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933002AbeFTRX1 (ORCPT + 99 others); Wed, 20 Jun 2018 13:23:27 -0400 Received: from mail-lf0-f66.google.com ([209.85.215.66]:44072 "EHLO mail-lf0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932944AbeFTRXY (ORCPT ); Wed, 20 Jun 2018 13:23:24 -0400 Received: by mail-lf0-f66.google.com with SMTP id p23-v6so447009lfh.11 for ; Wed, 20 Jun 2018 10:23:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=vciKAZrRv7ECOl2ptqOo+/cjgmJMMGADcdSrEduU6CM=; b=KkpC0Yn2jPtKbAWQ0Aa+Ji7L3B367c355N3cQVkYlkTkk2twnsvqmvJIBt0lBz95/t XfvbnpxB1eMsui6wZaPKw7psnXfl3tiedOF1smCzsikembXej4uH3IllCXfihIZU95aJ auciZjtR8uD/oSbJlLihwNSXeJ9jjhsBOTa70= 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:in-reply-to :references; bh=vciKAZrRv7ECOl2ptqOo+/cjgmJMMGADcdSrEduU6CM=; b=sBnq9hAw6bViQSvPiG/lbPGXSrrc0nD9EUrlB/dZTAwKAJHd3XosAab5DkNNNugrAN DdDjQMdWqNlW3vkw4Kx37EN0HLZjpt8ck6Jz3JIo7SPhYmLpJ2stHSkmyRI8VIn9MafA FoA8CVKohfNxLljyc3cn1w/lJ0W8r377jstf3+lIbkD7v7yWPg2pv6Kay3kCLt9PM0GM XNVqkvU3KMV8Yc40ycn50HfD9ajOzzsQW7dnuKFX0cHsxbqsR4RleTV4LxMD6fkn591y LtSpSAlZI0P61mvYdA006drjbLoDgLjJ/WIKtuUBdKggaUrA8ZczyeJqaRhS2ZkVfGn8 2bUw== X-Gm-Message-State: APt69E1sbvJRf+i8zC0zgHdDQ9nR57r5XvQ5TsgF9hjtK8SU/ysYCm9/ S4DE0kcTsemUXGHLEi6v11ZFdQ== X-Received: by 2002:a19:eb8c:: with SMTP id f12-v6mr7763384lfk.132.1529515402549; Wed, 20 Jun 2018 10:23:22 -0700 (PDT) Received: from localhost.localdomain (h-158-174-22-210.NA.cust.bahnhof.se. [158.174.22.210]) by smtp.gmail.com with ESMTPSA id b2-v6sm514441lji.85.2018.06.20.10.23.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 20 Jun 2018 10:23:21 -0700 (PDT) From: Ulf Hansson To: "Rafael J . Wysocki" , Sudeep Holla , Lorenzo Pieralisi , Mark Rutland , linux-pm@vger.kernel.org Cc: Kevin Hilman , Lina Iyer , Lina Iyer , Ulf Hansson , Rob Herring , Daniel Lezcano , Thomas Gleixner , Vincent Guittot , Stephen Boyd , Juri Lelli , Geert Uytterhoeven , linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Andy Gross , David Brown Subject: [PATCH v8 26/26] arm64: dts: Convert to the hierarchical CPU topology layout for MSM8916 Date: Wed, 20 Jun 2018 19:22:26 +0200 Message-Id: <20180620172226.15012-27-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180620172226.15012-1-ulf.hansson@linaro.org> References: <20180620172226.15012-1-ulf.hansson@linaro.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Lina Iyer In the hierarchical layout, we are creating power domains around each CPU and describes the idle states for them inside the power domain provider node. Note that, the CPU's idle states still needs to be compatible with "arm,idle-state". Furthermore, represent the CPU cluster as a separate master power domain, powering the CPU's power domains. The cluster node, contains the idle states for the cluster and each idle state needs to be compatible with the "domain-idle-state". If the running platform is using a PSCI FW that supports the OS initiated CPU suspend mode, which likely should be the case unless the PSCI FW is very old, this change makes the PSCI driver to enable it. Cc: Andy Gross Cc: David Brown Cc: Lina Iyer Signed-off-by: Lina Iyer Co-developed-by: Ulf Hansson Signed-off-by: Ulf Hansson --- arch/arm64/boot/dts/qcom/msm8916.dtsi | 53 +++++++++++++++++++++++++-- 1 file changed, 49 insertions(+), 4 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/msm8916.dtsi b/arch/arm64/boot/dts/qcom/msm8916.dtsi index 650f356f69ca..d67c51090d0c 100644 --- a/arch/arm64/boot/dts/qcom/msm8916.dtsi +++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi @@ -113,10 +113,10 @@ reg = <0x0>; next-level-cache = <&L2_0>; enable-method = "psci"; - cpu-idle-states = <&CPU_SPC>; clocks = <&apcs 0>; operating-points-v2 = <&cpu_opp_table>; #cooling-cells = <2>; + power-domains = <&CPU_PD0>; }; CPU1: cpu@1 { @@ -125,10 +125,10 @@ reg = <0x1>; next-level-cache = <&L2_0>; enable-method = "psci"; - cpu-idle-states = <&CPU_SPC>; clocks = <&apcs 0>; operating-points-v2 = <&cpu_opp_table>; #cooling-cells = <2>; + power-domains = <&CPU_PD1>; }; CPU2: cpu@2 { @@ -137,10 +137,10 @@ reg = <0x2>; next-level-cache = <&L2_0>; enable-method = "psci"; - cpu-idle-states = <&CPU_SPC>; clocks = <&apcs 0>; operating-points-v2 = <&cpu_opp_table>; #cooling-cells = <2>; + power-domains = <&CPU_PD2>; }; CPU3: cpu@3 { @@ -149,10 +149,10 @@ reg = <0x3>; next-level-cache = <&L2_0>; enable-method = "psci"; - cpu-idle-states = <&CPU_SPC>; clocks = <&apcs 0>; operating-points-v2 = <&cpu_opp_table>; #cooling-cells = <2>; + power-domains = <&CPU_PD3>; }; L2_0: l2-cache { @@ -169,12 +169,57 @@ min-residency-us = <2000>; local-timer-stop; }; + + CLUSTER_RET: cluster-retention { + compatible = "domain-idle-state"; + arm,psci-suspend-param = <0x1000010>; + entry-latency-us = <500>; + exit-latency-us = <500>; + min-residency-us = <2000>; + }; + + CLUSTER_PWRDN: cluster-gdhs { + compatible = "domain-idle-state"; + arm,psci-suspend-param = <0x1000030>; + entry-latency-us = <2000>; + exit-latency-us = <2000>; + min-residency-us = <6000>; + }; }; }; psci { compatible = "arm,psci-1.0"; method = "smc"; + + CPU_PD0: cpu-pd0 { + #power-domain-cells = <0>; + power-domains = <&CLUSTER_PD>; + domain-idle-states = <&CPU_SPC>; + }; + + CPU_PD1: cpu-pd1 { + #power-domain-cells = <0>; + power-domains = <&CLUSTER_PD>; + domain-idle-states = <&CPU_SPC>; + }; + + CPU_PD2: cpu-pd2 { + #power-domain-cells = <0>; + power-domains = <&CLUSTER_PD>; + domain-idle-states = <&CPU_SPC>; + }; + + CPU_PD3: cpu-pd3 { + #power-domain-cells = <0>; + power-domains = <&CLUSTER_PD>; + domain-idle-states = <&CPU_SPC>; + }; + + CLUSTER_PD: cluster-pd { + #power-domain-cells = <0>; + domain-idle-states = <&CLUSTER_RET>, <&CLUSTER_PWRDN>; + }; }; pmu { -- 2.17.1