aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/base/regmap/regmap.c4
-rw-r--r--include/linux/regmap.h6
2 files changed, 8 insertions, 2 deletions
diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c
index 8d516a9bfc01..025c62358bd6 100644
--- a/drivers/base/regmap/regmap.c
+++ b/drivers/base/regmap/regmap.c
@@ -769,7 +769,9 @@ struct regmap *__regmap_init(struct device *dev,
769 INIT_LIST_HEAD(&map->async_free); 769 INIT_LIST_HEAD(&map->async_free);
770 init_waitqueue_head(&map->async_waitq); 770 init_waitqueue_head(&map->async_waitq);
771 771
772 if (config->read_flag_mask || config->write_flag_mask) { 772 if (config->read_flag_mask ||
773 config->write_flag_mask ||
774 config->zero_flag_mask) {
773 map->read_flag_mask = config->read_flag_mask; 775 map->read_flag_mask = config->read_flag_mask;
774 map->write_flag_mask = config->write_flag_mask; 776 map->write_flag_mask = config->write_flag_mask;
775 } else if (bus) { 777 } else if (bus) {
diff --git a/include/linux/regmap.h b/include/linux/regmap.h
index 15eddc1353ba..f8bff272c429 100644
--- a/include/linux/regmap.h
+++ b/include/linux/regmap.h
@@ -296,7 +296,10 @@ typedef void (*regmap_unlock)(void *);
296 * a read. 296 * a read.
297 * @write_flag_mask: Mask to be set in the top bytes of the register when doing 297 * @write_flag_mask: Mask to be set in the top bytes of the register when doing
298 * a write. If both read_flag_mask and write_flag_mask are 298 * a write. If both read_flag_mask and write_flag_mask are
299 * empty the regmap_bus default masks are used. 299 * empty and zero_flag_mask is not set the regmap_bus default
300 * masks are used.
301 * @zero_flag_mask: If set, read_flag_mask and write_flag_mask are used even
302 * if they are both empty.
300 * @use_single_rw: If set, converts the bulk read and write operations into 303 * @use_single_rw: If set, converts the bulk read and write operations into
301 * a series of single read and write operations. This is useful 304 * a series of single read and write operations. This is useful
302 * for device that does not support bulk read and write. 305 * for device that does not support bulk read and write.
@@ -355,6 +358,7 @@ struct regmap_config {
355 358
356 unsigned long read_flag_mask; 359 unsigned long read_flag_mask;
357 unsigned long write_flag_mask; 360 unsigned long write_flag_mask;
361 bool zero_flag_mask;
358 362
359 bool use_single_rw; 363 bool use_single_rw;
360 bool can_multi_write; 364 bool can_multi_write;