Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0764c604 authored by Dave Gerlach's avatar Dave Gerlach Committed by Rafael J. Wysocki
Browse files

PM / OPP: Expose _of_get_opp_desc_node as dev_pm_opp API



Rename _of_get_opp_desc_node to dev_pm_opp_of_get_opp_desc_node and add it
to include/linux/pm_opp.h to allow other drivers, such as platform OPP
and cpufreq drivers, to make use of it.

Acked-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: default avatarDave Gerlach <d-gerlach@ti.com>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 6ac42397
Loading
Loading
Loading
Loading
+5 −4
Original line number Original line Diff line number Diff line
@@ -243,7 +243,7 @@ void dev_pm_opp_of_remove_table(struct device *dev)
EXPORT_SYMBOL_GPL(dev_pm_opp_of_remove_table);
EXPORT_SYMBOL_GPL(dev_pm_opp_of_remove_table);


/* Returns opp descriptor node for a device, caller must do of_node_put() */
/* Returns opp descriptor node for a device, caller must do of_node_put() */
static struct device_node *_of_get_opp_desc_node(struct device *dev)
struct device_node *dev_pm_opp_of_get_opp_desc_node(struct device *dev)
{
{
	/*
	/*
	 * There should be only ONE phandle present in "operating-points-v2"
	 * There should be only ONE phandle present in "operating-points-v2"
@@ -252,6 +252,7 @@ static struct device_node *_of_get_opp_desc_node(struct device *dev)


	return of_parse_phandle(dev->of_node, "operating-points-v2", 0);
	return of_parse_phandle(dev->of_node, "operating-points-v2", 0);
}
}
EXPORT_SYMBOL_GPL(dev_pm_opp_of_get_opp_desc_node);


/**
/**
 * _opp_add_static_v2() - Allocate static OPPs (As per 'v2' DT bindings)
 * _opp_add_static_v2() - Allocate static OPPs (As per 'v2' DT bindings)
@@ -478,7 +479,7 @@ int dev_pm_opp_of_add_table(struct device *dev)
	 * OPPs have two version of bindings now. The older one is deprecated,
	 * OPPs have two version of bindings now. The older one is deprecated,
	 * try for the new binding first.
	 * try for the new binding first.
	 */
	 */
	opp_np = _of_get_opp_desc_node(dev);
	opp_np = dev_pm_opp_of_get_opp_desc_node(dev);
	if (!opp_np) {
	if (!opp_np) {
		/*
		/*
		 * Try old-deprecated bindings for backward compatibility with
		 * Try old-deprecated bindings for backward compatibility with
@@ -570,7 +571,7 @@ int dev_pm_opp_of_get_sharing_cpus(struct device *cpu_dev,
	int cpu, ret = 0;
	int cpu, ret = 0;


	/* Get OPP descriptor node */
	/* Get OPP descriptor node */
	np = _of_get_opp_desc_node(cpu_dev);
	np = dev_pm_opp_of_get_opp_desc_node(cpu_dev);
	if (!np) {
	if (!np) {
		dev_dbg(cpu_dev, "%s: Couldn't find opp node.\n", __func__);
		dev_dbg(cpu_dev, "%s: Couldn't find opp node.\n", __func__);
		return -ENOENT;
		return -ENOENT;
@@ -595,7 +596,7 @@ int dev_pm_opp_of_get_sharing_cpus(struct device *cpu_dev,
		}
		}


		/* Get OPP descriptor node */
		/* Get OPP descriptor node */
		tmp_np = _of_get_opp_desc_node(tcpu_dev);
		tmp_np = dev_pm_opp_of_get_opp_desc_node(tcpu_dev);
		if (!tmp_np) {
		if (!tmp_np) {
			dev_err(tcpu_dev, "%s: Couldn't find opp node.\n",
			dev_err(tcpu_dev, "%s: Couldn't find opp node.\n",
				__func__);
				__func__);
+6 −0
Original line number Original line Diff line number Diff line
@@ -288,6 +288,7 @@ void dev_pm_opp_of_remove_table(struct device *dev);
int dev_pm_opp_of_cpumask_add_table(const struct cpumask *cpumask);
int dev_pm_opp_of_cpumask_add_table(const struct cpumask *cpumask);
void dev_pm_opp_of_cpumask_remove_table(const struct cpumask *cpumask);
void dev_pm_opp_of_cpumask_remove_table(const struct cpumask *cpumask);
int dev_pm_opp_of_get_sharing_cpus(struct device *cpu_dev, struct cpumask *cpumask);
int dev_pm_opp_of_get_sharing_cpus(struct device *cpu_dev, struct cpumask *cpumask);
struct device_node *dev_pm_opp_of_get_opp_desc_node(struct device *dev);
#else
#else
static inline int dev_pm_opp_of_add_table(struct device *dev)
static inline int dev_pm_opp_of_add_table(struct device *dev)
{
{
@@ -311,6 +312,11 @@ static inline int dev_pm_opp_of_get_sharing_cpus(struct device *cpu_dev, struct
{
{
	return -ENOTSUPP;
	return -ENOTSUPP;
}
}

static inline struct device_node *dev_pm_opp_of_get_opp_desc_node(struct device *dev)
{
	return NULL;
}
#endif
#endif


#endif		/* __LINUX_OPP_H__ */
#endif		/* __LINUX_OPP_H__ */