diff options
author | Georgi Djakov <georgi.djakov@linaro.org> | 2015-06-01 19:23:00 +0300 |
---|---|---|
committer | Srinivas Kandagatla <srinivas.kandagatla@linaro.org> | 2015-09-01 09:22:09 +0100 |
commit | 6b1f3530ab09928ad7f09219b9e3861f455a4c92 (patch) | |
tree | 0ad84ac39218b3e777ec03841bbe5bf3d574a71c | |
parent | fe23b1fd3f3b7ae59ec7169afe9b8a27fb84e63b (diff) | |
download | linux-6b1f3530ab09928ad7f09219b9e3861f455a4c92.tar.gz |
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 fe4d4c05c3c1..0c085b71f279 100644 --- a/drivers/regulator/qcom_smd-regulator.c +++ b/drivers/regulator/qcom_smd-regulator.c @@ -22,6 +22,8 @@ #include <linux/regulator/qcom_smd-regulator.h> #include <linux/mfd/qcom-smd-rpm.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 b1201d7378d7..a71b6adc64ba 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; } |