All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rajendra Nayak <rnayak@codeaurora.org>
To: andy.gross@linaro.org, robh@kernel.org, viresh.kumar@linaro.org,
	sboyd@kernel.org, ulf.hansson@linaro.org,
	collinsd@codeaurora.org, mka@chromium.org
Cc: devicetree@vger.kernel.org, linux-arm-msm@vger.kernel.org,
	linux-kernel@vger.kernel.org, henryc.chen@mediatek.com,
	Rajendra Nayak <rnayak@codeaurora.org>
Subject: [PATCH v9 08/10] OPP: Add a dev_pm_opp_of_get_level() helper
Date: Mon,  7 Jan 2019 15:39:57 +0530	[thread overview]
Message-ID: <20190107100959.14528-9-rnayak@codeaurora.org> (raw)
In-Reply-To: <20190107100959.14528-1-rnayak@codeaurora.org>

Now that we have atleast 2 genpd providers, both using a simple
routine to read a performance state (opp-level) value from device
tree, in order to implement the .opp_to_performance_state
callback, add a dev_pm_opp_of_get_level() helper to do
it, so it can be resued across all such genpd providers which
just need to read the value from DT.

Suggested-by: Stephen Boyd <sboyd@kernel.org>
Signed-off-by: Rajendra Nayak <rnayak@codeaurora.org>
---
 drivers/opp/of.c       | 23 +++++++++++++++++++++++
 include/linux/pm_opp.h |  5 +++++
 2 files changed, 28 insertions(+)

diff --git a/drivers/opp/of.c b/drivers/opp/of.c
index 06f0f632ec47..6fb383fee601 100644
--- a/drivers/opp/of.c
+++ b/drivers/opp/of.c
@@ -1029,6 +1029,29 @@ int of_get_required_opp_performance_state(struct device_node *np, int index)
 }
 EXPORT_SYMBOL_GPL(of_get_required_opp_performance_state);
 
+/**
+ * dev_pm_opp_of_get_level() - Reads the opp-level value from Device Tree
+ * @opp: opp for which 'opp-level' should be read and returned
+ *
+ * Returns the opp-level value read from Device Tree, if present, else 0
+ *
+ * Return: Zero or positive opp-level value read from Device tree
+ */
+unsigned int dev_pm_opp_of_get_level(struct dev_pm_opp *opp)
+{
+	struct device_node *np;
+	unsigned int perf_state = 0;
+
+	np = dev_pm_opp_get_of_node(opp);
+	if (of_property_read_u32(np, "opp-level", &perf_state))
+		pr_err("%s: missing 'opp-level' property\n", __func__);
+
+	of_node_put(np);
+
+	return perf_state;
+}
+EXPORT_SYMBOL_GPL(dev_pm_opp_of_get_level);
+
 /**
  * dev_pm_opp_get_of_node() - Gets the DT node corresponding to an opp
  * @opp:	opp for which DT node has to be returned for
diff --git a/include/linux/pm_opp.h b/include/linux/pm_opp.h
index 0a2a88e5a383..bf7d21b23a5e 100644
--- a/include/linux/pm_opp.h
+++ b/include/linux/pm_opp.h
@@ -322,6 +322,7 @@ int dev_pm_opp_of_get_sharing_cpus(struct device *cpu_dev, struct cpumask *cpuma
 struct device_node *dev_pm_opp_of_get_opp_desc_node(struct device *dev);
 struct device_node *dev_pm_opp_get_of_node(struct dev_pm_opp *opp);
 int of_get_required_opp_performance_state(struct device_node *np, int index);
+unsigned int dev_pm_opp_of_get_level(struct dev_pm_opp *opp);
 #else
 static inline int dev_pm_opp_of_add_table(struct device *dev)
 {
@@ -364,6 +365,10 @@ static inline int of_get_required_opp_performance_state(struct device_node *np,
 {
 	return -ENOTSUPP;
 }
+static inline int dev_pm_opp_of_get_level(struct dev_pm_opp *opp)
+{
+	return 0;
+}
 #endif
 
 #endif		/* __LINUX_OPP_H__ */
-- 
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation

  parent reply	other threads:[~2019-01-07 10:09 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-07 10:09 [PATCH v9 00/10] Add power domain driver for corners on msm8996/sdm845 Rajendra Nayak
2019-01-07 10:09 ` [PATCH v9 01/10] dt-bindings: opp: Introduce opp-level bindings Rajendra Nayak
2019-01-08  4:49   ` Viresh Kumar
2019-01-07 10:09 ` [PATCH v9 02/10] dt-bindings: power: Add qcom rpm power domain driver bindings Rajendra Nayak
2019-01-07 10:09 ` [PATCH v9 03/10] soc: qcom: rpmpd: Add a Power domain driver to model corners Rajendra Nayak
2019-01-07 10:09 ` [PATCH v9 04/10] soc: qcom: rpmpd: Add support for get/set performance state Rajendra Nayak
2019-01-07 10:09 ` [PATCH v9 05/10] arm64: dts: msm8996: Add rpmpd device node Rajendra Nayak
2019-01-07 10:09 ` [PATCH v9 06/10] soc: qcom: rpmhpd: Add RPMh power domain driver Rajendra Nayak
2019-01-07 10:09 ` [PATCH v9 07/10] arm64: dts: sdm845: Add rpmh powercontroller node Rajendra Nayak
2019-01-07 10:09 ` Rajendra Nayak [this message]
2019-01-08  4:54   ` [PATCH v9 08/10] OPP: Add a dev_pm_opp_of_get_level() helper Viresh Kumar
2019-01-07 10:09 ` [PATCH v9 09/10] soc: qcom: rpmpd: Use " Rajendra Nayak
2019-01-07 10:09 ` [PATCH v9 10/10] soc: qcom: rpmhpd: Mark mx as a parent for cx Rajendra Nayak

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190107100959.14528-9-rnayak@codeaurora.org \
    --to=rnayak@codeaurora.org \
    --cc=andy.gross@linaro.org \
    --cc=collinsd@codeaurora.org \
    --cc=devicetree@vger.kernel.org \
    --cc=henryc.chen@mediatek.com \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mka@chromium.org \
    --cc=robh@kernel.org \
    --cc=sboyd@kernel.org \
    --cc=ulf.hansson@linaro.org \
    --cc=viresh.kumar@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.