History

regmap: provide helpers for simple bit operations

In many instances regmap_update_bits() is used for simple bit setting and clearing. In these cases the last argument is redundant and we can hide it with a static inline function. This adds three new helpers for simple bit operations: set_bits, clear_bits and test_bits (the last one defined as a regular function).

Bartosz Golaszewski committed 6 years ago

Commit aa2ff9d1 parent 8f3d9f32 files · +58 −0Browse files

Showing the changes to include/linux (1 of 2 files). Show all

Unified · Split

include/linux/regmap.h+36−0
@@ -1111,6 +1111,21 @@ bool regmap_reg_in_ranges(unsigned int reg, · 1110 unmodified lines
11111111 const struct regmap_range *ranges,
11121112 unsigned int nranges);
11131113
1114+static inline int regmap_set_bits(struct regmap *map,
1115+ unsigned int reg, unsigned int bits)
1116+{
1117+ return regmap_update_bits_base(map, reg, bits, bits,
1118+ NULL, false, false);
1119+}
1120+
1121+static inline int regmap_clear_bits(struct regmap *map,
1122+ unsigned int reg, unsigned int bits)
1123+{
1124+ return regmap_update_bits_base(map, reg, bits, 0, NULL, false, false);
1125+}
1126+
1127+int regmap_test_bits(struct regmap *map, unsigned int reg, unsigned int bits);
1128+
11141129 /**
11151130 * struct reg_field - Description of an register field
11161131 *
@@ -1410,6 +1425,27 @@ static inline int regmap_update_bits_base(struct regmap *map, unsigned int reg, · 293 unmodified lines
14101425 return -EINVAL;
14111426 }
14121427
1428+static inline int regmap_set_bits(struct regmap *map,
1429+ unsigned int reg, unsigned int bits)
1430+{
1431+ WARN_ONCE(1, "regmap API is disabled");
1432+ return -EINVAL;
1433+}
1434+
1435+static inline int regmap_clear_bits(struct regmap *map,
1436+ unsigned int reg, unsigned int bits)
1437+{
1438+ WARN_ONCE(1, "regmap API is disabled");
1439+ return -EINVAL;
1440+}
1441+
1442+static inline int regmap_test_bits(struct regmap *map,
1443+ unsigned int reg, unsigned int bits)
1444+{
1445+ WARN_ONCE(1, "regmap API is disabled");
1446+ return -EINVAL;
1447+}
1448+
14131449 static inline int regmap_field_update_bits_base(struct regmap_field *field,
14141450 unsigned int mask, unsigned int val,
14151451 bool *change, bool async, bool force)