diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2024-06-01 02:09:27 +0300 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2024-06-01 02:09:27 +0300 |
commit | b7c05622da0e40c0ce93f847055a57e47df35492 (patch) | |
tree | df48e7f22fd8214d48cfc8f069a2a1c59a471bed /drivers | |
parent | 0f9a75179da33cc03594b882ed823cc5f4356d9a (diff) | |
parent | 611b7eb19d0a305d4de00280e4a71a1b15c507fc (diff) | |
download | linux-b7c05622da0e40c0ce93f847055a57e47df35492.tar.xz |
Merge tag 'regmap-fix-v6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap
Pull regmap fix from Mark Brown:
"The I2C bus was not taking account of the register and any padding
bytes when handling maximum write sizes supported by an I2C adaptor,
this patch from Jim Wylder fixes that"
* tag 'regmap-fix-v6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
regmap-i2c: Subtract reg size from max_write
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/base/regmap/regmap-i2c.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/base/regmap/regmap-i2c.c b/drivers/base/regmap/regmap-i2c.c index 3ec611dc0c09..a905e955bbfc 100644 --- a/drivers/base/regmap/regmap-i2c.c +++ b/drivers/base/regmap/regmap-i2c.c @@ -350,7 +350,8 @@ static const struct regmap_bus *regmap_get_i2c_bus(struct i2c_client *i2c, if (quirks->max_write_len && (bus->max_raw_write == 0 || bus->max_raw_write > quirks->max_write_len)) - max_write = quirks->max_write_len; + max_write = quirks->max_write_len - + (config->reg_bits + config->pad_bits) / BITS_PER_BYTE; if (max_read || max_write) { ret_bus = kmemdup(bus, sizeof(*bus), GFP_KERNEL); |