Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge remote-tracking branches 'regmap/topic/noinc' and 'regmap/topic/single-rw' into regmap-next

+191 -51
+4 -1
drivers/base/regmap/internal.h
··· 94 94 bool (*readable_reg)(struct device *dev, unsigned int reg); 95 95 bool (*volatile_reg)(struct device *dev, unsigned int reg); 96 96 bool (*precious_reg)(struct device *dev, unsigned int reg); 97 + bool (*writeable_noinc_reg)(struct device *dev, unsigned int reg); 97 98 bool (*readable_noinc_reg)(struct device *dev, unsigned int reg); 98 99 const struct regmap_access_table *wr_table; 99 100 const struct regmap_access_table *rd_table; 100 101 const struct regmap_access_table *volatile_table; 101 102 const struct regmap_access_table *precious_table; 103 + const struct regmap_access_table *wr_noinc_table; 102 104 const struct regmap_access_table *rd_noinc_table; 103 105 104 106 int (*reg_read)(void *context, unsigned int reg, unsigned int *val); ··· 151 149 152 150 /* if set, converts bulk read to single read */ 153 151 bool use_single_read; 154 - /* if set, converts bulk read to single read */ 152 + /* if set, converts bulk write to single write */ 155 153 bool use_single_write; 156 154 /* if set, the device supports multi write mode */ 157 155 bool can_multi_write; ··· 185 183 bool regmap_readable(struct regmap *map, unsigned int reg); 186 184 bool regmap_volatile(struct regmap *map, unsigned int reg); 187 185 bool regmap_precious(struct regmap *map, unsigned int reg); 186 + bool regmap_writeable_noinc(struct regmap *map, unsigned int reg); 188 187 bool regmap_readable_noinc(struct regmap *map, unsigned int reg); 189 188 190 189 int _regmap_write(struct regmap *map, unsigned int reg,
+79 -2
drivers/base/regmap/regmap.c
··· 178 178 return false; 179 179 } 180 180 181 + bool regmap_writeable_noinc(struct regmap *map, unsigned int reg) 182 + { 183 + if (map->writeable_noinc_reg) 184 + return map->writeable_noinc_reg(map->dev, reg); 185 + 186 + if (map->wr_noinc_table) 187 + return regmap_check_range_table(map, reg, map->wr_noinc_table); 188 + 189 + return true; 190 + } 191 + 181 192 bool regmap_readable_noinc(struct regmap *map, unsigned int reg) 182 193 { 183 194 if (map->readable_noinc_reg) ··· 783 772 map->reg_stride_order = ilog2(map->reg_stride); 784 773 else 785 774 map->reg_stride_order = -1; 786 - map->use_single_read = config->use_single_rw || !bus || !bus->read; 787 - map->use_single_write = config->use_single_rw || !bus || !bus->write; 775 + map->use_single_read = config->use_single_read || !bus || !bus->read; 776 + map->use_single_write = config->use_single_write || !bus || !bus->write; 788 777 map->can_multi_write = config->can_multi_write && bus && bus->write; 789 778 if (bus) { 790 779 map->max_raw_read = bus->max_raw_read; ··· 798 787 map->rd_table = config->rd_table; 799 788 map->volatile_table = config->volatile_table; 800 789 map->precious_table = config->precious_table; 790 + map->wr_noinc_table = config->wr_noinc_table; 801 791 map->rd_noinc_table = config->rd_noinc_table; 802 792 map->writeable_reg = config->writeable_reg; 803 793 map->readable_reg = config->readable_reg; 804 794 map->volatile_reg = config->volatile_reg; 805 795 map->precious_reg = config->precious_reg; 796 + map->writeable_noinc_reg = config->writeable_noinc_reg; 806 797 map->readable_noinc_reg = config->readable_noinc_reg; 807 798 map->cache_type = config->cache_type; 808 799 ··· 1321 1308 map->readable_reg = config->readable_reg; 1322 1309 map->volatile_reg = config->volatile_reg; 1323 1310 map->precious_reg = config->precious_reg; 1311 + map->writeable_noinc_reg = config->writeable_noinc_reg; 1324 1312 map->readable_noinc_reg = config->readable_noinc_reg; 1325 1313 map->cache_type = config->cache_type; 1326 1314 ··· 1918 1904 return ret; 1919 1905 } 1920 1906 EXPORT_SYMBOL_GPL(regmap_raw_write); 1907 + 1908 + /** 1909 + * regmap_noinc_write(): Write data from a register without incrementing the 1910 + * register number 1911 + * 1912 + * @map: Register map to write to 1913 + * @reg: Register to write to 1914 + * @val: Pointer to data buffer 1915 + * @val_len: Length of output buffer in bytes. 1916 + * 1917 + * The regmap API usually assumes that bulk bus write operations will write a 1918 + * range of registers. Some devices have certain registers for which a write 1919 + * operation can write to an internal FIFO. 1920 + * 1921 + * The target register must be volatile but registers after it can be 1922 + * completely unrelated cacheable registers. 1923 + * 1924 + * This will attempt multiple writes as required to write val_len bytes. 1925 + * 1926 + * A value of zero will be returned on success, a negative errno will be 1927 + * returned in error cases. 1928 + */ 1929 + int regmap_noinc_write(struct regmap *map, unsigned int reg, 1930 + const void *val, size_t val_len) 1931 + { 1932 + size_t write_len; 1933 + int ret; 1934 + 1935 + if (!map->bus) 1936 + return -EINVAL; 1937 + if (!map->bus->write) 1938 + return -ENOTSUPP; 1939 + if (val_len % map->format.val_bytes) 1940 + return -EINVAL; 1941 + if (!IS_ALIGNED(reg, map->reg_stride)) 1942 + return -EINVAL; 1943 + if (val_len == 0) 1944 + return -EINVAL; 1945 + 1946 + map->lock(map->lock_arg); 1947 + 1948 + if (!regmap_volatile(map, reg) || !regmap_writeable_noinc(map, reg)) { 1949 + ret = -EINVAL; 1950 + goto out_unlock; 1951 + } 1952 + 1953 + while (val_len) { 1954 + if (map->max_raw_write && map->max_raw_write < val_len) 1955 + write_len = map->max_raw_write; 1956 + else 1957 + write_len = val_len; 1958 + ret = _regmap_raw_write(map, reg, val, write_len); 1959 + if (ret) 1960 + goto out_unlock; 1961 + val = ((u8 *)val) + write_len; 1962 + val_len -= write_len; 1963 + } 1964 + 1965 + out_unlock: 1966 + map->unlock(map->lock_arg); 1967 + return ret; 1968 + } 1969 + EXPORT_SYMBOL_GPL(regmap_noinc_write); 1921 1970 1922 1971 /** 1923 1972 * regmap_field_update_bits_base() - Perform a read/modify/write cycle a
+2 -1
drivers/edac/altera_edac.c
··· 599 599 .volatile_reg = s10_sdram_volatile_reg, 600 600 .reg_read = s10_protected_reg_read, 601 601 .reg_write = s10_protected_reg_write, 602 - .use_single_rw = true, 602 + .use_single_read = true, 603 + .use_single_write = true, 603 604 }; 604 605 605 606 static int altr_s10_sdram_probe(struct platform_device *pdev)
+2 -1
drivers/hwmon/lm75.c
··· 254 254 .volatile_reg = lm75_is_volatile_reg, 255 255 .val_format_endian = REGMAP_ENDIAN_BIG, 256 256 .cache_type = REGCACHE_RBTREE, 257 - .use_single_rw = true, 257 + .use_single_read = true, 258 + .use_single_write = true, 258 259 }; 259 260 260 261 static void lm75_remove(void *data)
+2 -1
drivers/hwmon/lm95245.c
··· 541 541 .writeable_reg = lm95245_is_writeable_reg, 542 542 .volatile_reg = lm95245_is_volatile_reg, 543 543 .cache_type = REGCACHE_RBTREE, 544 - .use_single_rw = true, 544 + .use_single_read = true, 545 + .use_single_write = true, 545 546 }; 546 547 547 548 static const u32 lm95245_chip_config[] = {
+2 -1
drivers/hwmon/tmp102.c
··· 212 212 .volatile_reg = tmp102_is_volatile_reg, 213 213 .val_format_endian = REGMAP_ENDIAN_BIG, 214 214 .cache_type = REGCACHE_RBTREE, 215 - .use_single_rw = true, 215 + .use_single_read = true, 216 + .use_single_write = true, 216 217 }; 217 218 218 219 static int tmp102_probe(struct i2c_client *client,
+2 -1
drivers/hwmon/tmp108.c
··· 345 345 .volatile_reg = tmp108_is_volatile_reg, 346 346 .val_format_endian = REGMAP_ENDIAN_BIG, 347 347 .cache_type = REGCACHE_RBTREE, 348 - .use_single_rw = true, 348 + .use_single_read = true, 349 + .use_single_write = true, 349 350 }; 350 351 351 352 static int tmp108_probe(struct i2c_client *client,
+2 -1
drivers/iio/light/apds9960.c
··· 206 206 .name = APDS9960_REGMAP_NAME, 207 207 .reg_bits = 8, 208 208 .val_bits = 8, 209 - .use_single_rw = 1, 209 + .use_single_read = true, 210 + .use_single_write = true, 210 211 211 212 .volatile_table = &apds9960_volatile_table, 212 213 .precious_table = &apds9960_precious_table,
+10 -9
drivers/iio/light/max44000.c
··· 473 473 } 474 474 475 475 static const struct regmap_config max44000_regmap_config = { 476 - .reg_bits = 8, 477 - .val_bits = 8, 476 + .reg_bits = 8, 477 + .val_bits = 8, 478 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, 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 484 485 - .use_single_rw = 1, 486 - .cache_type = REGCACHE_RBTREE, 485 + .use_single_read = true, 486 + .use_single_write = true, 487 + .cache_type = REGCACHE_RBTREE, 487 488 }; 488 489 489 490 static irqreturn_t max44000_trigger_handler(int irq, void *p)
+2 -1
drivers/iio/temperature/mlx90632.c
··· 140 140 .rd_table = &mlx90632_readable_regs_tbl, 141 141 .wr_table = &mlx90632_writeable_regs_tbl, 142 142 143 - .use_single_rw = true, 143 + .use_single_read = true, 144 + .use_single_write = true, 144 145 .reg_format_endian = REGMAP_ENDIAN_BIG, 145 146 .val_format_endian = REGMAP_ENDIAN_BIG, 146 147 .cache_type = REGCACHE_RBTREE,
+2 -1
drivers/input/touchscreen/tsc200x-core.c
··· 68 68 .read_flag_mask = TSC200X_REG_READ, 69 69 .write_flag_mask = TSC200X_REG_PND0, 70 70 .wr_table = &tsc200x_writable_table, 71 - .use_single_rw = true, 71 + .use_single_read = true, 72 + .use_single_write = true, 72 73 }; 73 74 EXPORT_SYMBOL_GPL(tsc200x_regmap_config); 74 75
+2 -1
drivers/mfd/altera-a10sr.c
··· 108 108 109 109 .cache_type = REGCACHE_NONE, 110 110 111 - .use_single_rw = true, 111 + .use_single_read = true, 112 + .use_single_write = true, 112 113 .read_flag_mask = 1, 113 114 .write_flag_mask = 0, 114 115
+2 -1
drivers/mfd/da9052-spi.c
··· 46 46 config.reg_bits = 7; 47 47 config.pad_bits = 1; 48 48 config.val_bits = 8; 49 - config.use_single_rw = 1; 49 + config.use_single_read = true; 50 + config.use_single_write = true; 50 51 51 52 da9052->regmap = devm_regmap_init_spi(spi, &config); 52 53 if (IS_ERR(da9052->regmap)) {
+2 -1
drivers/mfd/mc13xxx-spi.c
··· 57 57 .max_register = MC13XXX_NUMREGS, 58 58 59 59 .cache_type = REGCACHE_NONE, 60 - .use_single_rw = 1, 60 + .use_single_read = true, 61 + .use_single_write = true, 61 62 }; 62 63 63 64 static int mc13xxx_spi_read(void *context, const void *reg, size_t reg_size,
+2 -1
drivers/mfd/twl6040.c
··· 613 613 .writeable_reg = twl6040_writeable_reg, 614 614 615 615 .cache_type = REGCACHE_RBTREE, 616 - .use_single_rw = true, 616 + .use_single_read = true, 617 + .use_single_write = true, 617 618 }; 618 619 619 620 static const struct regmap_irq twl6040_irqs[] = {
+2 -1
drivers/regulator/ltc3589.c
··· 404 404 .max_register = LTC3589_L2DTV2, 405 405 .reg_defaults = ltc3589_reg_defaults, 406 406 .num_reg_defaults = ARRAY_SIZE(ltc3589_reg_defaults), 407 - .use_single_rw = true, 407 + .use_single_read = true, 408 + .use_single_write = true, 408 409 .cache_type = REGCACHE_RBTREE, 409 410 }; 410 411
+2 -1
drivers/regulator/ltc3676.c
··· 321 321 .readable_reg = ltc3676_readable_reg, 322 322 .volatile_reg = ltc3676_volatile_reg, 323 323 .max_register = LTC3676_CLIRQ, 324 - .use_single_rw = true, 324 + .use_single_read = true, 325 + .use_single_write = true, 325 326 .cache_type = REGCACHE_RBTREE, 326 327 }; 327 328
+27 -4
include/linux/regmap.h
··· 268 268 * field is NULL but precious_table (see below) is not, the 269 269 * check is performed on such table (a register is precious if 270 270 * it belongs to one of the ranges specified by precious_table). 271 + * @writeable_noinc_reg: Optional callback returning true if the register 272 + * supports multiple write operations without incrementing 273 + * the register number. If this field is NULL but 274 + * wr_noinc_table (see below) is not, the check is 275 + * performed on such table (a register is no increment 276 + * writeable if it belongs to one of the ranges specified 277 + * by wr_noinc_table). 271 278 * @readable_noinc_reg: Optional callback returning true if the register 272 279 * supports multiple read operations without incrementing 273 280 * the register number. If this field is NULL but ··· 309 302 * @rd_table: As above, for read access. 310 303 * @volatile_table: As above, for volatile registers. 311 304 * @precious_table: As above, for precious registers. 305 + * @wr_noinc_table: As above, for no increment writeable registers. 312 306 * @rd_noinc_table: As above, for no increment readable registers. 313 307 * @reg_defaults: Power on reset values for registers (for use with 314 308 * register cache support). ··· 323 315 * masks are used. 324 316 * @zero_flag_mask: If set, read_flag_mask and write_flag_mask are used even 325 317 * if they are both empty. 326 - * @use_single_rw: If set, converts the bulk read and write operations into 327 - * a series of single read and write operations. This is useful 328 - * for device that does not support bulk read and write. 318 + * @use_single_read: If set, converts the bulk read operation into a series of 319 + * single read operations. This is useful for a device that 320 + * does not support bulk read. 321 + * @use_single_write: If set, converts the bulk write operation into a series of 322 + * single write operations. This is useful for a device that 323 + * does not support bulk write. 329 324 * @can_multi_write: If set, the device supports the multi write mode of bulk 330 325 * write operations, if clear multi write requests will be 331 326 * split into individual write operations ··· 363 352 bool (*readable_reg)(struct device *dev, unsigned int reg); 364 353 bool (*volatile_reg)(struct device *dev, unsigned int reg); 365 354 bool (*precious_reg)(struct device *dev, unsigned int reg); 355 + bool (*writeable_noinc_reg)(struct device *dev, unsigned int reg); 366 356 bool (*readable_noinc_reg)(struct device *dev, unsigned int reg); 367 357 368 358 bool disable_locking; ··· 381 369 const struct regmap_access_table *rd_table; 382 370 const struct regmap_access_table *volatile_table; 383 371 const struct regmap_access_table *precious_table; 372 + const struct regmap_access_table *wr_noinc_table; 384 373 const struct regmap_access_table *rd_noinc_table; 385 374 const struct reg_default *reg_defaults; 386 375 unsigned int num_reg_defaults; ··· 393 380 unsigned long write_flag_mask; 394 381 bool zero_flag_mask; 395 382 396 - bool use_single_rw; 383 + bool use_single_read; 384 + bool use_single_write; 397 385 bool can_multi_write; 398 386 399 387 enum regmap_endian reg_format_endian; ··· 993 979 int regmap_write_async(struct regmap *map, unsigned int reg, unsigned int val); 994 980 int regmap_raw_write(struct regmap *map, unsigned int reg, 995 981 const void *val, size_t val_len); 982 + int regmap_noinc_write(struct regmap *map, unsigned int reg, 983 + const void *val, size_t val_len); 996 984 int regmap_bulk_write(struct regmap *map, unsigned int reg, const void *val, 997 985 size_t val_count); 998 986 int regmap_multi_reg_write(struct regmap *map, const struct reg_sequence *regs, ··· 1233 1217 1234 1218 static inline int regmap_raw_write_async(struct regmap *map, unsigned int reg, 1235 1219 const void *val, size_t val_len) 1220 + { 1221 + WARN_ONCE(1, "regmap API is disabled"); 1222 + return -EINVAL; 1223 + } 1224 + 1225 + static inline int regmap_noinc_write(struct regmap *map, unsigned int reg, 1226 + const void *val, size_t val_len) 1236 1227 { 1237 1228 WARN_ONCE(1, "regmap API is disabled"); 1238 1229 return -EINVAL;
+2 -1
sound/hda/hdac_regmap.c
··· 359 359 .cache_type = REGCACHE_RBTREE, 360 360 .reg_read = hda_reg_read, 361 361 .reg_write = hda_reg_write, 362 - .use_single_rw = true, 362 + .use_single_read = true, 363 + .use_single_write = true, 363 364 }; 364 365 365 366 /**
+2 -1
sound/soc/codecs/cs35l33.c
··· 857 857 .readable_reg = cs35l33_readable_register, 858 858 .writeable_reg = cs35l33_writeable_register, 859 859 .cache_type = REGCACHE_RBTREE, 860 - .use_single_rw = true, 860 + .use_single_read = true, 861 + .use_single_write = true, 861 862 }; 862 863 863 864 static int __maybe_unused cs35l33_runtime_resume(struct device *dev)
+2 -1
sound/soc/codecs/cs35l35.c
··· 1105 1105 .readable_reg = cs35l35_readable_register, 1106 1106 .precious_reg = cs35l35_precious_register, 1107 1107 .cache_type = REGCACHE_RBTREE, 1108 - .use_single_rw = true, 1108 + .use_single_read = true, 1109 + .use_single_write = true, 1109 1110 }; 1110 1111 1111 1112 static irqreturn_t cs35l35_irq(int irq, void *data)
+3 -1
sound/soc/codecs/cs43130.c
··· 2362 2362 .precious_reg = cs43130_precious_register, 2363 2363 .volatile_reg = cs43130_volatile_register, 2364 2364 .cache_type = REGCACHE_RBTREE, 2365 - .use_single_rw = true, /* needed for regcache_sync */ 2365 + /* needed for regcache_sync */ 2366 + .use_single_read = true, 2367 + .use_single_write = true, 2366 2368 }; 2367 2369 2368 2370 static u16 const cs43130_dc_threshold[CS43130_DC_THRESHOLD] = {
+2 -1
sound/soc/codecs/es8328.c
··· 824 824 .val_bits = 8, 825 825 .max_register = ES8328_REG_MAX, 826 826 .cache_type = REGCACHE_RBTREE, 827 - .use_single_rw = true, 827 + .use_single_read = true, 828 + .use_single_write = true, 828 829 }; 829 830 EXPORT_SYMBOL_GPL(es8328_regmap_config); 830 831
+2 -1
sound/soc/codecs/rt1305.c
··· 963 963 .num_reg_defaults = ARRAY_SIZE(rt1305_reg), 964 964 .ranges = rt1305_ranges, 965 965 .num_ranges = ARRAY_SIZE(rt1305_ranges), 966 - .use_single_rw = true, 966 + .use_single_read = true, 967 + .use_single_write = true, 967 968 }; 968 969 969 970 #if defined(CONFIG_OF)
+2 -1
sound/soc/codecs/rt5514.c
··· 1201 1201 .cache_type = REGCACHE_RBTREE, 1202 1202 .reg_defaults = rt5514_reg, 1203 1203 .num_reg_defaults = ARRAY_SIZE(rt5514_reg), 1204 - .use_single_rw = true, 1204 + .use_single_read = true, 1205 + .use_single_write = true, 1205 1206 }; 1206 1207 1207 1208 static const struct i2c_device_id rt5514_i2c_id[] = {
+2 -1
sound/soc/codecs/rt5616.c
··· 1313 1313 static const struct regmap_config rt5616_regmap = { 1314 1314 .reg_bits = 8, 1315 1315 .val_bits = 16, 1316 - .use_single_rw = true, 1316 + .use_single_read = true, 1317 + .use_single_write = true, 1317 1318 .max_register = RT5616_DEVICE_ID + 1 + (ARRAY_SIZE(rt5616_ranges) * 1318 1319 RT5616_PR_SPACING), 1319 1320 .volatile_reg = rt5616_volatile_register,
+2 -1
sound/soc/codecs/rt5640.c
··· 2704 2704 static const struct regmap_config rt5640_regmap = { 2705 2705 .reg_bits = 8, 2706 2706 .val_bits = 16, 2707 - .use_single_rw = true, 2707 + .use_single_read = true, 2708 + .use_single_write = true, 2708 2709 2709 2710 .max_register = RT5640_VENDOR_ID2 + 1 + (ARRAY_SIZE(rt5640_ranges) * 2710 2711 RT5640_PR_SPACING),
+6 -3
sound/soc/codecs/rt5645.c
··· 3559 3559 static const struct regmap_config rt5645_regmap = { 3560 3560 .reg_bits = 8, 3561 3561 .val_bits = 16, 3562 - .use_single_rw = true, 3562 + .use_single_read = true, 3563 + .use_single_write = true, 3563 3564 .max_register = RT5645_VENDOR_ID2 + 1 + (ARRAY_SIZE(rt5645_ranges) * 3564 3565 RT5645_PR_SPACING), 3565 3566 .volatile_reg = rt5645_volatile_register, ··· 3576 3575 static const struct regmap_config rt5650_regmap = { 3577 3576 .reg_bits = 8, 3578 3577 .val_bits = 16, 3579 - .use_single_rw = true, 3578 + .use_single_read = true, 3579 + .use_single_write = true, 3580 3580 .max_register = RT5645_VENDOR_ID2 + 1 + (ARRAY_SIZE(rt5645_ranges) * 3581 3581 RT5645_PR_SPACING), 3582 3582 .volatile_reg = rt5645_volatile_register, ··· 3594 3592 .name="nocache", 3595 3593 .reg_bits = 8, 3596 3594 .val_bits = 16, 3597 - .use_single_rw = true, 3595 + .use_single_read = true, 3596 + .use_single_write = true, 3598 3597 .max_register = RT5645_VENDOR_ID2 + 1, 3599 3598 .cache_type = REGCACHE_NONE, 3600 3599 };
+2 -1
sound/soc/codecs/rt5651.c
··· 2124 2124 .num_reg_defaults = ARRAY_SIZE(rt5651_reg), 2125 2125 .ranges = rt5651_ranges, 2126 2126 .num_ranges = ARRAY_SIZE(rt5651_ranges), 2127 - .use_single_rw = true, 2127 + .use_single_read = true, 2128 + .use_single_write = true, 2128 2129 }; 2129 2130 2130 2131 #if defined(CONFIG_OF)
+2 -1
sound/soc/codecs/rt5660.c
··· 1217 1217 static const struct regmap_config rt5660_regmap = { 1218 1218 .reg_bits = 8, 1219 1219 .val_bits = 16, 1220 - .use_single_rw = true, 1220 + .use_single_read = true, 1221 + .use_single_write = true, 1221 1222 1222 1223 .max_register = RT5660_VENDOR_ID2 + 1 + (ARRAY_SIZE(rt5660_ranges) * 1223 1224 RT5660_PR_SPACING),
+6 -3
sound/soc/codecs/rt5663.c
··· 3252 3252 static const struct regmap_config rt5663_v2_regmap = { 3253 3253 .reg_bits = 16, 3254 3254 .val_bits = 16, 3255 - .use_single_rw = true, 3255 + .use_single_read = true, 3256 + .use_single_write = true, 3256 3257 .max_register = 0x07fa, 3257 3258 .volatile_reg = rt5663_v2_volatile_register, 3258 3259 .readable_reg = rt5663_v2_readable_register, ··· 3265 3264 static const struct regmap_config rt5663_regmap = { 3266 3265 .reg_bits = 16, 3267 3266 .val_bits = 16, 3268 - .use_single_rw = true, 3267 + .use_single_read = true, 3268 + .use_single_write = true, 3269 3269 .max_register = 0x03f3, 3270 3270 .volatile_reg = rt5663_volatile_register, 3271 3271 .readable_reg = rt5663_readable_register, ··· 3279 3277 .name = "nocache", 3280 3278 .reg_bits = 16, 3281 3279 .val_bits = 16, 3282 - .use_single_rw = true, 3280 + .use_single_read = true, 3281 + .use_single_write = true, 3283 3282 .max_register = 0x03f3, 3284 3283 .cache_type = REGCACHE_NONE, 3285 3284 };
+2 -1
sound/soc/codecs/rt5665.c
··· 4633 4633 .cache_type = REGCACHE_RBTREE, 4634 4634 .reg_defaults = rt5665_reg, 4635 4635 .num_reg_defaults = ARRAY_SIZE(rt5665_reg), 4636 - .use_single_rw = true, 4636 + .use_single_read = true, 4637 + .use_single_write = true, 4637 4638 }; 4638 4639 4639 4640 static const struct i2c_device_id rt5665_i2c_id[] = {
+2 -1
sound/soc/codecs/rt5668.c
··· 2375 2375 .cache_type = REGCACHE_RBTREE, 2376 2376 .reg_defaults = rt5668_reg, 2377 2377 .num_reg_defaults = ARRAY_SIZE(rt5668_reg), 2378 - .use_single_rw = true, 2378 + .use_single_read = true, 2379 + .use_single_write = true, 2379 2380 }; 2380 2381 2381 2382 static const struct i2c_device_id rt5668_i2c_id[] = {
+2 -1
sound/soc/codecs/rt5670.c
··· 2814 2814 static const struct regmap_config rt5670_regmap = { 2815 2815 .reg_bits = 8, 2816 2816 .val_bits = 16, 2817 - .use_single_rw = true, 2817 + .use_single_read = true, 2818 + .use_single_write = true, 2818 2819 .max_register = RT5670_VENDOR_ID2 + 1 + (ARRAY_SIZE(rt5670_ranges) * 2819 2820 RT5670_PR_SPACING), 2820 2821 .volatile_reg = rt5670_volatile_register,
+2 -1
sound/soc/codecs/rt5682.c
··· 2419 2419 .cache_type = REGCACHE_RBTREE, 2420 2420 .reg_defaults = rt5682_reg, 2421 2421 .num_reg_defaults = ARRAY_SIZE(rt5682_reg), 2422 - .use_single_rw = true, 2422 + .use_single_read = true, 2423 + .use_single_write = true, 2423 2424 }; 2424 2425 2425 2426 static const struct i2c_device_id rt5682_i2c_id[] = {