From patchwork Wed Jun 20 17:22:12 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 139380 Delivered-To: patches@linaro.org Received: by 2002:a2e:970d:0:0:0:0:0 with SMTP id r13-v6csp1050692lji; Wed, 20 Jun 2018 10:22:56 -0700 (PDT) X-Received: by 2002:a19:c692:: with SMTP id w140-v6mr8574612lff.85.1529515376937; Wed, 20 Jun 2018 10:22:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1529515376; cv=none; d=google.com; s=arc-20160816; b=vFrqOH+c1Y1ZUxbzYTOwOIpfzNk4/GZ6J323awUgJdQx3QrgMKPutaSKo7xe2PgegJ 5WC9PwPZ9h4Ox8WUW0lrVIXoxicNjE4T0aLal0iZ6x+fPiMJ/pxEWT+j40FWN4PufqP7 wHQt5ZJhOJpMOC09+Z5fw9pgWCYtZXckh5igJUXGY+O9okcJaQgMTLjcGzPz3SdfQE35 cgejL1BPIy37wHgb57FT+FMuXnqkLyxOMLzAeMVCZ2oUxAdtpgBbw0KMFFr1dJ/kQGH+ q2Whwx8vxOvYWeNXap8BY7O78uD6ouf2NaM08lOdI0p0/RPoVVYC/kJm2Gm9Q4/86L45 wrxg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=NdOVQOgn6QPfKNtGaQ+NXVIYYOcD0EuuWacQGnuhPH8=; b=ANxqwDENMXo5tDTiuihRpwCm7WK/CtsX/0RapwIiq3we5wsaxPCDGg3rr3eU2HhoJZ k44RJrQrZ7DezFkQ4WSZxzQ1bkldXM9EczAVGRs86L48tN+36SiIKXxURmEheUHp6hOq dhOQTkMhhIArUONYgPNG2wGEU2Ac+5Qdofhh4j661HEuGWDEROc8Gns/WKTXAYZda/fq VkchvN9+CswL2hQuF4wJwylReT3w6qWMplhvp/cCzlKuia2Vgj4qbclNz9hOmqLHwPke LgIlysdqOwVv3fDcP9z3gvCFzV/OZtRbegT/FuozONRt4mqAK64GiCXDHj2G07/yYRHF HZew== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=bxj+tfnA; spf=pass (google.com: domain of ulf.hansson@linaro.org designates 209.85.220.65 as permitted sender) smtp.mailfrom=ulf.hansson@linaro.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id k18-v6sor736468ljj.66.2018.06.20.10.22.56 for (Google Transport Security); Wed, 20 Jun 2018 10:22:56 -0700 (PDT) Received-SPF: pass (google.com: domain of ulf.hansson@linaro.org designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=bxj+tfnA; spf=pass (google.com: domain of ulf.hansson@linaro.org designates 209.85.220.65 as permitted sender) smtp.mailfrom=ulf.hansson@linaro.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org 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=NdOVQOgn6QPfKNtGaQ+NXVIYYOcD0EuuWacQGnuhPH8=; b=bxj+tfnAw37NyvY0WdDlwmR2qXNymUJepXFf+P3xWNtcQLIdfTA+QUNwlDOT2aL4rE GM7+CwE+5ixNl5W/l0aEM1mbXWeu+Vk9TD9OsYNRI+UuBLq/aSS1tuUsnhji8QuIIg9x fQxj0s8Q9sigqbWr3o/w0fUPJax0r2uKeKneM= 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=NdOVQOgn6QPfKNtGaQ+NXVIYYOcD0EuuWacQGnuhPH8=; b=FsggbIv1ihUsUoi61ZK02X4tnSOEelIIBrCpTXjwWywblbQmmwSM96z+0scEv5wbLo NtlQcwpEOx4nuopJMRw3oO/rmSS4fenGrs5lnMHvDRizBKfLXjXCEMH+gPau/A+Erikr 3dOzkNSTrPdzpHA55OioRNo8P7SXdeMpFVTonN7y1+UY2Fo/jtTvM0XSBlk9GQ5ox5Zh xvWBNEf4itwpqxFQ78pZmBxiMy2ECveCL05y4OjYR3xJAA9P6oYKyI0aHnepaTlORPxw xmjXnjhtNrrYtIRB7W4qgqJMO8KWfsH4eqhrg5UHacz7GFDewFBm7AZFupK5WNiBu1/R LkdQ== X-Gm-Message-State: APt69E22z2yS9LaM3Ws+sngIhslOvMyE8OnoiqlkOqzmdYuCWqM7D5Lf tpzG/rai13ecAeWgjcmwrFUNe2O8 X-Google-Smtp-Source: ADUXVKIfkA/aSkeTaO/Pmjg5O3hQYTz9idt4WA0jxR0DWKMwuZP8qg8sQLr7vhpNjIsL3Unx82VCbA== X-Received: by 2002:a2e:1710:: with SMTP id l16-v6mr15565951lje.74.1529515376747; Wed, 20 Jun 2018 10:22:56 -0700 (PDT) Return-Path: 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.22.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 20 Jun 2018 10:22:56 -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 Subject: [PATCH v8 12/26] cpuidle: dt: Support hierarchical CPU idle states Date: Wed, 20 Jun 2018 19:22:12 +0200 Message-Id: <20180620172226.15012-13-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> From: Lina Iyer Currently CPU's idle states are represented in a flattened model, via the "cpu-idle-states" binding from within the CPU's device nodes. Support the hierarchical layout during parsing and validating of the CPU's idle states. This is simply done by calling the new OF helper, of_get_cpu_state_node(). Cc: Lina Iyer Suggested-by: Sudeep Holla Signed-off-by: Lina Iyer Co-developed-by: Ulf Hansson Signed-off-by: Ulf Hansson --- drivers/cpuidle/dt_idle_states.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) -- 2.17.1 diff --git a/drivers/cpuidle/dt_idle_states.c b/drivers/cpuidle/dt_idle_states.c index 53342b7f1010..13f9b7cd32d1 100644 --- a/drivers/cpuidle/dt_idle_states.c +++ b/drivers/cpuidle/dt_idle_states.c @@ -118,8 +118,7 @@ static bool idle_state_valid(struct device_node *state_node, unsigned int idx, for (cpu = cpumask_next(cpumask_first(cpumask), cpumask); cpu < nr_cpu_ids; cpu = cpumask_next(cpu, cpumask)) { cpu_node = of_cpu_device_node_get(cpu); - curr_state_node = of_parse_phandle(cpu_node, "cpu-idle-states", - idx); + curr_state_node = of_get_cpu_state_node(cpu_node, idx); if (state_node != curr_state_node) valid = false; @@ -176,7 +175,7 @@ int dt_init_idle_driver(struct cpuidle_driver *drv, cpu_node = of_cpu_device_node_get(cpumask_first(cpumask)); for (i = 0; ; i++) { - state_node = of_parse_phandle(cpu_node, "cpu-idle-states", i); + state_node = of_get_cpu_state_node(cpu_node, i); if (!state_node) break;