From patchwork Thu Apr 12 11:14:17 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 133250 Delivered-To: patches@linaro.org Received: by 10.46.84.29 with SMTP id i29csp1573694ljb; Thu, 12 Apr 2018 04:14:59 -0700 (PDT) X-Received: by 2002:a19:c3c3:: with SMTP id t186-v6mr816494lff.110.1523531699921; Thu, 12 Apr 2018 04:14:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1523531699; cv=none; d=google.com; s=arc-20160816; b=hJfzWU37ka+mHtw8Bgnzj9230DmEZ8/LSdUj8o2JKxFXb2NQwtQa6/iiQnCYAiuLc1 edEQg+V0FFlEOQuqKN94fWGbJqpwUErnUJxDYlrrj8qgCwceljqnJoXffEKXwkUawH7x tkDuxJcphie6b0gBNFax8pGxgcT90PxzfOCCaKHNFIcVKIkXvYb4tCg6aWZgblnqfXlo 5tUML2tAWcodZsLHD2x74aY556N/ByD9UHN3Tqxh3ZOFomNR1e0rB6cTrSY4PLP2vFJX MrYoPaLN8wiZBhMOe4rflCyuTIYGemtDyt8uy8+NprDS3sX3rq8I0NUxBniQfCnGXrfv 7m7w== 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=wNxOIumF5VO8wdO7axQyrg1Yf0ybJeBuC4ybXh+k+I4=; b=e2/4W08JNdvnb28EfVXfFMZzsW0xjh5cZKYjMYRwODWti3HzQHp32jAUPoBciLsBZ+ RYyHKPml3IjP2Ue6PSHBhTOv47XpY0ELZMXN9tmsp5QHDSEbxE2n3L0co0bB2bFrjngl GVfxYRdg2QW2YDrnaQZ/8cHWtoIGj8ppEy0N9aX73FWYaS9pUeEKReihjQErVbUQ+2gJ hCRExe7sVXu0ZUm7vViTOGkk44qu1MB8D9nFm3R0B2t2dHUI1Ui/IQO0zR89YA0FLUcO CEj/ZBPtMgwuIMDeekugvApmPcmxCUBDQ2d96J2QAdCuHnDS8EIMYyj0GFecC/Rb1x6m p8wQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=O8WhQWRG; 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 j86-v6sor927334lfi.64.2018.04.12.04.14.59 for (Google Transport Security); Thu, 12 Apr 2018 04:14:59 -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=O8WhQWRG; 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=wNxOIumF5VO8wdO7axQyrg1Yf0ybJeBuC4ybXh+k+I4=; b=O8WhQWRGFjMZMMxvRJen+/XKvYxf1lramgnS/wOTD+s+mrxlzym3vrs4iggBF7XCk3 Z51YnM1Efs2PtSV8PwlHPzXmT2JfjZkpiXCnJlSdGlNP3wFNm7xbTZJ/hYuod6826Wqk r7i2T5YHCQyST5ZosDeSf4ozleHNcclvSZR0A= 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=wNxOIumF5VO8wdO7axQyrg1Yf0ybJeBuC4ybXh+k+I4=; b=dpG+BJdfNG/QHkJvbVk6nK18eOJV/nYtvrQzdmJOXIhcaULOkNdWwTAM0KaROAQaTT oX4asSs/ExgBUircT3AC+NcB6FA2DrmlaKS9Q+y70jXiuW4Z+fjiEZZBsjPpR591iXzG KD81dnRNe91zCLQv6g8OaXWCUpBV9dLxn1kXm1l3ttRqzt+EedSrFEqlLF1OAVvJGbPY XkGten8L08XXxHnL4sW1vmc3cQmLtD7Go65qcu/7fHj7DGU74Rko7lCPpI0nS/I7Vlcc w2+cyfN91EpWC3qDZBIDV+dpO5M92L6ILjYgai6CcFpeFOSUfAfpSkS4ECh23eLtKD4u tIzA== X-Gm-Message-State: ALQs6tBxkZuRrorv2hk77xcsBjhg2HjlY35Z/zgnZCepTJ+SYhZxvTfK Ot1Zsq6i1dPopJjKSBno91labk8M X-Google-Smtp-Source: AIpwx48GaNnT5e3GV0a9rQWEJscn1nPnaNBvVRYAnMX3FRt/15zQ2JdYvvA27MWv1/axsn2WI6n0Ew== X-Received: by 2002:a19:1122:: with SMTP id g34-v6mr4714707lfi.6.1523531699615; Thu, 12 Apr 2018 04:14:59 -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 r29sm543187lje.72.2018.04.12.04.14.58 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 12 Apr 2018 04:14:58 -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 v7 12/26] cpuidle: dt: Support hierarchical CPU idle states Date: Thu, 12 Apr 2018 13:14:17 +0200 Message-Id: <1523531671-27491-13-git-send-email-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1523531671-27491-1-git-send-email-ulf.hansson@linaro.org> References: <1523531671-27491-1-git-send-email-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.7.4 diff --git a/drivers/cpuidle/dt_idle_states.c b/drivers/cpuidle/dt_idle_states.c index 53342b7..13f9b7c 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;