aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuodong Xu <guodong.xu@linaro.org>2014-08-13 07:33:38 -0400
committerMark Brown <broonie@linaro.org>2014-08-16 17:55:42 -0400
commit272e2315fac3bfca0edfa3252b8a643c425602af (patch)
treeb77a640434ef12dbd381c2f7d712d567cf73ea18
parent7d1311b93e58ed55f3a31cc8f94c4b8fe988a2b9 (diff)
regulator: core: add const qualifier to ops in struct regulator_desc
struct regulator_ops *ops is a member in struct regulator_desc, which gets its value from individual regulator driver upon regulator_register() and is used by regulator core APIs. It's not allowed for regulator core to modify any of these callbacks in *ops. Add 'const' qualifier to enforce that. Signed-off-by: Guodong Xu <guodong.xu@linaro.org> Signed-off-by: Mark Brown <broonie@linaro.org>
-rw-r--r--drivers/regulator/core.c24
-rw-r--r--include/linux/regulator/driver.h2
2 files changed, 13 insertions, 13 deletions
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
index a3c3785901f5..052e7f1f011d 100644
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -839,7 +839,7 @@ static void print_constraints(struct regulator_dev *rdev)
839static int machine_constraints_voltage(struct regulator_dev *rdev, 839static int machine_constraints_voltage(struct regulator_dev *rdev,
840 struct regulation_constraints *constraints) 840 struct regulation_constraints *constraints)
841{ 841{
842 struct regulator_ops *ops = rdev->desc->ops; 842 const struct regulator_ops *ops = rdev->desc->ops;
843 int ret; 843 int ret;
844 844
845 /* do we need to apply the constraint voltage */ 845 /* do we need to apply the constraint voltage */
@@ -938,7 +938,7 @@ static int machine_constraints_voltage(struct regulator_dev *rdev,
938static int machine_constraints_current(struct regulator_dev *rdev, 938static int machine_constraints_current(struct regulator_dev *rdev,
939 struct regulation_constraints *constraints) 939 struct regulation_constraints *constraints)
940{ 940{
941 struct regulator_ops *ops = rdev->desc->ops; 941 const struct regulator_ops *ops = rdev->desc->ops;
942 int ret; 942 int ret;
943 943
944 if (!constraints->min_uA && !constraints->max_uA) 944 if (!constraints->min_uA && !constraints->max_uA)
@@ -982,7 +982,7 @@ static int set_machine_constraints(struct regulator_dev *rdev,
982 const struct regulation_constraints *constraints) 982 const struct regulation_constraints *constraints)
983{ 983{
984 int ret = 0; 984 int ret = 0;
985 struct regulator_ops *ops = rdev->desc->ops; 985 const struct regulator_ops *ops = rdev->desc->ops;
986 986
987 if (constraints) 987 if (constraints)
988 rdev->constraints = kmemdup(constraints, sizeof(*constraints), 988 rdev->constraints = kmemdup(constraints, sizeof(*constraints),
@@ -2208,9 +2208,9 @@ EXPORT_SYMBOL_GPL(regulator_count_voltages);
2208 */ 2208 */
2209int regulator_list_voltage(struct regulator *regulator, unsigned selector) 2209int regulator_list_voltage(struct regulator *regulator, unsigned selector)
2210{ 2210{
2211 struct regulator_dev *rdev = regulator->rdev; 2211 struct regulator_dev *rdev = regulator->rdev;
2212 struct regulator_ops *ops = rdev->desc->ops; 2212 const struct regulator_ops *ops = rdev->desc->ops;
2213 int ret; 2213 int ret;
2214 2214
2215 if (rdev->desc->fixed_uV && rdev->desc->n_voltages == 1 && !selector) 2215 if (rdev->desc->fixed_uV && rdev->desc->n_voltages == 1 && !selector)
2216 return rdev->desc->fixed_uV; 2216 return rdev->desc->fixed_uV;
@@ -2572,8 +2572,8 @@ EXPORT_SYMBOL_GPL(regulator_set_voltage);
2572int regulator_set_voltage_time(struct regulator *regulator, 2572int regulator_set_voltage_time(struct regulator *regulator,
2573 int old_uV, int new_uV) 2573 int old_uV, int new_uV)
2574{ 2574{
2575 struct regulator_dev *rdev = regulator->rdev; 2575 struct regulator_dev *rdev = regulator->rdev;
2576 struct regulator_ops *ops = rdev->desc->ops; 2576 const struct regulator_ops *ops = rdev->desc->ops;
2577 int old_sel = -1; 2577 int old_sel = -1;
2578 int new_sel = -1; 2578 int new_sel = -1;
2579 int voltage; 2579 int voltage;
@@ -3336,9 +3336,9 @@ EXPORT_SYMBOL_GPL(regulator_mode_to_status);
3336 */ 3336 */
3337static int add_regulator_attributes(struct regulator_dev *rdev) 3337static int add_regulator_attributes(struct regulator_dev *rdev)
3338{ 3338{
3339 struct device *dev = &rdev->dev; 3339 struct device *dev = &rdev->dev;
3340 struct regulator_ops *ops = rdev->desc->ops; 3340 const struct regulator_ops *ops = rdev->desc->ops;
3341 int status = 0; 3341 int status = 0;
3342 3342
3343 /* some attributes need specific methods to be displayed */ 3343 /* some attributes need specific methods to be displayed */
3344 if ((ops->get_voltage && ops->get_voltage(rdev) >= 0) || 3344 if ((ops->get_voltage && ops->get_voltage(rdev) >= 0) ||
@@ -3905,7 +3905,7 @@ core_initcall(regulator_init);
3905static int __init regulator_init_complete(void) 3905static int __init regulator_init_complete(void)
3906{ 3906{
3907 struct regulator_dev *rdev; 3907 struct regulator_dev *rdev;
3908 struct regulator_ops *ops; 3908 const struct regulator_ops *ops;
3909 struct regulation_constraints *c; 3909 struct regulation_constraints *c;
3910 int enabled, ret; 3910 int enabled, ret;
3911 3911
diff --git a/include/linux/regulator/driver.h b/include/linux/regulator/driver.h
index bbe03a1924c0..4b628139a9cb 100644
--- a/include/linux/regulator/driver.h
+++ b/include/linux/regulator/driver.h
@@ -245,7 +245,7 @@ struct regulator_desc {
245 int id; 245 int id;
246 bool continuous_voltage_range; 246 bool continuous_voltage_range;
247 unsigned n_voltages; 247 unsigned n_voltages;
248 struct regulator_ops *ops; 248 const struct regulator_ops *ops;
249 int irq; 249 int irq;
250 enum regulator_type type; 250 enum regulator_type type;
251 struct module *owner; 251 struct module *owner;