53 lines
1.4 KiB
Diff
53 lines
1.4 KiB
Diff
|
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
|
||
|
@@ -151,6 +151,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->regulator;
|
||
|
+
|
||
|
+ 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
|
||
|
@@ -31,6 +31,7 @@ enum dev_pm_opp_event {
|
||
|
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);
|
||
|
|