/branches/gl-inet/target/linux/ipq806x/patches-4.14/0051-PM-OPP-Add-a-helper-to-get-an-opp-regulator-for-devi.patch |
@@ -0,0 +1,52 @@ |
From d06ca5e7a3cf726f5be5ffd96e93ccd798b8c09a Mon Sep 17 00:00:00 2001 |
From: Georgi Djakov <georgi.djakov@linaro.org> |
Date: Thu, 12 May 2016 14:41:33 +0300 |
Subject: [PATCH 51/69] PM / OPP: Add a helper to get an opp regulator for |
device |
|
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org> |
--- |
drivers/base/power/opp/core.c | 21 +++++++++++++++++++++ |
include/linux/pm_opp.h | 1 + |
2 files changed, 22 insertions(+) |
|
--- a/drivers/base/power/opp/core.c |
+++ b/drivers/base/power/opp/core.c |
@@ -126,6 +126,27 @@ unsigned long dev_pm_opp_get_freq(struct |
} |
EXPORT_SYMBOL_GPL(dev_pm_opp_get_freq); |
|
+struct regulator *dev_pm_opp_get_regulator(struct device *dev) |
+{ |
+ struct opp_table *opp_table; |
+ struct regulator *reg; |
+ |
+ rcu_read_lock(); |
+ |
+ opp_table = _find_opp_table(dev); |
+ if (IS_ERR(opp_table)) { |
+ rcu_read_unlock(); |
+ return ERR_CAST(opp_table); |
+ } |
+ |
+ reg = opp_table->regulators[0]; |
+ |
+ rcu_read_unlock(); |
+ |
+ return reg; |
+} |
+EXPORT_SYMBOL_GPL(dev_pm_opp_get_regulator); |
+ |
/** |
* dev_pm_opp_is_turbo() - Returns if opp is turbo OPP or not |
* @opp: opp for which turbo mode is being verified |
--- a/include/linux/pm_opp.h |
+++ b/include/linux/pm_opp.h |
@@ -85,6 +85,7 @@ void dev_pm_opp_put_opp_table(struct opp |
unsigned long dev_pm_opp_get_voltage(struct dev_pm_opp *opp); |
|
unsigned long dev_pm_opp_get_freq(struct dev_pm_opp *opp); |
+struct regulator *dev_pm_opp_get_regulator(struct device *dev); |
|
bool dev_pm_opp_is_turbo(struct dev_pm_opp *opp); |
|