Subject: Re: linux-next: build failure after merge of the mfd tree

From: Kuninori Morimoto <[email-masked]>
Date: Tue, 1 Mar 2016 01:19:59 +0000

Hi Stephen, Lee

> After merging the mfd tree, today's linux-next build (x86_64 allmodconfig)
> failed like this:
> 
> drivers/regulator/tps65086-regulator.c:194:9: error: implicit declaration of function 'regmap_write_bits' [-Werror=implicit-function-declaration]
>    ret = regmap_write_bits(config->regmap,
>          ^
> 
> Caused by commit
> 
>   23b92e4cf5fd ("regmap: remove regmap_write_bits()")
> 
> from the sound-asoc & regmap trees.
> 
> I am not sure why this is suddenly exposed by the mfd tree, but grep
> would have been useful when the regmap tree patch was applied.
> 
> I have reverted that regmap commit for today.

Oops, it is my fault. Can you check/test this patch ?

----------------
From: Kuninori Morimoto <[email-masked]>
Date: Tue, 1 Mar 2016 10:12:20 +0900
Subject: [PATCH] regmap: add regmap_force_update_bits()

commit 23b92e4c ("regmap: remove regmap_write_bits()")
removed regmap_write_bits(), we can use regmap_force_update_bits()
instead of it.

Signed-off-by: Kuninori Morimoto <[email-masked]>
---
 drivers/regulator/tps65086-regulator.c | 2 +-
 include/linux/regmap.h                 | 2 ++
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/regulator/tps65086-regulator.c b/drivers/regulator/tps65086-regulator.c
index 33f389d..e78b688 100644
--- a/drivers/regulator/tps65086-regulator.c
+++ b/drivers/regulator/tps65086-regulator.c
@@ -191,7 +191,7 @@ static int tps65086_of_parse_cb(struct device_node *dev,
 
 	/* Check for decay mode */
 	if (desc->id <= BUCK6 && of_property_read_bool(config->of_node, "ti,regulator-decay")) {
-		ret = regmap_write_bits(config->regmap,
+		ret = regmap_force_update_bits(config->regmap,
 					regulators[desc->id].decay_reg,
 					regulators[desc->id].decay_mask,
 					regulators[desc->id].decay_mask);
diff --git a/include/linux/regmap.h b/include/linux/regmap.h
index 7449792..d6cde49 100644
--- a/include/linux/regmap.h
+++ b/include/linux/regmap.h
@@ -67,6 +67,8 @@ struct reg_sequence {
 
 #define	regmap_update_bits(map, reg, mask, val) \
 	regmap_update_bits_base(map, reg, mask, val, NULL, false, false)
+#define	regmap_force_update_bits(map, reg, mask, val) \
+	regmap_update_bits_base(map, reg, mask, val, NULL, false, true)
 #define	regmap_update_bits_async(map, reg, mask, val)\
 	regmap_update_bits_base(map, reg, mask, val, NULL, true, false)
 #define	regmap_update_bits_check(map, reg, mask, val, change)\
-- 
----------------

Best regards
---
Kuninori Morimoto