diff options
-rw-r--r-- | drivers/base/regmap/regmap.c | 4 | ||||
-rw-r--r-- | include/linux/regmap.h | 6 |
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; |