Skip to content

Commit 1c96a2f

Browse files
dpfreybroonie
authored andcommitted
regmap: split up regmap_config.use_single_rw
Split regmap_config.use_single_rw into use_single_read and use_single_write. This change enables drivers of devices which only support bulk operations in one direction to use the regmap_bulk_*() functions for both directions and have their bulk operation split into single operations only when necessary. Update all struct regmap_config instances where use_single_rw==true to instead set both use_single_read and use_single_write. No attempt was made to evaluate whether it is possible to set only one of use_single_read or use_single_write. Signed-off-by: David Frey <[email protected]> Signed-off-by: Mark Brown <[email protected]>
1 parent 9ad8eb0 commit 1c96a2f

File tree

34 files changed

+93
-52
lines changed

34 files changed

+93
-52
lines changed

drivers/base/regmap/regmap.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -762,8 +762,8 @@ struct regmap *__regmap_init(struct device *dev,
762762
map->reg_stride_order = ilog2(map->reg_stride);
763763
else
764764
map->reg_stride_order = -1;
765-
map->use_single_read = config->use_single_rw || !bus || !bus->read;
766-
map->use_single_write = config->use_single_rw || !bus || !bus->write;
765+
map->use_single_read = config->use_single_read || !bus || !bus->read;
766+
map->use_single_write = config->use_single_write || !bus || !bus->write;
767767
map->can_multi_write = config->can_multi_write && bus && bus->write;
768768
if (bus) {
769769
map->max_raw_read = bus->max_raw_read;

drivers/edac/altera_edac.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -599,7 +599,8 @@ static const struct regmap_config s10_sdram_regmap_cfg = {
599599
.volatile_reg = s10_sdram_volatile_reg,
600600
.reg_read = s10_protected_reg_read,
601601
.reg_write = s10_protected_reg_write,
602-
.use_single_rw = true,
602+
.use_single_read = true,
603+
.use_single_write = true,
603604
};
604605

605606
static int altr_s10_sdram_probe(struct platform_device *pdev)

drivers/hwmon/lm75.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,8 @@ static const struct regmap_config lm75_regmap_config = {
254254
.volatile_reg = lm75_is_volatile_reg,
255255
.val_format_endian = REGMAP_ENDIAN_BIG,
256256
.cache_type = REGCACHE_RBTREE,
257-
.use_single_rw = true,
257+
.use_single_read = true,
258+
.use_single_write = true,
258259
};
259260

260261
static void lm75_remove(void *data)

drivers/hwmon/lm95245.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -541,7 +541,8 @@ static const struct regmap_config lm95245_regmap_config = {
541541
.writeable_reg = lm95245_is_writeable_reg,
542542
.volatile_reg = lm95245_is_volatile_reg,
543543
.cache_type = REGCACHE_RBTREE,
544-
.use_single_rw = true,
544+
.use_single_read = true,
545+
.use_single_write = true,
545546
};
546547

547548
static const u32 lm95245_chip_config[] = {

drivers/hwmon/tmp102.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,8 @@ static const struct regmap_config tmp102_regmap_config = {
212212
.volatile_reg = tmp102_is_volatile_reg,
213213
.val_format_endian = REGMAP_ENDIAN_BIG,
214214
.cache_type = REGCACHE_RBTREE,
215-
.use_single_rw = true,
215+
.use_single_read = true,
216+
.use_single_write = true,
216217
};
217218

218219
static int tmp102_probe(struct i2c_client *client,

drivers/hwmon/tmp108.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,8 @@ static const struct regmap_config tmp108_regmap_config = {
345345
.volatile_reg = tmp108_is_volatile_reg,
346346
.val_format_endian = REGMAP_ENDIAN_BIG,
347347
.cache_type = REGCACHE_RBTREE,
348-
.use_single_rw = true,
348+
.use_single_read = true,
349+
.use_single_write = true,
349350
};
350351

351352
static int tmp108_probe(struct i2c_client *client,

drivers/iio/light/apds9960.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,8 @@ static const struct regmap_config apds9960_regmap_config = {
206206
.name = APDS9960_REGMAP_NAME,
207207
.reg_bits = 8,
208208
.val_bits = 8,
209-
.use_single_rw = 1,
209+
.use_single_read = true,
210+
.use_single_write = true,
210211

211212
.volatile_table = &apds9960_volatile_table,
212213
.precious_table = &apds9960_precious_table,

drivers/iio/light/max44000.c

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -473,17 +473,18 @@ static bool max44000_precious_reg(struct device *dev, unsigned int reg)
473473
}
474474

475475
static const struct regmap_config max44000_regmap_config = {
476-
.reg_bits = 8,
477-
.val_bits = 8,
478-
479-
.max_register = MAX44000_REG_PRX_DATA,
480-
.readable_reg = max44000_readable_reg,
481-
.writeable_reg = max44000_writeable_reg,
482-
.volatile_reg = max44000_volatile_reg,
483-
.precious_reg = max44000_precious_reg,
484-
485-
.use_single_rw = 1,
486-
.cache_type = REGCACHE_RBTREE,
476+
.reg_bits = 8,
477+
.val_bits = 8,
478+
479+
.max_register = MAX44000_REG_PRX_DATA,
480+
.readable_reg = max44000_readable_reg,
481+
.writeable_reg = max44000_writeable_reg,
482+
.volatile_reg = max44000_volatile_reg,
483+
.precious_reg = max44000_precious_reg,
484+
485+
.use_single_read = true,
486+
.use_single_write = true,
487+
.cache_type = REGCACHE_RBTREE,
487488
};
488489

489490
static irqreturn_t max44000_trigger_handler(int irq, void *p)

drivers/iio/temperature/mlx90632.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,8 @@ static const struct regmap_config mlx90632_regmap = {
140140
.rd_table = &mlx90632_readable_regs_tbl,
141141
.wr_table = &mlx90632_writeable_regs_tbl,
142142

143-
.use_single_rw = true,
143+
.use_single_read = true,
144+
.use_single_write = true,
144145
.reg_format_endian = REGMAP_ENDIAN_BIG,
145146
.val_format_endian = REGMAP_ENDIAN_BIG,
146147
.cache_type = REGCACHE_RBTREE,

drivers/input/touchscreen/tsc200x-core.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,8 @@ const struct regmap_config tsc200x_regmap_config = {
6868
.read_flag_mask = TSC200X_REG_READ,
6969
.write_flag_mask = TSC200X_REG_PND0,
7070
.wr_table = &tsc200x_writable_table,
71-
.use_single_rw = true,
71+
.use_single_read = true,
72+
.use_single_write = true,
7273
};
7374
EXPORT_SYMBOL_GPL(tsc200x_regmap_config);
7475

0 commit comments

Comments
 (0)