aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorBartosz Golaszewski <brgl@bgdev.pl>2024-11-08 16:07:37 +0200
committerMark Brown <broonie@kernel.org>2024-11-08 15:39:31 +0000
commitd1f4390dd28ba110f232615dc4610ac1bb2f39f2 (patch)
treef80b17e1e056830e8b0d470b36635af9a06d2b95
parentregmap: irq: Set lockdep class for hierarchical IRQ domains (diff)
downloadwireguard-linux-d1f4390dd28ba110f232615dc4610ac1bb2f39f2.tar.xz
wireguard-linux-d1f4390dd28ba110f232615dc4610ac1bb2f39f2.zip
regmap: provide regmap_assign_bits()
Add another bits helper to regmap API: this one sets given bits if value is true and clears them if it's false. Suggested-by: Andy Shevchenko <andy.shevchenko@gmail.com> Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> Link: https://patch.msgid.link/20241108-assign-bits-v1-1-382790562d99@ideasonboard.com Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r--include/linux/regmap.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/include/linux/regmap.h b/include/linux/regmap.h
index da07584284ab..0d5b74f9bd32 100644
--- a/include/linux/regmap.h
+++ b/include/linux/regmap.h
@@ -1335,6 +1335,15 @@ static inline int regmap_clear_bits(struct regmap *map,
return regmap_update_bits_base(map, reg, bits, 0, NULL, false, false);
}
+static inline int regmap_assign_bits(struct regmap *map, unsigned int reg,
+ unsigned int bits, bool value)
+{
+ if (value)
+ return regmap_set_bits(map, reg, bits);
+ else
+ return regmap_clear_bits(map, reg, bits);
+}
+
int regmap_test_bits(struct regmap *map, unsigned int reg, unsigned int bits);
/**
@@ -1803,6 +1812,13 @@ static inline int regmap_clear_bits(struct regmap *map,
return -EINVAL;
}
+static inline int regmap_assign_bits(struct regmap *map, unsigned int reg,
+ unsigned int bits, bool value)
+{
+ WARN_ONCE(1, "regmap API is disabled");
+ return -EINVAL;
+}
+
static inline int regmap_test_bits(struct regmap *map,
unsigned int reg, unsigned int bits)
{