[PATCH 4/4] PM / OPP: export symbol find_device_opp
Shawn Guo
shawn.guo at linaro.org
Thu Dec 19 00:54:11 EST 2013
On Wed, Dec 18, 2013 at 03:50:56PM -0800, John Tobias wrote:
> imx6q-cpufreq.c need to have access to find_device_opp function, in order
> to verify if the platform supplied an OPP table or not.
I think we can figure it out by checking the return of
dev_pm_opp_get_opp_count() call, so that we can save this patch
completely.
Note, imx6q-cpufreq driver already calls dev_pm_opp_get_opp_count().
You need to change the way how it handles the return.
Shawn
>
> As an example here are the imx6q and imx6sl.
> imx6q supplied the opp table due to some board specific requirement.
> While, imx6sl doesn't have an opp table defined.
>
> Signed-off-by: John Tobias <john.tobias.ph at gmail.com>
> ---
> drivers/base/power/opp.c | 3 ++-
> include/linux/pm_opp.h | 7 +++++++
> 2 files changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/base/power/opp.c b/drivers/base/power/opp.c
> index fa41874..d758e42 100644
> --- a/drivers/base/power/opp.c
> +++ b/drivers/base/power/opp.c
> @@ -116,7 +116,7 @@ static DEFINE_MUTEX(dev_opp_list_lock);
> * is a RCU protected pointer. This means that device_opp is valid as long
> * as we are under RCU lock.
> */
> -static struct device_opp *find_device_opp(struct device *dev)
> +struct device_opp *find_device_opp(struct device *dev)
> {
> struct device_opp *tmp_dev_opp, *dev_opp = ERR_PTR(-ENODEV);
>
> @@ -134,6 +134,7 @@ static struct device_opp *find_device_opp(struct device *dev)
>
> return dev_opp;
> }
> +EXPORT_SYMBOL_GPL(find_device_opp);
>
> /**
> * dev_pm_opp_get_voltage() - Gets the voltage corresponding to an available opp
> diff --git a/include/linux/pm_opp.h b/include/linux/pm_opp.h
> index 5151b00..cd13385 100644
> --- a/include/linux/pm_opp.h
> +++ b/include/linux/pm_opp.h
> @@ -27,6 +27,8 @@ enum dev_pm_opp_event {
>
> #if defined(CONFIG_PM_OPP)
>
> +struct device_opp *find_device_opp(struct device *dev);
> +
> unsigned long dev_pm_opp_get_voltage(struct dev_pm_opp *opp);
>
> unsigned long dev_pm_opp_get_freq(struct dev_pm_opp *opp);
> @@ -52,6 +54,11 @@ int dev_pm_opp_disable(struct device *dev, unsigned long freq);
>
> struct srcu_notifier_head *dev_pm_opp_get_notifier(struct device *dev);
> #else
> +static inline struct device_opp *find_device_opp(struct device *dev)
> +{
> + return ERR_PTR(-EINVAL);
> +}
> +
> static inline unsigned long dev_pm_opp_get_voltage(struct dev_pm_opp *opp)
> {
> return 0;
> --
> 1.8.3.2
>
More information about the linux-arm-kernel
mailing list