From 378e8e21cc82b2ef73d5a1d892cf30f738dd39dd Mon Sep 17 00:00:00 2001 From: shengfei Xu Date: Tue, 11 Aug 2020 17:20:12 +0800 Subject: [PATCH] regulator: rk808: fix regulator_is_enabled get wrong status Signed-off-by: shengfei Xu Change-Id: Id06df1f89e582944f7b7894f0b052e7147687616 --- drivers/regulator/rk808-regulator.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/regulator/rk808-regulator.c b/drivers/regulator/rk808-regulator.c index edab847c0a89..f51123161452 100644 --- a/drivers/regulator/rk808-regulator.c +++ b/drivers/regulator/rk808-regulator.c @@ -786,9 +786,10 @@ static int rk8xx_enabled_wmsk_regmap(struct regulator_dev *rdev) if (val & rdev->desc->enable_val) return 0; - return regmap_write(rdev->regmap, - rdev->desc->enable_reg, - rdev->desc->enable_mask); + return regmap_update_bits(rdev->regmap, + rdev->desc->enable_reg, + rdev->desc->enable_mask, + rdev->desc->enable_mask); } static int rk8xx_disabled_wmsk_regmap(struct regulator_dev *rdev) @@ -801,9 +802,10 @@ static int rk8xx_disabled_wmsk_regmap(struct regulator_dev *rdev) return ret; if (val & rdev->desc->enable_val) - return regmap_write(rdev->regmap, - rdev->desc->enable_reg, - rdev->desc->disable_val); + return regmap_update_bits(rdev->regmap, + rdev->desc->enable_reg, + rdev->desc->enable_mask, + rdev->desc->disable_val); return 0; }