All of lore.kernel.org
 help / color / mirror / Atom feed
From: Krishna chaitanya chundru <quic_krichai@quicinc.com>
To: agross@kernel.org, andersson@kernel.org,
	konrad.dybcio@linaro.org, krzysztof.kozlowski+dt@linaro.org,
	conor+dt@kernel.org, vireshk@kernel.org, nm@ti.com,
	sboyd@kernel.org, mani@kernel.org
Cc: lpieralisi@kernel.org, kw@linux.com, robh@kernel.org,
	bhelgaas@google.com, rafael@kernel.org,
	linux-arm-msm@vger.kernel.org, linux-pci@vger.kernel.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-pm@vger.kernel.org, quic_vbadigan@quicinc.com,
	quic_nitegupt@quicinc.com, quic_skananth@quicinc.com,
	quic_ramkri@quicinc.com, quic_parass@quicinc.com,
	Krishna chaitanya chundru <quic_krichai@quicinc.com>
Subject: [PATCH v5 3/5] opp: Add dev_pm_opp_find_level_floor()
Date: Thu,  7 Sep 2023 11:30:31 +0530	[thread overview]
Message-ID: <1694066433-8677-4-git-send-email-quic_krichai@quicinc.com> (raw)
In-Reply-To: <1694066433-8677-1-git-send-email-quic_krichai@quicinc.com>

During initialization of some drivers, need to vote for max level.

Adding dev_pm_opp_find_level_floor() for searching a lesser match or
operating on OPP in the order of decreasing level.

Signed-off-by: Krishna chaitanya chundru <quic_krichai@quicinc.com>
---
 drivers/opp/core.c     | 25 +++++++++++++++++++++++++
 include/linux/pm_opp.h |  9 +++++++++
 2 files changed, 34 insertions(+)

