--- a/drivers/base/power/opp/core.c
+++ b/drivers/base/power/opp/core.c
-@@ -1605,6 +1605,83 @@ unlock:
+@@ -1605,6 +1605,83 @@ put_table:
}
-
+
/**
+ * dev_pm_opp_adjust_voltage() - helper to change the voltage of an OPP
+ * @dev: device for which we do this operation
--- a/include/linux/pm_opp.h
+++ b/include/linux/pm_opp.h
@@ -25,6 +25,7 @@ struct opp_table;
-
+
enum dev_pm_opp_event {
- OPP_EVENT_ADD, OPP_EVENT_REMOVE, OPP_EVENT_ENABLE, OPP_EVENT_DISABLE,
+ OPP_EVENT_ADD, OPP_EVENT_REMOVE, OPP_EVENT_ENABLE, OPP_EVENT_DISABLE,
+ OPP_EVENT_ADJUST_VOLTAGE,
};
-
+
/**
@@ -108,6 +109,9 @@ int dev_pm_opp_add(struct device *dev, u
- unsigned long u_volt);
+ unsigned long u_volt);
void dev_pm_opp_remove(struct device *dev, unsigned long freq);
-
+
+int dev_pm_opp_adjust_voltage(struct device *dev, unsigned long freq,
+ unsigned long u_volt);
+
int dev_pm_opp_enable(struct device *dev, unsigned long freq);
-
+
int dev_pm_opp_disable(struct device *dev, unsigned long freq);
@@ -208,6 +212,13 @@ static inline void dev_pm_opp_remove(str
{
}
-
+
+static inline int
+dev_pm_opp_adjust_voltage(struct device *dev, unsigned long freq,
+ unsigned long u_volt)
+
static inline int dev_pm_opp_enable(struct device *dev, unsigned long freq)
{
- return 0;
+ return 0;