diff options
author | Georgi Djakov <georgi.djakov@linaro.org> | 2015-06-01 19:23:00 +0300 |
---|---|---|
committer | Srinivas Kandagatla <srinivas.kandagatla@linaro.org> | 2016-05-17 18:02:42 +0100 |
commit | 8b8ef89a960f3567837b5b50c086ba0c1c6f2991 (patch) | |
tree | a09120da9684dde398636451f3b56d7537160e76 | |
parent | f7db9e57c1eabb7a2501b1d74683f83e06975aa0 (diff) |
regulator: smd: Make set_{corner,floor} work with regulator struct
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
-rw-r--r-- | drivers/regulator/qcom_smd-regulator.c | 15 | ||||
-rw-r--r-- | include/linux/regulator/qcom_smd-regulator.h | 8 |
2 files changed, 13 insertions, 10 deletions
diff --git a/drivers/regulator/qcom_smd-regulator.c b/drivers/regulator/qcom_smd-regulator.c index 3cc8786fe94bc..dc0be23dcd3ac 100644 --- a/drivers/regulator/qcom_smd-regulator.c +++ b/drivers/regulator/qcom_smd-regulator.c @@ -22,6 +22,8 @@ #include <linux/soc/qcom/smd-rpm.h> #include <linux/regulator/qcom_smd-regulator.h> +#include "internal.h" + struct qcom_rpm_reg { struct device *dev; @@ -62,9 +64,9 @@ static int rpm_reg_write_active(struct qcom_rpm_reg *vreg, req, size); } -int qcom_rpm_set_floor(struct regulator_dev *rdev, - int floor) +int qcom_rpm_set_floor(struct regulator *regulator, int floor) { + struct regulator_dev *rdev = regulator->rdev; struct qcom_rpm_reg *vreg = rdev_get_drvdata(rdev); struct rpm_regulator_req req; int ret; @@ -77,16 +79,16 @@ int qcom_rpm_set_floor(struct regulator_dev *rdev, return -EINVAL; ret = rpm_reg_write_active(vreg, &req, sizeof(req)); - if (!ret) + if (ret) dev_err(rdev_get_dev(rdev), "Failed to set floor %d\n", floor); return ret; } EXPORT_SYMBOL(qcom_rpm_set_floor); -int qcom_rpm_set_corner(struct regulator_dev *rdev, - int corner) +int qcom_rpm_set_corner(struct regulator *regulator, int corner) { + struct regulator_dev *rdev = regulator->rdev; struct qcom_rpm_reg *vreg = rdev_get_drvdata(rdev); struct rpm_regulator_req req; int ret; @@ -98,8 +100,9 @@ int qcom_rpm_set_corner(struct regulator_dev *rdev, if (corner < RPM_MIN_FLOOR_CORNER || corner > RPM_MAX_FLOOR_CORNER) return -EINVAL; + pr_info("Set corner to %d\n", corner); ret = rpm_reg_write_active(vreg, &req, sizeof(req)); - if (!ret) + if (ret) dev_err(rdev_get_dev(rdev), "Failed to set corner %d\n", corner); return ret; diff --git a/include/linux/regulator/qcom_smd-regulator.h b/include/linux/regulator/qcom_smd-regulator.h index b1201d7378d77..a71b6adc64ba8 100644 --- a/include/linux/regulator/qcom_smd-regulator.h +++ b/include/linux/regulator/qcom_smd-regulator.h @@ -13,15 +13,15 @@ #define __QCOM_SMD_REGULATOR_H_ #ifdef CONFIG_REGULATOR_QCOM_SMD_RPM -int qcom_rpm_set_floor(struct regulator_dev *rdev, int floor); -int qcom_rpm_set_corner(struct regulator_dev *rdev, int corner); +int qcom_rpm_set_floor(struct regulator *regulator, int floor); +int qcom_rpm_set_corner(struct regulator *regulator, int corner); #else -static inline int qcom_rpm_set_floor(struct regulator_dev *rdev, int floor) +static inline int qcom_rpm_set_floor(struct regulator *regulator, int floor) { return -EINVAL; } -static inline int qcom_rpm_set_corner(struct regulator_dev *rdev, int floor) +static inline int qcom_rpm_set_corner(struct regulator *regulator, int corner) { return -EINVAL; } |