diff --git a/drivers/opp/core.c b/drivers/opp/core.c
index 919cc53..6d4d226 100644
--- a/drivers/opp/core.c
+++ b/drivers/opp/core.c
@@ -814,6 +814,31 @@ struct dev_pm_opp *dev_pm_opp_find_level_ceil(struct device *dev,
 EXPORT_SYMBOL_GPL(dev_pm_opp_find_level_ceil);
 
 /**
+ * dev_pm_opp_find_level_floor() - Search for a rounded floor freq
+ * @dev:	device for which we do this operation
+ * @level:	Start level
+ *
+ * Search for the matching floor *available* OPP from a starting level
+ * for a device.
+ *
+ * Return: matching *opp and refreshes *level accordingly, else returns
+ * ERR_PTR in case of error and should be handled using IS_ERR. Error return
+ * values can be:
+ * EINVAL:	for bad pointer
+ * ERANGE:	no match found for search
+ * ENODEV:	if device not found in list of registered devices
+ *
+ * The callers are required to call dev_pm_opp_put() for the returned OPP after
+ * use.
+ */
+struct dev_pm_opp *dev_pm_opp_find_level_floor(struct device *dev,
+					       unsigned long *level)
+{
+	return _find_key_floor(dev, level, 0, true, _read_level, NULL);
+}
+EXPORT_SYMBOL_GPL(dev_pm_opp_find_level_floor);
+
+/**
  * dev_pm_opp_find_bw_ceil() - Search for a rounded ceil bandwidth
  * @dev:	device for which we do this operation
  * @bw:	start bandwidth
diff --git a/include/linux/pm_opp.h b/include/linux/pm_opp.h
index 91f87d7..baea92f 100644
--- a/include/linux/pm_opp.h
+++ b/include/linux/pm_opp.h
@@ -144,6 +144,9 @@ struct dev_pm_opp *dev_pm_opp_find_level_exact(struct device *dev,
 struct dev_pm_opp *dev_pm_opp_find_level_ceil(struct device *dev,
 					      unsigned int *level);
 
+struct dev_pm_opp *dev_pm_opp_find_level_floor(struct device *dev,
+					       unsigned long *level);
+
 struct dev_pm_opp *dev_pm_opp_find_bw_ceil(struct device *dev,
 					   unsigned int *bw, int index);
 
@@ -314,6 +317,12 @@ static inline struct dev_pm_opp *dev_pm_opp_find_bw_ceil(struct device *dev,
 	return ERR_PTR(-EOPNOTSUPP);
 }
 
+static inline struct dev_pm_opp *dev_pm_opp_find_level_floor(struct device *dev,
+							     unsigned long *level)
+{
+	return ERR_PTR(-EOPNOTSUPP);
+}
+
 static inline struct dev_pm_opp *dev_pm_opp_find_bw_floor(struct device *dev,
 					unsigned int *bw, int index)
 {
-- 
2.7.4


  parent reply	other threads:[~2023-09-07 17:11 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-07  6:00 [PATCH v5 0/5] PCI: qcom: Add support for OPP Krishna chaitanya chundru
2023-09-07  6:00 ` [PATCH v5 1/5] dt-bindings: pci: qcom: Add opp table Krishna chaitanya chundru
2023-09-07  6:00 ` [PATCH v5 2/5] arm64: dts: qcom: sm8450: Add opp table support to PCIe Krishna chaitanya chundru
2023-09-07  9:04   ` Konrad Dybcio
2023-09-07  9:56     ` Krishna Chaitanya Chundru
2023-09-07 10:28       ` Konrad Dybcio
2023-09-28 18:38   ` Manivannan Sadhasivam
2023-10-05  8:52     ` Krishna Chaitanya Chundru
2023-09-07  6:00 ` Krishna chaitanya chundru [this message]
2023-09-27  7:14   ` [PATCH v5 3/5] opp: Add dev_pm_opp_find_level_floor() Viresh Kumar
2023-09-28  3:24     ` Krishna Chaitanya Chundru
2023-09-28  3:35     ` Krishna Chaitanya Chundru
2023-09-07  6:00 ` [PATCH v5 4/5] PCI: qcom: Return error from 'qcom_pcie_icc_update' Krishna chaitanya chundru
2023-11-01  6:30   ` Manivannan Sadhasivam
2023-09-07  6:00 ` [PATCH v5 5/5] PCI: qcom: Add OPP support to scale performance state of power domain Krishna chaitanya chundru
     [not found]   ` <20230927065324.w73ae326vs5ftlfo@vireshk-i7>
     [not found]     ` <f7a5ac7f-2857-8d30-e29c-f64c2c5f1330@quicinc.com>
2023-09-28  6:31       ` Viresh Kumar
2023-11-01  6:33   ` Manivannan Sadhasivam
2023-11-01 22:17   ` Bjorn Helgaas
2023-11-02  5:30     ` Viresh Kumar
2023-11-02 12:09       ` Bjorn Helgaas
2023-11-03  5:12         ` Viresh Kumar
2023-11-08  2:32           ` Krishna Chaitanya Chundru
2024-01-08 13:19             ` Krishna Chaitanya Chundru
2024-01-10  6:57               ` Viresh Kumar
2024-01-10  7:12                 ` Krishna Chaitanya Chundru
2024-01-10  7:38                   ` Viresh Kumar
2024-01-10 12:58                     ` Krishna Chaitanya Chundru
2024-01-11  3:32                       ` Viresh Kumar

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=1694066433-8677-4-git-send-email-quic_krichai@quicinc.com \
    --to=quic_krichai@quicinc.com \
    --cc=agross@kernel.org \
    --cc=andersson@kernel.org \
    --cc=bhelgaas@google.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=konrad.dybcio@linaro.org \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=kw@linux.com \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=lpieralisi@kernel.org \
    --cc=mani@kernel.org \
    --cc=nm@ti.com \
    --cc=quic_nitegupt@quicinc.com \
    --cc=quic_parass@quicinc.com \
    --cc=quic_ramkri@quicinc.com \
    --cc=quic_skananth@quicinc.com \
    --cc=quic_vbadigan@quicinc.com \
    --cc=rafael@kernel.org \
    --cc=robh@kernel.org \
    --cc=sboyd@kernel.org \
    --cc=vireshk@kernel.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.