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

Kuninori Morimoto
2016-03-01T01:19:59Z

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 <kuninori.morimoto.gx@renesas.com>
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 <kuninori.morimoto.gx@renesas.com>
---
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