]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
PM / OPP: Add a helper to get an opp regulator for device
authorGeorgi Djakov <georgi.djakov@linaro.org>
Thu, 12 May 2016 11:41:33 +0000 (14:41 +0300)
committerThadeu Lima de Souza Cascardo <cascardo@canonical.com>
Wed, 11 Apr 2018 16:43:52 +0000 (13:43 -0300)
BugLink: http://bugs.launchpad.net/bugs/1763040
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
(cherry picked from commit 0482a1c2fd22ac6d6898fd0f42e846c74d5d6c5e
http://git.linaro.org/landing-teams/working/qualcomm/kernel.git release/qcomlt-4.14)
Signed-off-by: Paolo Pisati <paolo.pisati@canonical.com>
Acked-by: Seth Forshee <seth.forshee@canonical.com>
Acked-by: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
drivers/opp/core.c
include/linux/pm_opp.h

index efaace01a5ecdccb376d105541a283ee07be6a0a..100687da6f00715631f4c6ee79527548406f7bc0 100644 (file)
@@ -127,6 +127,27 @@ unsigned long dev_pm_opp_get_freq(struct dev_pm_opp *opp)
 }
 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
index 91e5405a7b8e440b266fecd431210fa2998635d6..492ac815adb83472effcfc92fe1361b1d69924f9 100644 (file)
@@ -85,6 +85,7 @@ void dev_pm_opp_put_opp_table(struct opp_table *opp_table);
 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);