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
1111 const struct regmap_range *ranges,1111 const struct regmap_range *ranges,
1112 unsigned int nranges);1112 unsigned int nranges);
1113 1113
1114static 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
1121static 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
1127int regmap_test_bits(struct regmap *map, unsigned int reg, unsigned int bits);
1128
1114/**1129/**
1115 * struct reg_field - Description of an register field1130 * struct reg_field - Description of an register field
1116 *1131 *
@@ -1410,6 +1425,27 @@ static inline int regmap_update_bits_base(struct regmap *map, unsigned int reg, · 293 unmodified lines
1410 return -EINVAL;1425 return -EINVAL;
1411}1426}
1412 1427
1428static 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
1435static 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
1442static 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
1413static inline int regmap_field_update_bits_base(struct regmap_field *field,1449static inline int regmap_field_update_bits_base(struct regmap_field *field,
1414 unsigned int mask, unsigned int val,1450 unsigned int mask, unsigned int val,
1415 bool *change, bool async, bool force)1451 bool *change, bool async, bool force)