From: Stephen Boyd <sboyd@codeaurora.org>
To: Viresh Kumar <viresh.kumar@linaro.org>
Cc: Rafael Wysocki <rjw@rjwysocki.net>,
Viresh Kumar <vireshk@kernel.org>, Nishanth Menon <nm@ti.com>,
linaro-kernel@lists.linaro.org, linux-pm@vger.kernel.org,
Vincent Guittot <vincent.guittot@linaro.org>
Subject: Re: [PATCH 08/10] PM / OPP: Rename dev_pm_opp_get_suspend_opp() and return OPP rate
Date: Tue, 6 Dec 2016 17:21:41 -0800 [thread overview]
Message-ID: <20161207012141.GL4388@codeaurora.org> (raw)
In-Reply-To: <1da9ba0dd518f51fa73ca33e06ba868a267fb5d6.1481015522.git.viresh.kumar@linaro.org>
On 12/06, Viresh Kumar wrote:
> There is only one user of dev_pm_opp_get_suspend_opp() and that uses it
> to get the OPP rate for the suspend_opp.
>
> Rename dev_pm_opp_get_suspend_opp() as dev_pm_opp_get_suspend_opp_freq()
> and return the rate directly from it.
>
> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
> ---
> drivers/base/power/opp/core.c | 27 +++++++++++++--------------
> drivers/cpufreq/cpufreq-dt.c | 7 +------
> include/linux/pm_opp.h | 6 +++---
> 3 files changed, 17 insertions(+), 23 deletions(-)
>
> diff --git a/drivers/base/power/opp/core.c b/drivers/base/power/opp/core.c
> index 6bcbb64a5582..6fd098618683 100644
> --- a/drivers/base/power/opp/core.c
> +++ b/drivers/base/power/opp/core.c
> @@ -328,32 +328,31 @@ unsigned long dev_pm_opp_get_max_transition_latency(struct device *dev)
> EXPORT_SYMBOL_GPL(dev_pm_opp_get_max_transition_latency);
>
> /**
> - * dev_pm_opp_get_suspend_opp() - Get suspend opp
> + * dev_pm_opp_get_suspend_opp_freq() - Get frequency of suspend opp
Please indicate units of frequency.
> * @dev: device for which we do this operation
> *
> - * Return: This function returns pointer to the suspend opp if it is
> - * defined and available, otherwise it returns NULL.
> - *
> - * Locking: This function must be called under rcu_read_lock(). opp is a rcu
> - * protected pointer. The reason for the same is that the opp pointer which is
> - * returned will remain valid for use with opp_get_{voltage, freq} only while
> - * under the locked area. The pointer returned must be used prior to unlocking
> - * with rcu_read_unlock() to maintain the integrity of the pointer.
> + * Return: This function returns the frequency of the OPP marked as suspend_opp
> + * if one is available, else returns 0;
> */
> -struct dev_pm_opp *dev_pm_opp_get_suspend_opp(struct device *dev)
> +unsigned long dev_pm_opp_get_suspend_opp_freq(struct device *dev)
> {
> struct opp_table *opp_table;
> + unsigned long freq = 0;
>
> - opp_rcu_lockdep_assert();
> + rcu_read_lock();
>
> opp_table = _find_opp_table(dev);
> if (IS_ERR(opp_table) || !opp_table->suspend_opp ||
> !opp_table->suspend_opp->available)
> - return NULL;
> + goto unlock;
>
> - return opp_table->suspend_opp;
> + freq = dev_pm_opp_get_freq(opp_table->suspend_opp) / 1000;
Why do we include the / 1000? Perhaps we should just return freq
and have the caller divide.
> +
> +unlock:
> + rcu_read_unlock();
> + return freq;
> }
> -EXPORT_SYMBOL_GPL(dev_pm_opp_get_suspend_opp);
> +EXPORT_SYMBOL_GPL(dev_pm_opp_get_suspend_opp_freq);
>
> /**
> * dev_pm_opp_get_opp_count() - Get number of opps available in the opp table
> @@ -159,9 +159,9 @@ static inline unsigned long dev_pm_opp_get_max_transition_latency(struct device
> return 0;
> }
>
> -static inline struct dev_pm_opp *dev_pm_opp_get_suspend_opp(struct device *dev)
> +static inline unsigned long dev_pm_opp_get_suspend_opp_freq(struct device *dev)
> {
> - return NULL;
> + return 0;
Dividing 0 by anything is just 0 anyway.
> }
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
next prev parent reply other threads:[~2016-12-07 1:21 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-06 9:15 [PATCH 00/10] PM / OPP: Fixes and cleanups Viresh Kumar
2016-12-06 9:15 ` [PATCH 01/10] PM / OPP: Fix memory leak while adding duplicate OPPs Viresh Kumar
2016-12-07 1:09 ` Stephen Boyd
2016-12-07 3:23 ` Viresh Kumar
2016-12-06 9:15 ` [PATCH 02/10] PM / OPP: Remove useless TODO Viresh Kumar
2016-12-07 1:10 ` Stephen Boyd
2016-12-07 3:24 ` Viresh Kumar
2016-12-06 9:15 ` [PATCH 03/10] PM / OPP: Rename _allocate_opp() to _opp_allocate() Viresh Kumar
2016-12-07 1:10 ` Stephen Boyd
2016-12-06 9:15 ` [PATCH 04/10] PM / OPP: Error out on failing to add static OPPs for v1 bindings Viresh Kumar
2016-12-07 1:17 ` Stephen Boyd
2016-12-07 3:25 ` Viresh Kumar
2016-12-07 21:13 ` Stephen Boyd
2016-12-08 3:30 ` Viresh Kumar
2016-12-08 6:39 ` Shawn Guo
2016-12-08 6:45 ` Viresh Kumar
2016-12-08 14:27 ` Shawn Guo
2016-12-08 14:47 ` Viresh Kumar
2016-12-06 9:15 ` [PATCH 05/10] PM / OPP: Add light weight _opp_free() routine Viresh Kumar
2016-12-07 1:12 ` Stephen Boyd
2016-12-06 9:15 ` [PATCH 06/10] PM / OPP: Rename and split _dev_pm_opp_remove_table() Viresh Kumar
2016-12-07 1:19 ` Stephen Boyd
2016-12-06 9:15 ` [PATCH 07/10] PM / OPP: Don't allocate OPP table from _opp_allocate() Viresh Kumar
2016-12-07 1:02 ` Stephen Boyd
2016-12-07 4:17 ` Viresh Kumar
2016-12-07 22:05 ` Stephen Boyd
2016-12-08 3:45 ` Viresh Kumar
2016-12-22 0:43 ` Stephen Boyd
2016-12-06 9:16 ` [PATCH 08/10] PM / OPP: Rename dev_pm_opp_get_suspend_opp() and return OPP rate Viresh Kumar
2016-12-07 1:21 ` Stephen Boyd [this message]
2016-12-07 4:20 ` Viresh Kumar
2016-12-06 9:16 ` [PATCH 09/10] PM / OPP: Don't expose srcu_head to register notifiers Viresh Kumar
2016-12-07 1:22 ` Stephen Boyd
2016-12-06 9:16 ` [PATCH 10/10] PM / OPP: Split out part of _add_opp_table() and _remove_opp_table() Viresh Kumar
2016-12-07 1:24 ` Stephen Boyd
2016-12-07 4:25 ` Viresh Kumar
[not found] ` <CGME20161206091647epcas4p1823f471816de0ef953123a8fbdac4b1f@epcas4p1.samsung.com>
2016-12-07 0:29 ` [PATCH 09/10] PM / OPP: Don't expose srcu_head to register notifiers MyungJoo Ham
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=20161207012141.GL4388@codeaurora.org \
--to=sboyd@codeaurora.org \
--cc=linaro-kernel@lists.linaro.org \
--cc=linux-pm@vger.kernel.org \
--cc=nm@ti.com \
--cc=rjw@rjwysocki.net \
--cc=vincent.guittot@linaro.org \
--cc=viresh.kumar@linaro.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.